扩展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的更多相关文章

  1. Ansible随笔8

    自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...

  2. Ansible playbook API 开发 调用测试

    Ansible是Agentless的轻量级批量配置管理工具,由于出现的比较晚(13年)基于Ansible进行开发的相关文档较少,因此,这里通过一些小的实验,结合现有资料以及源码,探索一下Ansible ...

  3. ansible学习

    声明:本博客内容是根据惨绿少年内容实践随笔,地址:http://www.cnblogs.com/clsn/p/7743792.html#comment_form 1.ansible介绍 Ansible ...

  4. Ansible 利用playbook批量部署mariadb

    环境说一下 192.168.30.21     ansible 192.168.30.25     client1 192.168.30.26     client2 这里我的ansible环境已经部 ...

  5. Ansible实现zabbix服务器agent端批量部署

    项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源 的自动化运维工具Ansible,相信大家也很熟 ...

  6. 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续

    ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...

  7. 如何利用ansible callback插件对执行结果进行解析

    最近在写一个批量巡检工具,利用ansible将脚本推到各个机器上执行,然后将执行的结果以json格式返回来. 如下所示: # ansible node2 -m script -a /root/pyth ...

  8. AI人工智能系列随笔

    初探 AI人工智能系列随笔:syntaxnet 初探(1)

  9. 【置顶】CoreCLR系列随笔

    CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...

  10. C++随笔:.NET CoreCLR之GC探索(4)

    今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...

随机推荐

  1. layer通过父页面调用子页面的方法及属性

    引言 在使用layer.js的过程中,需要通过layer.open()以iframe的形式打开特定的页面,同时需要用layer的按钮对打开的页面进行提交及重置操作,但是苦于不知如何在父页面调用子页面的 ...

  2. ajaxfileupload上传文件出现SyntaxError:unexpected token <错误

    function ajaxFileUpload() { $.ajaxFileUpload ( { url: uri, secureuri: false, fileElementId: 'upFile' ...

  3. 在知乎上看到的几个关于C的奇淫技巧

    有一个鲜为人知的运算符叫”趋向于”, 写作“-->”.比如说如果要实现一个倒数的程序,我们可以定义一个变量x,然后让它趋向与0: 输出: 然后我们把 "x-->0" 换 ...

  4. Joda-Time 入门

    Joda-Time 令时间和日期值变得易于管理.操作和理解.事实上,易于使用是 Joda 的主要设计目标.其他目标包括可扩展性.完整的特性集以及对多种日历系统的支持.并且 Joda 与 JDK 是百分 ...

  5. Maven入门指南12:将项目发布到私服

    1 . 修改私服中仓库的部署策略 Release版本的项目应该发布到Releases仓库中,对应的,Snapshot版本应该发布到Snapshots仓库中.Maven根据pom.xml文件中版本号&l ...

  6. (转)OpenGL学习——立方体贴图

    转自:https://learnopengl-cn.readthedocs.io/zh/latest/04%20Advanced%20OpenGL/06%20Cubemaps/ 我们之前一直使用的是2 ...

  7. Codeforces 1156D 带权并查集

    题意:给你一颗树,树边的权值可能是0或1,问先走0边,再走1边,或者只走1边的路径有多少条? 思路:对于一个点,假设通过0边相连的点一共有x个(包括自己),通过1边相连的有y个(包括自己),那么对答案 ...

  8. JavaScript 中 reduce去重方法

    过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它.事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊 JS 中 redu ...

  9. Java常见的开源数据连接池有哪些,并对参数做出简单的说明

    (1)DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP. (2)c3p0 c3p ...

  10. 封装加减乘除函数 解决JS 浮点数计算 Bug

    计算机内部的信息都是由二进制方式表示的,即0和1组成的各种编码,但由于某些浮点数没办法用二进制准确的表示出来,也就带来了一系列精度问题.当然这也不是JS独有的问题. 例如, 我们在用JS做浮点运算会遇 ...