• Ansible-随笔-7


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

  • 相关阅读:
    sujection重构
    serialize存入数组
    migration integer limit option
    FineReport——FS
    Oracle事务处理
    FineReport——发送邮件
    FineReport——登录不到决策系统
    FineReport——JS二次开发(复选框全选)
    FineReport——JS二次开发(局部刷新)
    FineReport——JS二次开发(工具栏按钮事件及说明)
  • 原文地址:https://www.cnblogs.com/t-road/p/11469049.html
Copyright © 2020-2023  润新知