如何使用 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" 应该对齐。

希望对您有所帮助。