首页 > 其他 > 详细

Ansible-随笔-7

时间:2019-09-05 20:00:37      阅读:83      评论:0      收藏:0      [点我收藏+]

扩展Ansible的插件系统。

有的时候,如果Ansible内置的插件无法满足需求时,我们可以自己编写新插件。

以下情况下可以考虑开发新插件:

1、除Paramiko、本机SSH、Local、Winrm等连接方式外,希望Ansible基于新的通信方式与远程主机交互。

2、除内置的with_items、with_fileglob循环体外,希望有新的遍历方式。

3、除内置的host_vars、group_vars等变量调用方式外,希望有新的变量定义方式。

4、除内置的jinja2渲染模板、to_yaml、to_json等过滤器,希望有新的过滤器。

5、定义新的回调机制,捕获响应事件后自定义新的响应形式。

对stdout输出结果做处理;

增加日志记录,如插入到mysql、redis、mongodb;

增加事件响应方式,比如playbook返回success时,发送邮件到各部门。

 

技术分享图片

 

 

 

插件存放位置:

技术分享图片

 

 

 从github上下载插件模板(可以下载action插件、callback插件、connection插件等)到上面对应的目录中,然后

进行相应的修改即可。

 

举例:编写过滤插件deal_list_num.py

/usr/share/ansible/plugins/filter/deal_list_num.py

技术分享图片

 

 

技术分享图片

 

 

后续需要模仿着这个来写。这里的data是 | 符号前面的数字。

num_list | positive

也就是将num_list作为data传递给了positive函数。如果positive需要2个参数,则应该写成positive(参数2)。参数1就是默认的data,无需传递。

 

定义好插件后,我们来编写yml文件,来使用我们自己的插件。

技术分享图片

 

 

 

执行,看结果:

技术分享图片

 

 

 

解析:在yml中,我们使用了 "| positive","| negative","| no_less_than"等方式。

当ansible看到 | 时,就知道这是调用了过滤。于是它去

技术分享图片

 

开始找。看到deal_list_num.py后,它会调用里面类,并调用类的filters方法。而刚好filters方法返回了三个其他的方法。

分别是positive,negative,no_less_than。所以我们调用 | positive,就刚好调用了positive方法,最终返回了需要的结果。

 

如果想要将任务的返回结果打印到终端上。可以调用debug。以前都是默认的。

 

filter和callback插件是比较重要的2个,需要经常写来掌握。

其他的插件则用的比较少。可以暂时不用管。

技术分享图片

 

该目录是自定义插件的根据地。都写在这里。

 

=================密码认证

1、使用密码认证

首先在hosts文件中填上用户名和密码。

技术分享图片

 

 

然后执行命令:

技术分享图片

 

 

这条命令等价于:

ssh yangling@192.168.40.253 "whoami"

最后需要输入yangling的密码。

 

高可用架构

技术分享图片

 

Ansible-随笔-7

原文:https://www.cnblogs.com/t-road/p/11469049.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!