博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ansible-随笔-7
阅读量:4360 次
发布时间:2019-06-07

本文共 1268 字,大约阅读时间需要 4 分钟。

扩展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的密码。

转载于:https://www.cnblogs.com/t-road/p/11469049.html

你可能感兴趣的文章
移除SharePoint2013里的NoteBook笔记本链接
查看>>
数据集
查看>>
Objective-C内存管理教程和原理剖析(四)
查看>>
RESTClient插件POST方法传递参数
查看>>
新建Oracle数据库
查看>>
动态计算UITableViewCell高度详解 (转)
查看>>
后缀数组详解+模板
查看>>
洛谷P1731 生日蛋糕
查看>>
Redis类型
查看>>
编程之美----求二进制数中1的个数
查看>>
COGS 577 蝗灾
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE ra
查看>>
sql: left join vs. not in
查看>>
Jasper之table报表
查看>>
基于visual Studio2013解决C语言竞赛题之1061最大值和次最大值
查看>>
惊艳!9个不可思议的 HTML5 Canvas 应用试验
查看>>
12款很酷的使用大头照的国外名片设计作品
查看>>
Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】
查看>>
数据分析的一些误区
查看>>
C语言函数及变量的声明与定义的区别
查看>>