四 使用其他语言发开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的字典列表|

  

最新文章

  1. iOS-重回block小白之路
  2. 面向对象的高级编程&IO编程
  3. 炉石传说 C# 开发笔记 (源代码整理公开)
  4. window.opener用法
  5. 手动安装UniDAC的过程
  6. Free Pascal的IDE界面乱码解决方法
  7. 安装Visual Studio2015后,使用VS2013开发的项目,在IIS访问都提示“公共语言运行时检测到无效的程序”的解决办法
  8. 【PHP】 foreach循环中变量引用的一道面试题
  9. Arduino101 中使用 Mirf 库的问题(2016-04-04)
  10. 【C语言探索之旅】 第一部分第四课第一章:变量的世界之内存那档事
  11. Redis源代码分析(二十四)--- tool工具类(2)
  12. centos7 ssh免密码登录
  13. Adobe Acrobat pro生成PDF模版
  14. ROS(indigo) 用于机器人控制的图形化编程工具--code_it robot_blockly
  15. 词向量之Word2vector原理浅析
  16. 转帖: Serverless架构模式简介
  17. document.write的用处!
  18. 基于JMX动态配置Log4J日志级别
  19. css设计并排布局
  20. IT狂人第一至四季/全集The IT Crowd迅雷下载

热门文章

  1. 接口API中的敏感数据基于AES进行安全加密后返回
  2. Java枚举类型定义方式
  3. 【npm】使用淘宝提供的镜像来加速npm
  4. VS插件神器 ReShaper入门
  5. cocos2dx lua invalid 'cobj' in function 'lua_cocos2dx‘ 躺坑
  6. quartz (一) 基于 Quartz 开发企业级任务调度应用
  7. 3.1、Ubuntu系统中jmeter的安装和目录解析
  8. Python学习示例源码
  9. PHP分页及原理
  10. Python面试题目之Python的复制和赋值浅析