自定义模块的开发模式
1、决定自定义模块的存放路径
编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/。
这样就告诉ansible,/usr/share/ansible/目录也是一个模块目录。
2、不带参数的模块 mymodule1
#!/usr/bin/pythonfrom ansible.module_utils.basic import *import osmodule = AnsibleModule(argument_spec=dict()))#args = module.params['args']os.system('echo pong')result = dict(echo='pong')module.exit_json(**result)
3、调用
ansible app -m mymodule1
4、带参数的模块 mymodule2
#!/usr/bin/pythonfrom ansible.module_utils.basic import *import osmodule = AnsibleModule( argument_spec = dict( args=dict(required=True) ),)args = module.params['args']os.system('echo {0}'.format(args))result = dict(echo=args)module.exit_json(**result)
5、调用模块
ansible app -m mymodule2 -a "args='hello'"
6、其他变量类型
必填项:name=dict(required=True)
默认值:default=dict(default='present')
选择项:choices=dict(default='present', choices=['present', 'absent'])
布尔值:bools=dict(type='bool')
字符型:str=dict(type='str')
任选变量:name1=dict(aliases=['name2', 'name3'])