准备工作
# 创建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