• ansible modules开发(二)


    四 使用其他语言发开module

    cd /etc/ansible 
    cat library/touch.sh
    
    
    
    #!/bin/sh 
    args_file=$1 
    [ ! -f "$args_file" ] && echo -n '{"failed": true, "msg": "missing required arguments: file"}' && exit 1 
    
    args_result=$(cat $args_file | gawk -F'file=' '{print $2}' | gawk -F' ' '{print $1}') 
    
    [ ! -n "$args_result" ] && echo -n "{"failed": true, "msg": "file () is absent, cannot continue", "file": "$args_result"}" && exit 1 
    
    touch $args_result && echo -n "{"changed": true, "rc": $?,"file": "$args_result"}" || echo -n "{"failed": true, "rc": $?, "file": "$args_result"}" 
    
    exit $?
    

      返回值一定是json dumps的字符串。
    ansible的参数都会被写入一个名为args的文件,上图的$1 就是这个文件的路径,读取这个文件的内容,就能获取file参数的值。

    创建playbook

    cat touch.yml 
    ---
    
    - hosts: node1
      tasks:
      - touch: file=/tmp/123
    

      

    host清单

    cat hosts
    [node1]
    192.168.77.129 ansible_ssh_pass=123456 ansible_sh_interpreter=/bin/sh
    

     

    执行他

    五 module的返回值

    1 共同返回值

    |名称 |类型 |说明|
    |:---|:---|
    |backup_file |str |对于一些modules使用了backup变量,返回备份的文件路径|
    |changed |bool| 表示任务是否必须进行更改。|
    |failed |bool |表示任务是否失败。|
    |invocation| dict |有关如何调用模块的信息。|
    |msg |str| 存储通用消息的字符串|
    |rc| int| 命令行程序的返回码|
    |results |dict |如果该键存在,则表示该任务存在循环,并且它包含每个项目的模块“results”的列表。|
    |skipped| bool |表示该任务是否被跳过|
    |stderr |str| 命令行程序的错误输出|
    |stderr_lines| list |它将stderr字符串按行分割存储在列表中|
    |stdout |str| 命令行程序的标准输出|
    |stdout_lines |list |它将stdout字符串按行分割存储在列表中|
    

      

    2 内部使用

    这些值是ansible内部定义的。
    
    |名称 |类型 |说明|
    |:---|:---|
    |ansible_facts |dict |该key应包含一个字典,附加到分配给主机的fact。 这些可以直接访问,不需要使用注册的变量。|
    |exception |dict |该key包含由模块中的异常引起的追溯信息。 它只能以高度详细程度显示(-vvv)。|
    |warnings| list |此键包含将显示给用户的字符串列表。|
    |deprecations|dict |返回msg和version的字典列表|
    

      

  • 相关阅读:
    我的黑客偶像
    2020-2021-1学期 学号20201222 《信息安全专业导论》第5周学习总结
    XOR加密
    pep/9
    我的黑客偶像
    学年2020-2021,1 学号:20201222《信息安全专业导论》第4周学习总结”
    IEEE754浮点数转换
    师生关系
    罗马数字转阿拉伯数字
    第三周总结
  • 原文地址:https://www.cnblogs.com/wanstack/p/8781256.html
Copyright © 2020-2023  润新知