参考官网:http://www.ansible.com.cn/docs/developing_modules.html#tutorial
阅读 ansible 附带的模块(上面链接)是学习如何编写模块的好方法。但是请记住,ansible 源代码树中的某些模块是内在的,因此请查看service或yum,不要太靠近async_wrapper 之类的东西,否则您会变成石头。没有人直接执行 async_wrapper。
好的,让我们开始举例。我们将使用 Python。首先,将其保存为名为timetest.py的文件:
#!/usr/bin/python import datetime import json date = str(datetime.datetime.now()) print(json.dumps({ "time" : date }))程序
[root@mcw1 ~]$ mkdir /usr/share/my_modules #这个目录并不存在,ansible配置中存在这个注释掉的路径
[root@mcw1 ~]$ vim uptime
#!/usr/bin/python import json import os up = os.popen('uptime').read() dic = {"result":up} print json.dumps(dic)
执行结果:
[root@mcw1 ~]$ grep library /etc/ansible/ansible.cfg #将配置中的这行内容注释,取消掉
library = /usr/share/my_modules/
这里显示它使用的解释器路径了,这个解释器是python2的解释器,如果我写的是python3的脚本,并且不支持python2执行,我可能需要修改ansible默认使用的python解释器。有点问题,我脚本里写的是python2的解释器,我写成python3应该就是python3了吧
按照上面想法试了下,果然是的,我另一个主机是没有安装python3的,所以报错了。使用python3,貌似不会显示python的路径,跟之前python2有点区别
参考地址:https://blog.csdn.net/weixin_46108954/article/details/104990063