如何使用 ansible playbook 运行 python 中的 Ansible 模块
How to run Ansible Module in python with an ansible playbook
我必须在 python 中开发一个 ansible 模块来管理 fail2ban 的配置,但是当我 运行 我的剧本 [=15= 时,我无法 运行 它]
剧本代码:
- name: "test code"
hosts: 10.7.150.113
tasks:
- name: "test"
fail2ban_SSH_configurator:
bantime: 10
模块代码:
from ansible.module_utils.basic import AnsibleModule
def main():
module = AnsibleModule(
argument_spec=dict(
path = dict(required=False, type=’str’),
bantime = dict(required=True, type=’int’),
findtime = dict(required=False, type=’int’),
maxretry = dict(required=False, type=’int’),
ignoreip = dict(required=False, type=’str’),
destemail = dict(required=False, type=’str’),
sender = dict(required=False, type=’str’),
sendername = dict(required=False, type=’str’),
mta = dict(required=False, type=’str’),
action = dict(required=False, type=’str’),
)
)
path_local = module.params.get('path')
bantime_local = module.params.get('bantime')
findtime_local = module.params.get('fintime')
maxretry_local = module.params.get('maxretry')
ignoreip_local = module.params.get('ignoreip')
destmail_local = module.params.get('destmail')
sender_local = module.params.get('sender')
sendername_local = module.params.get('sendername')
mta_local = module.params.get('mta')
action_local = module.params.get('action')
fichier = open("path", "a")
fichier.write(" [DEFAULT]")
fichier.write("\nbantime =")
fichier.write("\nfindtime = ")
fichier.write("\nmaxretry = ")
fichier.write("\nignoreip = ")
fichier.write("\ndestemail = ")
fichier.write("\nsender = ")
fichier.write("\nsendername = ")
fichier.write("\nmta = ")
fichier.write("\naction = ")
fichier.close()
module.exit_json(changed=False, results=bantime_local)
if __name__ == "__main__":
main()
python 代码远未结束我只是想在继续之前测试它。
但我不知道如何 运行 我的模块,当我尝试吃我的剧本时出现此错误:enter image description here
fail2ban 似乎缩进太多。
该错误抱怨 yaml 缩进问题。
"fail2ban" 和 "name" 应该对齐。
希望对您有所帮助。
我必须在 python 中开发一个 ansible 模块来管理 fail2ban 的配置,但是当我 运行 我的剧本 [=15= 时,我无法 运行 它]
剧本代码:
- name: "test code"
hosts: 10.7.150.113
tasks:
- name: "test"
fail2ban_SSH_configurator:
bantime: 10
模块代码:
from ansible.module_utils.basic import AnsibleModule
def main():
module = AnsibleModule(
argument_spec=dict(
path = dict(required=False, type=’str’),
bantime = dict(required=True, type=’int’),
findtime = dict(required=False, type=’int’),
maxretry = dict(required=False, type=’int’),
ignoreip = dict(required=False, type=’str’),
destemail = dict(required=False, type=’str’),
sender = dict(required=False, type=’str’),
sendername = dict(required=False, type=’str’),
mta = dict(required=False, type=’str’),
action = dict(required=False, type=’str’),
)
)
path_local = module.params.get('path')
bantime_local = module.params.get('bantime')
findtime_local = module.params.get('fintime')
maxretry_local = module.params.get('maxretry')
ignoreip_local = module.params.get('ignoreip')
destmail_local = module.params.get('destmail')
sender_local = module.params.get('sender')
sendername_local = module.params.get('sendername')
mta_local = module.params.get('mta')
action_local = module.params.get('action')
fichier = open("path", "a")
fichier.write(" [DEFAULT]")
fichier.write("\nbantime =")
fichier.write("\nfindtime = ")
fichier.write("\nmaxretry = ")
fichier.write("\nignoreip = ")
fichier.write("\ndestemail = ")
fichier.write("\nsender = ")
fichier.write("\nsendername = ")
fichier.write("\nmta = ")
fichier.write("\naction = ")
fichier.close()
module.exit_json(changed=False, results=bantime_local)
if __name__ == "__main__":
main()
python 代码远未结束我只是想在继续之前测试它。
但我不知道如何 运行 我的模块,当我尝试吃我的剧本时出现此错误:enter image description here
fail2ban 似乎缩进太多。 该错误抱怨 yaml 缩进问题。
"fail2ban" 和 "name" 应该对齐。
希望对您有所帮助。