準備工作
# 創(chuàng)建ansible模塊目錄
mkdir /tmp/ansible
#聲明全局變量,設(shè)置ansible查找模塊的路徑
export ANSIBLE_LIBRARY=/tmp/ansible
#需要在路徑下創(chuàng)建文件,或者寫完復制到定義全局變量的路徑下
源代碼
vim /tmp/mylib/rcopy.py
#導入模塊
from ansible.module_utils.basic import AnsibleModule
import shutil
#創(chuàng)建模塊入口
def main():
module = AnsibleModule(
argument_spec=dict(
yuan=dict(required=True, type='str'),
mubiao=dict(required=True, type='str')
)
)
#執(zhí)行動作
#將yuan拷貝到mubiao
shutil.copy(module.params['yuan'], module.params['mubiao'])
#返回結(jié)果
#拷貝完成后,返回json數(shù)據(jù)
module.exit_json(changed=True)
#編寫主程序代碼
if __name__ == '__main__':
main()
# 執(zhí)行命令
ansible dbservers -m rcopy -a "yuan=/etc/hosts
mubiao=/tmp/zhuji"
執(zhí)行代碼結(jié)果
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