ansible(六)variables(二)使用

上一篇,咱们总结了下,ansible里的variables,这东西是从哪里来的。楼主举的例子可能都比较白痴,不过重在说明原理和过程,大伙有实际需求的时候,可以弄点高深的玩玩。

说过了,variables来自哪里,那variables该咋用呢?

说起用,用可以简单的用,也可以复杂的用,简单的用variables,直接{{variable}}这样用俩大括号括起来就OK了。高深的用,就要运用的更加灵活,可以对变量进行处理,结合循环,条件选择等流程控制方法使用。

说到variables,无外乎用在俩地方,playbooks和template里面

mark一下jinja2官方文档

http://jinja.pocoo.org/docs/templates/#builtin-filters

下面楼主整个没啥实际作用小例子,测试一下功能。

简单说明一下,

19行,故意执行一个错误的命令

25,29,30,34行,都通过|,对变量做了处理。 | 是jinja2里面的filter,意思就是咱们这个

变量|方法,通过|后面的方法对变量进行处理,得到一个新的结果。

25行判断result是failed还是success了,当falied的时候返回True

29行,取list1和list2两个列表的合集

30行,判断dic[‘dic1‘]的value是否匹配"li*",匹配返回True,否则False

34行,比较大小,判断dic[‘dic3‘]是否等于10,等于返回True,不等返回False

类似的filter还有很多很多,这里就不一一列举了,大伙没事可以去看看官网或者jinja2的官网

再看一下template里面的内容

1,2,10行用到了facts

9行,用到了,自定义模块返回的facts,9行的default(0)是设定默认值,如果chengge这个变量不存在,则这个表达式的结果为0

5行,用到了咱们在playbooks里面定义的variables,及template的filter功能

8行和10行,用到了ansible里面的三个内置变量中的俩个,三个分别是groups,group_names,hostvars

差不多就这些了,看下结果吧

OK,回家!

ansible(六)variables(二)使用

时间: 2024-12-18 06:56:00

ansible(六)variables(二)使用的相关文章

QT开发(六十二)———QT5解析Json文件

QT开发(六十二)---QT5解析Json文件 一.QT5 Json简介 QT4中使用第三方库QJson解析JSON文件. QT5新增加了处理JSON的类,类均以QJson开头,包含在QtCore模块中.QT5新增加六个相关类: QJsonArray 封装 JSON 数组 QJsonDocument 读写 JSON 文档 QJsonObject 封装 JSON 对象 QJsonObject::iterator 用于遍历QJsonObject的STL风格的非const遍历器 QJsonParseE

ansible自动化(二)

一.安装支持包 yum -y install lrzsz vim net-tools gcc gcc-c++ ncurses ncurses-devel zlib-devel zlib openssl-devel openssl 二.源码编译Python3.5 下载安装包: 解压: tar xf Python-3.5.2.tgz -C /usr/src/ 移动: cd /usr/src/Python-3.5.2/ 预配置: ./configure --prefix=/usr/local/pyth

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

自动化运维工具Ansible实战(二)主机清单的管理

Ansible安装好之后的主机清单配置文件有如下两种:1.yum安装,配置文件默认路径为:/etc/ansible/hosts2.源码包安装,主机清单配置文件路径需要从软件包里面拷贝,如下: [[email protected] ~]# mkdir /etc/ansible --创建ansible目录 [[email protected] ~]# cp /usr/src/ansible-2.5.0/examples/hosts /etc/ansible/ --拷贝文件(已拷贝忽略就好了) Ans

剑指offer(六十二)之二叉搜索树的第k个结点

题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 代码: <span style="color:#cc33cc;">/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val;

JAVA学习第六十二课 — TCP协议练习

通过练习掌握TCP在进行传输过程中的问题 练习1:创建一个英文大写转换服务器 客户端输入字母数据,发送给服务端,服务端收到后显示到控制台,并将该数据转成大写返回客户端,知道客户端输入over,转换结束 public class Main { public static void main(String[] args) throws IOException{ Text_Transform_Client(); Text_Transform_Server(); } public static void

Ansible Tower系列 二(安装 Tower)【转】

文档:http://docs.ansible.com/ansible-tower/ 安装前检查 python版本为2.6 保持网络畅通 内存预留充足 安装用户为root 软件下载 下载地址:http://releases.ansible.com/ansible-tower/setup/含有包文件的版本:http://releases.ansible.com/ansible-tower/setup-bundle/ wget http://releases.ansible.com/ansible-t

【剑指offer】十六,二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同 分析:对于二叉搜索的遍历,值得注意的是中序遍历将产生一个递增的数组,后序遍历产生的数组根节点是数组的最后一个数字,根节点的左子树遍历的结果在数组的左部分这部分结果的值都小于根节点的值,右子树遍历的结果在数组的右部分这部分的值都大于根节点的值,是经纬分明的,所以我们可以利用递归来求解此题,先根据跟节点找出左子树和右子树,队左右子树再分别重复此过程,代码

ansible学习笔记(二) -- roles

上一节把整个布局大概列了一下,这节重点记录一下 /etc/ansible/roles/tomcat 这个目录下的各目录的意义 此目录的目录结构如下: . ├── files │ └── tomcat-initscript.sh ├── handlers │ └── main.yml ├── tasks │ └── main.yml └── templates ├── iptables-save ├── server.xml └── tomcat-users.xml tasks/main.yml