自定义ansible模块

准备工作


# 创建ansible模块目录

mkdir /tmp/ansible

#声明全局变量,设置ansible查找模块的路径

export ANSIBLE_LIBRARY=/tmp/ansible

#需要在路径下创建文件,或者写完复制到定义全局变量的路径下


源代码

vim /tmp/mylib/rcopy.py

#导入模块

from ansible.module_utils.basic import AnsibleModule

import shutil

#创建模块入口

def main():

module = AnsibleModule(

argument_spec=dict(

yuan=dict(required=True, type='str'),

mubiao=dict(required=True, type='str')

)

)

#执行动作

#将yuan拷贝到mubiao

shutil.copy(module.params['yuan'], module.params['mubiao'])

#返回结果

#拷贝完成后,返回json数据

module.exit_json(changed=True)

#编写主程序代码

if __name__ == '__main__':

main()

# 执行命令

ansible dbservers -m rcopy -a "yuan=/etc/hosts

mubiao=/tmp/zhuji"


执行代码结果

ansible dbservers -m rcopy2 -a "yuan='/etc/hosts' mubiao='/tmp/zhuji'"

node4 | CHANGED => {

    "changed": true

[root@node4 ~]# cat /tmp/zhuji

# ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

可以查看到文件中的内容


你可能感兴趣的:(自定义ansible模块)