Ansible随笔8

Posted t-road

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘])

 

以上是关于Ansible随笔8的主要内容,如果未能解决你的问题,请参考以下文章

关于ansible的随笔

随笔-ansible

ansible plugins简介

VSCode自定义代码片段8——声明函数

在ansible模板中使用动态组名称

2017.8.10 习题随笔