首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在两个Ansible when条件下,应检查注册变量的哪个属性

在两个Ansible when条件下,应检查注册变量的"stdout"属性。

Ansible是一种自动化工具,用于配置和管理计算机系统。它使用基于Python的简单语法来描述自动化任务,并通过SSH协议在远程主机上执行这些任务。Ansible的when条件用于在执行任务之前检查某些条件是否满足。

当使用Ansible的register模块注册一个命令的输出时,可以通过检查注册变量的属性来判断命令是否成功执行。其中,"stdout"属性包含了命令的标准输出。

在两个Ansible when条件下,应检查注册变量的"stdout"属性,以判断命令的执行结果是否符合预期。例如:

代码语言:txt
复制
- name: Execute command and register output
  command: some_command
  register: command_output

- name: Perform task based on command output
  debug:
    msg: "Command succeeded"
  when: command_output.stdout == "expected_output"

- name: Perform another task based on command output
  debug:
    msg: "Command failed"
  when: command_output.stdout != "expected_output"

在上述示例中,当注册变量"command_output"的"stdout"属性等于"expected_output"时,执行第一个任务;当"stdout"属性不等于"expected_output"时,执行第二个任务。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Ubuntu 14.04上使用Ansible部署多个PHP应用程序

现在是时候解决一个更复杂循环示例,特别是注册变量。...为了支持不同状态并防止任务不必要地运行,您将记住我们克隆git存储库任务中使用register: cloned方法是将cloned变量注册成为任务状态。...但是,我们现在有一个注册变量循环中很好地工作。 第6步 - 复杂注册变量和循环 本节中,我们将了解更复杂注册变量和循环。 转换中最复杂部分是处理我们用于MySQL数据库密码生成注册变量。...我们可以对每个任务进行条件检查,以确定哪个服务器正在运行任务,或者我们可以使用主机变量。主变量就是它们听起来样子:适用于特定主机变量,而不是整个剧本中所有主机。...主机变量可以hosts文件中内联定义,就像我们使用ansible_ssh_user变量一样,或者可以目录中每个主机专用host_vars文件中被定义。

8.6K00
  • 云原生之 Ansible 篇(二)

    不会执行,因为我们已经命令中指定了’跳过’标签t2所对应任务,相当于使用了’排除法’,t2对任务被排除了,其他任务都会执行。...---- ansible 之 block 当我们想在满足一个条件下,执行多个任务时,就需要分组了。而不再每个任务都要用when。...之 register 用于注册一个变量,保存命令结果(shell或command模块),这个变量可以在后面的task、when语句或模板文件中使用。...pwd_status - name: print pwd_ststus value debug: msg={{ pwd_status }} debug模块可以输出register模块中对应变量属性...不为0,则在其语句后面的ansible语句不会被执行,导致程序中止。 那我如何去做多种条件判断呢,比如我还需要判断是否有 docker-thinpool 存在,则还需要为它注册一个变量

    1.5K20

    Ansible剧本(playbook)编写

    .ipv4.address }}" >/root/ip.txt 主机hosts中指定变量: tail -5 /etc/ansible/hosts [backup] 10.1.1.30 [backup...(register) 使用情景:将配置文件状态注册成一个变量,方便其他任务引用 具体实现: 1.将配置文件状态注册成一个服务变量并打印出来 - hosts: 10.1.1.20 tasks:...事实是单个主机属性,包括 IP 地址、操作系统、文件系统状态等等。基于事实条件: 只有操作系统是特定版本时,才能安装特定包。 您可以跳过具有内部 IP 地址主机上配置防火墙。..." 回顾运行检查规范与补充 00.检查剧本拼写规范 ansible-playbook --syntax-check check.yaml 01.检查这个任务执行主机对象 ansible-playbook... Python 里, 42 和 42.0 是不一样 算术运算: Jinja 允许用计算值。支持下面的运算符 +:把两个对象加到一起。

    2K40

    玩转企业常见应用与服务系列(十五):Ansible palybook 原理与实践

    #标记文件开始 - hosts: webservers #指定该playbook在哪个服务器上执行 vars: #表示下面是定义变量...register 和when register 用于注册一个变量,保存命令结果(shell或command模块),这个变量可以在后面的task、when语句或模板文件中使用。...== "RedHat" #当系统属于红帽系列,执行shell模块 循环 标准循环关键字:”with_items” ,对迭代项引用,固定变量名为"item”,使用with_item属性给定要迭代元素...对Ansible优化可以有两个思路,一个是优化SSH链接,使得SSH传输速度变快。...SSH对主机公钥检查是根据StrictHostKeyChecking变量来设定,StrictHostKeyChecking检查级别包括:no(不检查),ask(是否检查要询问),yes(每次都检查

    28811

    2021年排名前85DevOps面试问答

    Ansible角色是嵌入在剧本中任务,变量,文件和模板独立块。 ? 这本剧本node1上安装了tomcat。 59.我什么时候应该使用“ {{}}”?...除非您有条件语句,例如“ when:…”,否则始终对变量使用{{}}。这是因为条件语句是通过Jinja运行,而Jinja会解析表达式。...例如: echo“这将显示{{foo}}值” when:定义了foo 使用方括号可以更轻松地区分字符串和未定义变量。 ?...name-可以在其他对象定义中引用模板名称,以便它可以继承对象属性/变量。 使用-在这里,您指定您要使用模板对象名称 想要从中继承属性/变量。...register-此变量指示对象定义是否 应该在Nagios上注册。 定义一些对象类型{ 特定于对象变量…。

    6.8K30

    2022年 RedHat 最新 RHCE 中级认证考题解析

    dest: /etc/myhosts #复制到对应路径下 调用所有hosts:all原因先引用所有主机内置变量,因为我们hosts.j2里面调用了所有主机变量.../locker.yml 库中含有两个变量,名称如下: pw_developer,值为 Imadev pw_manager,值为 Imamgr 用于加密和解密该库密码为whenyouwishuponastar...从 pw_developer 变量分配密码 是附加组 student 成员 职位描述为 manager 用户应当: prod 主机组中受管节点上创建 从 pw_manager 变量分配密码...: item.job == "manager", 考点: 1.loop循环,vars_files变量导入与调用,when使用,user模块 2.group模块: 参数 :name 必须参数 指定要操作组名称...,state:两个选项 1.present 创建组 2.absent删除组 gid: 用于指定gid 十五、Ansible密钥 按照下方所述,更新现有 Ansible密钥: 从 http://

    2.9K31

    Ansible 详细用法说明(二)

    角色; 2.playbook基础组件: Hosts:运行指定任务目标主机; remote_user:远程主机以哪个用户身份执行; sudo_user:非管理员需要拥有sudo权限; tasks...六、 Variables:变量 内建: (1) facts 自定义: (1) 命令行传递;这个优先级最高 -e VAR=VALUE (2) hosts Inventory(/etc/ansible...vars: - var_name: value - var_name: value (4) Inventory还可以使用参数: 用于定义ansible远程连接目标主机时使用属性...我们打算使用基于文本模板语言时,jinja2是很好解决方案。yeml是写playbook,jinja2是写配置文件模板 功用 将模板文件变量值转换成对应本地主机的确定值。...ansible_distribution_major_version == "7" 3、循环:迭代,需要重复执行任务; 对迭代项引用,固定变量名为"item”,使用with_item属性给定要迭代元素

    2.6K50

    Ansible Playbook实战

    扩展名是yaml 缩进 YAML使用固定缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用tabs 冒号 以冒号结尾除外,其他所有冒号后面所有必须有空格。...执行参数赋给变量 3) 文件中定义变量 1、playbookyaml文件中定义变量赋值 #playbook中定义 [root@manager ~]# cat f2.yml - hosts: all..." 3) 文件中定义变量: 可以/etc/ansible/hosts主机组中定义,然后使用palybook进行调度该变量 #文件中定义变量 [root@manager ~]# cat /etc/ansible...tmp目录创建bgx_filename文件 如果定义变量出现重复,且造成冲突,优先级如下: 1.extra-vars外置传参优先级最高 [所有执行主机都生效] 2.定义yml文件中优先级其次...[所有执行主机都生效] 3.hosts文件中定义变量优先级最低 [当前主机组定义会生效] 3.Playbook变量注册 1) 注册变量: register关键字可以存储指定命令输出结果到一个自定义变量

    2.7K10

    ansible 变量

    Ansible 变量 ansible里面灵活使用变量会使我们工作变得更加灵活。..._1 - test_vars_2: test_file_2 定义变量时候还能够使用类似于“属性方式来定义 [root@master_11 playbook]# cat z17.yml -...用于注册一个变量,保存命令结果(shell或者command模块),这个比那辆可以在后面的task、when语句或模板文件中使用,该指定用在循环中会有不同, [root@master_11 playbook...它也可以通过`/usr/bin/ansible'直接执行来检查哪些变量可供主机使用。 Ansible提供了很多关于系统“事实”,自动。 Windows目标也支持此模块。...Name和Blog两个变量,然后并输入提示信息prompt设置,当我们用户输入内容时候屏幕上是没有回显信息,这种情况我们输入密码时候最有效,当我们想要她显示输入内容时候,你需要继续向下阅读

    2.3K30

    243张图片为你解析Linux轻量级自动运维化工具Ansible

    -r命令 示例3:主机上面都创建一个用户 查看两台主机是否已经创建该用户 查看用户信息: 帮这两个用户改密码,此处需要注意是,虽然用下面的命令看似执行成功,但是当我们验证时候,就会发现密码错误了...变量ansible_ssh_host ansible_ssh_port ansible_ssh_user ansible_ssh_pass ansible_sudo_pass ... (5) 角色调用时传递...:when语句:tasks中使用,Jinja2语法格式; 示例:利用Ansible条件测试CentOS_6和CentOS_7启动服务 这边首先增加一台ip为10.1.156.70CentOS7...with_item属性给定要迭代元素; 元素:列表 字符串 字典 基于字符串列表给出元素示例: 示例:基于列表方式安装多个安装包 检查语法 测试运行,没有报错(这里就以69和70两台不同版本CentOS...服务是依靠设置内存参数来定义,所以我们得首先用ansible来确认系统内存变量参数值是什么,并且通过以下图可以看见两个系统参数都是一致

    1.6K60

    243 张图片为你解析 Linux 轻量级自动运维化工具 Ansible

    帮这两个用户改密码,此处需要注意是,虽然用下面的命令看似执行成功,但是当我们验证时候,就会发现密码错误了,这是因为ansiblecommand模块并不支持管道等输出,所以下面介绍另外一个ansible...重点检查一下cpu变量是否有改变,这里可以看到,跟我们ansible_processor_vcpus值是一样,这样符合我们预期,此处就展示完毕 ? ?...条件测试 :when语句:tasks中使用,Jinja2语法格式; 示例:利用Ansible条件测试CentOS_6和CentOS_7启动服务 这边首先增加一台ip为10.1.156.70CentOS7...示例:同一个 yml 配置文件里面运行两个服务模板程序 这里以memcached为例,首先复制memcached配置文件到对应templates目录下来为.j2文件 ?...memcached服务是依靠设置内存参数来定义,所以我们得首先用ansible来确认系统内存变量参数值是什么,并且通过以下图可以看见两个系统参数都是一致。 ?

    1.2K20

    ansible超详细讲解,值得收藏

    那么ansible中使用变量意义也是一样,明确意义、方便修改。 怎么定义变量和使用变量?...,那么如果在多个地方定义了相同变量,优先会使用哪个呢?...通过执行命令传递变量 playbook中引入vars_files中变量 playbook中定义vars变量 host_vars中定义变量 group_vars中组名文件中定义变量 group_vars...中all文件中定义变量 ansible resister注册变量 我们使用ansible-playbook时候,它输出是固定格式,假如我们启动了httpd服务以后,想要看一下这个服务状态,...上面是输出了所有的内容,如果需要输出部分内容,只要用变量.属性就行了,属性就是msg下字典 ansible facts变量意义 ?

    2.9K20

    243张图片为你解析Linux轻量级自动运维化工具Ansible

    变量ansible_ssh_host ansible_ssh_port ansible_ssh_user ansible_ssh_pass ansible_sudo_pass ... (5) 角色调用时传递...,所以应该是没有问题 正式运行,没有问题 查看一下端口是否已经打开 重点检查一下cpu变量是否有改变,这里可以看到,跟我们ansible_processor_vcpus值是一样,这样符合我们预期...,此处就展示完毕 条件测试 :when语句:tasks中使用,Jinja2语法格式; 示例:利用Ansible条件测试CentOS_6和CentOS_7启动服务 这边首先增加一台ip为10.1.156.70...使用with_item属性给定要迭代元素; 元素:列表 字符串 字典 基于字符串列表给出元素示例: 示例:基于列表方式安装多个安装包 检查语法 测试运行,没有报错(这里就以69和70两台不同版本...memcached服务是依靠设置内存参数来定义,所以我们得首先用ansible来确认系统内存变量参数值是什么,并且通过以下图可以看见两个系统参数都是一致

    1.4K30

    243张图片为你解析Linux轻量级自动运维化工具Ansible

    帮这两个用户改密码,此处需要注意是,虽然用下面的命令看似执行成功,但是当我们验证时候,就会发现密码错误了,这是因为ansiblecommand模块并不支持管道等输出,所以下面介绍另外一个ansible...重点检查一下cpu变量是否有改变,这里可以看到,跟我们ansible_processor_vcpus值是一样,这样符合我们预期,此处就展示完毕 ? ?...条件测试 :when语句:tasks中使用,Jinja2语法格式; 示例:利用Ansible条件测试CentOS_6和CentOS_7启动服务 这边首先增加一台ip为10.1.156.70CentOS7...示例:同一个 yml 配置文件里面运行两个服务模板程序 这里以memcached为例,首先复制memcached配置文件到对应templates目录下来为.j2文件 ?...memcached服务是依靠设置内存参数来定义,所以我们得首先用ansible来确认系统内存变量参数值是什么,并且通过以下图可以看见两个系统参数都是一致。 ?

    1.2K20

    自动化运维实践 | Ansible变量

    Ansible使用变量几个场景 playbook中, 常用几种变量包括以下几种情况: 1)playbook中用户自定义变量 2)用户无须自定义。...3)文件模板中,可以直接使用上述两种变量 4)把任务运行结果作为一个变量来使用,这个变量叫做注册变量 5)为了使playbook更灵活、通用性更强,允许用户执行playbook时传入变量值,这个时候就需要用到...使用复杂Facts变量 可以通过下面两种方式访问复杂变量属性: 中括号: {{ ansible_ens3["ipv4"]["address"] }} 点号: {{ ansible_ens3.ipv4...把运行结果当做变量使用-注册变量 把任务执行结果当做一个变量值也是可以。这个时候就需要用到"注册变量",即把执行结果注册到一个变量中,待后面的任务使用。...,作用域为某个主机 --- 定义主机清单中变量 --- 主机系统变量 --- 注册变量 Ansible变量优先级 Ansible变量优先级(由低到高) role defaults dynamic

    2K30

    云原生之 Ansible 篇(一)

    比如我们分发配置文件时,每个配置文件需要根据远程主机一些属性不同而配置不同值,对于需要替换部分,我们就可以使用template模块来进行替换。...; 每一个任务最好有一个name属性,这样执行yaml脚本时,可以看到执行进度信息(也方便失败时候快速定位)。...4.范围 全局范围:从命令行或ansible配置设置变量 play范围:play和相关结构中设置变量 主机范围:由清单、事实收集或注册任务,主机组和个别主机上设置变量 如果多个级别上定义了相同名称变量...testvar2: testfile2 定义变量时,还能够以类似”属性方式定义变量,示例如下 --- - hosts: testB remote_user: root vars:...当我们需要引用这两个变量时,有两种语法可用 "{{httpd.conf80}}" 在外部文件定义playbook变量(vars_files) playbook中引入包含变量文件时,需要使用vars_files

    2.3K10
    领券