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

Ansible - 'when‘不是剧本的有效属性

Ansible是一种自动化工具,用于配置管理、应用部署和任务协调。它基于Python语言开发,可以通过SSH协议远程管理和配置多台服务器。Ansible使用简单、易于学习,具有强大的扩展性和灵活性。

'when'是Ansible中的一个条件属性,用于在执行任务之前判断某个条件是否满足。当条件满足时,任务将被执行;当条件不满足时,任务将被跳过。'when'属性可以是一个布尔表达式,也可以是一个Ansible模块的返回值。它可以用于根据不同的情况执行不同的任务或跳过某些任务,从而实现更加灵活和智能的自动化操作。

在Ansible中,'when'属性通常与其他属性一起使用,例如'ansible_facts'、'ansible_distribution'等,以便根据主机的特定属性或状态来决定任务的执行。通过合理使用'when'属性,可以根据需要对不同的主机或主机组执行不同的操作,提高自动化管理的效率和灵活性。

以下是一些使用Ansible的示例场景和推荐的腾讯云相关产品:

  1. 应用部署和配置管理:使用Ansible可以轻松地在多台服务器上部署和配置应用程序。推荐的腾讯云产品是云服务器CVM,详情请参考:云服务器CVM
  2. 自动化任务协调:Ansible可以用于协调和执行各种自动化任务,例如定时备份、日志清理等。推荐的腾讯云产品是云函数SCF,详情请参考:云函数SCF
  3. 系统配置管理:使用Ansible可以对多台服务器进行统一的配置管理,例如安装软件包、修改配置文件等。推荐的腾讯云产品是云监控CM,详情请参考:云监控CM
  4. 基础设施自动化:Ansible可以与云平台API结合,实现对云资源的自动化管理,例如创建云服务器、调整云硬盘大小等。推荐的腾讯云产品是云API网关API Gateway,详情请参考:云API网关API Gateway

总结:Ansible是一种强大的自动化工具,可以用于配置管理、应用部署和任务协调。'when'属性是Ansible中的一个条件属性,用于根据特定条件判断任务的执行与否。通过合理使用Ansible和'when'属性,可以实现更加智能和灵活的自动化操作。腾讯云提供了一系列与Ansible配套的产品,可以帮助用户实现更高效的云计算和自动化管理。

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

相关·内容

Ansible进阶学习之Playbooks(剧本)理解使用

YAML 基本介绍 – YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)递归缩写。...,on,ON,y,Y 表示false值 false,False,FALSE,no,No,NO,off,OFF,n,N Playbooks(剧本) 简介 Playbooks(剧本...牛刀小试 在正式介绍playbook基础组件之前,我们先来写个简单demo体验一下。 我们先写个简单剧本,功能是对主机清单上申明所有受控端进行网络连通性测试。...是不是感觉跟我们用上一篇文章介绍Ad-HOC方式实现效果差不多。 ?...handlers就是为了解决这种问题而生。Handlers也是任务,但它不是上来就执行,只有某个条件满足时才会执行。所以我们去修改apache.yml: ?

1.1K30

如何控制Ansible Playbook执行顺序、运行选定剧本资源

不同动作,实相同功能,但是原理是不同 import 或 include 作为任务角色 Ansible最新版本允许将角色作为任务来包含或导入,而不是使用play中角色部分。...通过这样方式,可以使剧本按照编写顺序执行,而不是先执行角色方式。 优点是可以按照编写顺序运行一组任务、导入或包含一个角色,然后运行更多任务。...如果Ansible 检测到角色中存在语法错误,则中止执行 playbook 。 对于 when 指令行为有所不同。...使用include_role任务时,如果when指令中条件为 false,则 Ansible不解析角色。...由于Ansible通常在多个主机上并行运行每个任务,因此 ansible-playbook 命令输出可能无法反映预期顺序:输出显示是任务完成顺序,而不是执行顺序。

2.4K10

Ansible剧本(playbook)编写

Playbook简介 playbook是ansible用于配置,部署,和管理被控节点剧本。 通过playbook详细描述,执行其中一系列tasks,可以让远端主机达到预期状态。...Playbook使用优势 功能比ansible命令更强大 能很好控制先后执行顺序, 以及依赖关系 语法展现更加直观 ansible命令无法持久使用, playbook 可以持久使用 剧本书写格式要求.../ansible/latest/user_guide/playbooks_tags.html 使用情景:从我们指定任务开始执行,而不是从头到尾执行一遍 - hosts: rsync tasks:...事实是单个主机属性,包括 IP 地址、操作系统、文件系统状态等等。基于事实条件: 只有在操作系统是特定版本时,才能安装特定包。 您可以跳过在具有内部 IP 地址主机上配置防火墙。...无论如何这不是首选连接字符串方式!连接字符串见 ~ 运算符。 {{ 1 + 1 }} 等于 2 -:用第一个数减去第二个数。 {{ 3 – 2 }} 等于 1 /:对两个数做除法。

2K40

如何在Ubuntu 14.04上使用Ansible部署高级PHP应用程序

命令: ansible:运行原始Ansible任务,没有剧本。...- name: Create MySQL DB mysql_db: name=laravel state=present 我们还需要一个具有已知密码有效用户帐户,以允许我们应用程序连接到数据库。...要生成密码,我们将使用makepasswd命令行工具,并要求输入32个字符密码。因为makepasswd在Ubuntu上不是默认,我们还需要将它添加到包列表中。...我们还会告诉Ansible记住命令输出(即密码),以便我们稍后可以在我们剧本中使用它。但是,因为Ansible不知道它是否已经运行了shell命令,所以我们还会在运行该命令时创建一个文件。...*:ALL state=present when: dbpwd.changed ​ handlers: ​ . . . 不要运行剧本了!

10.7K60

如何编写清晰Ansible Playbook(复杂Playbook如何构建)

,那么使用ansible要方便很多,但是上面的剧本没有使用角色,所有的操作都耦合在一起,所以看起来不是特别清晰,可读性差,而且一些可变变量也没有抽离出来。...使用原生 YAML 语法,而不是“折叠”语法,以下示例不是推荐格式: - hosts: node1,node2 tasks: - yum: name=httpd state=present...尽量使用Ansible中包含特殊用途模块,而不是command、shell、raw这样通用模块。使用为特定任务设计模块可以轻松地使 Playbook 具有幂等性,且易于维护。...group_by 模块根据事实动态生成组成员资格,该组成员资格对 playbook 其余部分有效。...,用了一个dufault目录下缺省变量和一个ansible魔法变量,一个使用角色时定义剧本变量。

2.9K10

使用Ansible构建虚拟机模板二

但是,前面代码中简单正则表达式不考虑空格,因此很容易错过其他有效SSH配置指令。考虑所有可能情况和文件排列来设计正则表达式本身就是一门艺术,因此在创建和使用正则表达式时一定要小心谨慎。...: time.example.com roles: - templatentp 最后,我们可以运行剧本并查看结果: 这样,Ansible为你提供了强大工具,不仅可以将整个配置复制或下载到位,还可以操纵现有配置以适应你环境...当它检测到安装了bzip2时,它将返回ok并且不执行进一步操作。然而,如果我们真的想检查一些东西,而不是仅仅执行一个操作,也许作为一个构建后步骤呢?...请注意,当遇到故障情况时,Ansible会停止整个剧本运行,迫使你在继续之前解决问题。 显然,这可能是你想要行为,也可能不是,但是很容易相应地改变故障条件。...如果需要的话,我们可以通过对该任务使用changed_when子句来更改此行为。 通过这种方式,多个Ansible 剧本可以放在一起,不仅可以自定义构建,还可以验证最终结果。

20820

使用 Ansible 来管理你工作站:配置自动化

下面这行也需要进一步解释: changed_when:False 在某个任务中这行阻止了 Ansible 去报告动作改变结果,即使是它本身在系统中导致一个改变。...不同是我们已经改进了我们组织方式,并且能够更有效扩展它。...但是,每个十分钟运行一个 Ansible 作业并不是一个好方式,因为这个将消耗很多 CPU 资源。...当 ansible-pull 执行时候,它将会遍历剧本和任务手册中所有任务,但至少它不会毫无目的运行。...这方法尽管有一点不同寻常,通常,你会有一个包含你机器列表和不同机器所属规则清单文件。然而,ansible-pull 方法,就像在文章中描述,是管理工作站配置非常有效方法。

54210

Ansible管理你OpenStack cloud

通过使用Ansible,一种无代理IT自动化技术,系统管理员可以创建Ansible剧本,提供一致性和减少复杂性。...OpenStack提供了丰富API来管理资源,这导致了许多Ansible模块创建,这些模块可以很容易地适应任何自动化工作流。...而不是一个合适Ansible模块。...在某些情况下,用于任务模块可能不存在,但Ansible足够灵活,允许在开发模块之前调用剧本任意命令。觉得你可以写缺少模块?考虑通过贡献到Ansible项目来创建它。...这只是系统管理员可能需要在他们云中编排两天操作。我和罗杰·洛佩兹将在柏林OpenStack峰会上提供一个动手操作实验室,提供真实场景和相关Ansible剧本来实现自动化。

90200

关于Linux中自动化配置服务和网络接口一些笔记

剧本管理。...为了方便复杂任务(包含大批量任务操作、模板、变量等资源)重复使用,降低playbook剧本编写难度,ansible提出角色概念,所谓角色就是预先定义好一套目录结构。...针对每一个角色,ansible会到固定目录去调取特定数据,使用角色时不指定hosts: 清单主机列表,而是交给调用此角色剧本来指定....所有配置,命令操作,都是在一个指定文件夹下进行Ansible在执行临时命令或者剧本时会扫描当前工作目录,满足要求才会执行,否则会发出警告。...通过变量,我们可以查看系统一些详细信息,剧本信息收集是通过gather_facts=yes自动搜集,临时命令调用setup模块,剧本默认会调用。

2.3K20

学习如何安装Ansible和运行Playbooks

获得与服务器有效连接!...请注意all,您可以mailservers从示例文件中替换它,而不是仅针对这些服务器运行。 您可以大量自定义库存文件,因此如果您有兴趣,请查看相关文档。...重要是要注意,与其他配置工具不同,剧本不描述机器状态,Ansible确定需要自己进行所有更改。但是,剧本应该被设计为幂等,这意味着它们可以不止一次地运行而没有负面影响。...名称行后面是将运行模块(在本例中为服务模块),其他属性提供了更多选项,在这种情况下,指示Ansible使用sudo权限(稍后我们将配置)。...看一下公司自己提供一些Ansible剧本示例。 以下是一些需要探索主题,这些主题在您创建任何复杂剧本时变得非常重要,并且您将在其他人剧本中经常看到。

4.9K10

ansible批量管理软件部署及剧本

如果指定目标目录不存在,系统会自动创建,否则源目录会放到目标目录下面去 2. 如果copy是文件,dest指定名字和源如果不同,并且它不是已经存在目录,相当于copy过去后在重命名; 3....剧本  检查剧本ansible-playbook --syntax-check 剧本名    ----进行剧本配置信息语法检查 ansible-playbook -C 剧本名                ...----模拟剧本执行 ansible核心功能 pyYAML  -----用于ansible编写剧本所使用语言格式 paramiko ---远程连接与数据传输 Jinja2        -----用于编写...多个项使用同样缩进级别作为同一个列表一部分。 核心规则:有效利用空格进行剧本编写,剧本编写是不支持tab。...-模拟剧本执行 剧本实例 rsync一键部署剧本 - name: 后面是可以加入提示信息 [root@m01 ansible-playbook]# vim rsync.yml - hosts: 172.16.1.21

2.9K70

AnsiblePlaybook基操

: 指定某条任务执行,用于选择运行playbook中部分代码. ansible-playbook -C hello.yaml - C 选项检查剧本是否成功,并不实际执行 1.0.1 忽略错误信息 tasks...: - name: "create new file" hostname: name=www{{http_port}}.baidu.com 定义公共变量 # 针对test主机组当中所有主机都有效...When语法 条件测试:如果需要根据变量、facts或此前任务执行结果来做为某task执行与否前提时要用到条件测试, 通过when语句实现,在task中使用,jinja2语法格式 在task后添加...when子句即可使用条件测试;when语句支持Jinja2表达式语法 当ansible_distribution=CentOS时候才会去执行template --- - hosts: test...if i.name is defind %} name {{ i.name }} {% endif %} } {%endfor%}a 6.0 Role角色 将目录进行拆分,变量放在变量文件夹,剧本放在剧本文件夹

86510

如何在Ubuntu 14.04上使用Ansible部署基本PHP应用程序

默认情况下,Ansible使用位于/etc/ansible/hosts其中hosts文件,该文件包含它正在管理所有服务器。虽然该文件适用于某些用例,但它是全局,这也不是我们想要。...同样,它们也在剧本末尾运行,因此多个任务可以调用相同处理程序并且它只运行一次。...与git命令一样,我们也希望以www-data用户身份运行此命令以确保权限有效。...注意: Ansible composer模块某些版本似乎存在错误,它可能会输出OK而不是Changed,因为它忽略了即使没有安装依赖项也会执行脚本情况。 打开php.yml文件进行编辑。...添加when选项以检查cloned变量以查看它是否已更改。

5.9K00

使用 Ansible 工具批量操作虚拟机集群,自动化安装 Docker

update sudo apt-get install ansible ansible基本用法 使用 ansible-playbook ansible-playbook 也称之为剧本,是 ansible...安装 docker 我写了一个使用 ansible 自动化安装 docker 剧本(项目地址:https://github.com/Hopetree/ansible-demos/tree/master...这个剧本事情包括判断 docker 是否可以用,然后包括安装 docker,添加用户到 docker 组,安装pip 和 docker-compose 等。...使用 register 可以用来把一个步骤执行结果赋值到一个变量中,而 when 就可以用来判断一个变量结果,所以通常可以把这两个模块结合起来使用。...result ignore_errors: True - name: include tasks yaml if not docker include_tasks: install.yml when

72520

ansible基础应用

被红帽收购,故备收入epel源 (4)支持自定义模块 (5)支持playbook(剧本) 三、ansible组成+部署 部署:yum -y install ansible 配置文件:/etc/ansible...查看 (6)file模块:设定文件属性(属组,属主) 例如:ansible all -m file -a "src=/tmp/fstab path=/tmp/fstab.link state=link..." 修改属性:path= ,owner= ,mode= ,group= 创建目录:ansible all -m file -a "path=/tmp/tmpdir state=directory " (...ansible任务配置文件被称为playbook,就是剧本,每个剧本里面包含一系列任务,每个任务在ansible中又被称为“戏剧”(play)。...(7)条件判断,when语句,在task中使用,支持jinja2语法格式 (8)循环,迭代,我一下装好几个包 作者:yezi 来源:http://www.178linux.com/65855

1.3K71
领券