Ansible随笔8

自定义模块的开发模式

1、决定自定义模块的存放路径

编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/。

这样就告诉ansible,/usr/share/ansible/目录也是一个模块目录。

2、不带参数的模块 mymodule1

#!/usr/bin/python
from ansible.module_utils.basic import *
import os

module = 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/python
from ansible.module_utils.basic import *
import os

module = 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'])

原文地址:https://www.cnblogs.com/t-road/p/11475093.html