外部变量指的是从playbook文件之外获取的数值 lookups file file是我们经常使用的一种lookups的方式,它的原理就是使用python的codecs.open打开文件然后把结果返回给变量,请看例子 [root@LeoDevops playb]# cat lookups_file.yaml - hosts: u12 gather_facts: False vars: contents: "{{ lookup('file','/etc/sysconfig/network') }…
此篇主要讲述的ansible的condition,主要是用条件进行一些判断,此篇为官方文档的翻译,没有进行相关的测试,后续会写入相关的测试. Ansible的条件语句 1.    前言 在有的时候play的结果依赖于变量.fact或者是前一个任务的执行结果,从而需要使用到条件语句. 2.    When语句 有的时候在特定的主机需要跳过特定的步骤,例如在安装包的时候,需要指定主机的操作系统类型,或者是当操作系统的硬盘满了之后,需要清空文件等 下面的例子表示为使用when语句,如下: tasks:…
注册变量: 变量的另一个用途是将一条命令的运行结果保存到变量中,供后面的playbook使用.例如: - hosts: webservers tasks: - shell: /usr/bin/foo register: foo_result ignore_errors: True   使用ignore_errors来忽略错误信息 - shell: /usr/bin/bar when: foo_result.rc == 5 条件语句: 在某些情况下,一个变量的值可以依赖于其他变量的值,当然也会影响…
注册变量: 变量的另一个用途是将一条命令的运行结果保存到变量中,供后面的playbook使用.例如: - hosts: webservers tasks: - shell: /usr/bin/foo register: foo_result ignore_errors: True   使用ignore_errors来忽略错误信息 - shell: /usr/bin/bar when: foo_result.rc == 5 条件语句: 在某些情况下,一个变量的值可以依赖于其他变量的值,当然也会影响…
目录 简介 when关键字 1. when基本使用 2. 比较运算符 3. 逻辑运算符 条件判断与tests 判断变量 判断执行结果 判断路径 判断字符串 判断整除 其他tests 条件判断与block block rescue always 条件判断与错误处理 fail模块 failed_when changed_when 在循环语句中使用条件语句 简介 在有的时候play的结果依赖于变量.fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后…
内部变量指的是把变量定义在playbook里面或者是执行结果作为变量 循环语句-标准Loops [root@LeoDevops playb]# cat p_loop.yaml - hosts: u12 gather_facts: False tasks: - name: debug loops debug: msg="name -------> {{ item }}" with_items: - one - two 运行结果如下: [root@LeoDevops playb]#…
handlers 用法如下,表示当 tasks 执行成功之后再执行 handlers,相当于 shell 中的 && 用法,如果 tasks 执行失败是不会执行 handlers 语句的 [root@localhost ~]$ cat handlers.yml --- - name: handlers test hosts: 192.168.119.134 user: root tasks: - name: copy file copy: src=/etc/passwd dest=/tmp…
ansible playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml基础语法 语法 描述 缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tabs键 冒号 以冒号结尾的除外,其他所有冒号后面必须有空格 短横线 表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表 1)编写一个简单的playbook 实例, 命名事例为play01.yml --- #play - hosts: lab tasks: - name: Insta…
1.for条件语句 先读取多个不同的变量值,然后逐一执行同一组命令. 从列表文件中读取主机地址,逐个测试是否在线. 从ipadds.txt中读取主机地址后赋值给HLIST变量后逐个ping列表中的主机IP地址,测试是否能够ping通: vim ipadds.txt 内容如下: 192.168.20.6 192.168.20.47 192.168.20.120 localhost 测试Shell脚本: #!/bin/bash HLIST=$(cat /home/ipadds.txt) for IP…
一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会遇到将这些基础设施资源验证完成后,分别部署到 DEV,UAT,PRD 等多个环境 .那么我们就带着个整个问题开始今天的分析. --------------------Azure Terraform 系列-------------------- 1,Azure Terraform(一)入门简介 2,A…