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

如何在Ansible中执行Play 1成功才执行Play 2

在Ansible中,可以使用条件语句来实现在Play 1成功执行后才执行Play 2。具体步骤如下:

  1. 创建一个主机清单文件,列出需要执行Playbook的目标主机。例如,创建一个名为hosts.ini的文件,并在其中指定目标主机的IP地址或主机名。
  2. 创建一个名为playbook.yml的Playbook文件,并在其中定义两个Play。
  3. 创建一个名为playbook.yml的Playbook文件,并在其中定义两个Play。
  4. 在上述Playbook中,我们定义了两个Play。Play 1执行任务1,Play 2执行任务2。在Play 2中,使用了条件语句when来判断是否执行该Play。条件表达式'Play 1' in play_names and play_ok表示只有当Play 1成功执行且没有错误时,才执行Play 2。
  5. 创建一个名为ansible.cfg的配置文件,并在其中指定主机清单文件的路径。
  6. 创建一个名为ansible.cfg的配置文件,并在其中指定主机清单文件的路径。
  7. 在上述配置文件中,我们指定了主机清单文件的路径为hosts.ini
  8. 执行Playbook。
  9. 打开终端,进入到Playbook所在的目录,执行以下命令:
  10. 打开终端,进入到Playbook所在的目录,执行以下命令:
  11. Ansible将会按照Playbook中定义的顺序执行Play。只有当Play 1成功执行且没有错误时,才会执行Play 2。

Ansible是一种自动化运维工具,它可以帮助管理和配置大规模的计算机系统。通过使用Ansible,您可以实现基础设施即代码(Infrastructure as Code),提高部署和管理的效率。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云弹性伸缩(AS)、腾讯云负载均衡(CLB)、腾讯云数据库(CDB)、腾讯云对象存储(COS)等。您可以访问腾讯云官网了解更多产品信息:腾讯云

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

相关·内容

Ansible概要

使用yaml风格定义变量 变量作用范围为global,play,host 可以在task中使用register将输出赋值给变量 如何在清单添加变量?...group2 匹配在group1且不在group2的主机 group1:&group2 匹配既在group1又在group2的主机 如何如何执行临时命令?...Ansible playbook由一个或者多个play组成,并按照从上到下的顺序执行,每个play至少包含两个部分: 用pattern来指定被管理的机器。 要执行的任务(task)。...定义在roles的role按顺序执行play定义的tasks。 role和task notify的handlers。 play定义的post_tasks。...使用failed_when和changed_when来定义task是成功还是失败。 使用any_errors_fatal: true在第一个失败的任务后中断所有任务和play执行

20110
  • pythonAnsible模块的Playbook的具体使用

    Ansible,一个Play必须包含以下两项: 1. hosts:需要对哪些远程服务器执行操作 2. tasks:需要在这些服务器上执行的任务列表 例如,对web服务器进行部署时,我们仅仅使用了hosts...在Ansible,task有两种定义形式: 1. action:module options 2. module:options 前一种形式是Ansible的旧版本语法,第2种形式是新版本的语法,直接使用模块的名称作为键...我们将介绍Playbook提供的不同功能,以Playbook的功能为线索,介绍Play与task可以使用的选项。 (1)权限 在Ansible,默认使用当前用户连接远程服务器执行操作。...在默认情况的任务执行策略( linear)Ansible首先执行task1,并且等到所有服务器执行完task1以后再开始执行task2,以此类推。...ansible</h1 <p 如果你能看到这个页面,说明ansible自动部署nginx成功了!

    4.1K10

    Ansible常用功能说明

    这是默认同步模式,也就是说在未执行完毕时,ansible是占用当前shell的,任务执行完后,释放shell了可以输入其他命令做其他动作。...即此时ansible是不会管各个节点任务执行情况的,不管执行成功或失败。...async : 5 #poll表示检查step操作结果的间隔时长,设置为0表示 不用等待结果,继续做下面的操作,我们可以在下面的step来验证这个命令是否成功执行....poll : 2 执行下看看是否成功: [root@hostname ~]# ansible-playbook /etc/ansible/test.yml PLAY [test_server] **...的任务(就是上面配置的shell动作)操作时间(10s)超过了最大等待时长(5s) 2)如果将上面的async异步等待时间设置为大于10s,比如12s,则执行成功了!

    8.1K43

    Ansible

    [root@web1 ~]# exit [root@ansible-server ~]# ssh web2 [root@web2 ~]# exit [root@ansible-server ~]# ssh...命令返回值的颜色表示: 绿色:代表对远程节点不进行相应修改,没有发生改变,命令执行成功了 黄色:代表对远程节点进行了相应的修改,命令执行成功了 红色:代表你的命令执行失败或者是有异常,反正就是错误了...:此参数表示文件如果不存在于远程主机,则不执行对应命令,如果存在 ,执行 command模块示例: #chdir参数表示执行命令之前,会先进入到指定的目录 [root@ansible-server...,会先进入到指定的目录 creates: 此参数表示文件如果存在于远程主机,则不执行对应命令,如果不存在,执行 removes:此参数表示文件如果不存在于远程主机,则不执行对应命令,如果存在 ,...此参数表示文件如果存在于远程主机,则不执行对应命令,如果不存在,执行命令 removes:此参数表示文件如果不存在于远程主机,则不执行对应命令,如果存在 ,执行命令 提示: shell模块chdir

    2.8K30

    Ansible Playbook 初识

    ] 9 172.16.1.18[1:2]:22 10 11 # 方式2:别名 + 主机 + 端口 + 密码 12 [webservers] 13 web01 ansible_ssh_host=172.16.1.183...:定义主机角色「比作:剧本的角色」 2、task:定义具体执行任务「比作:剧本的角色要做什么事儿」 3、playbook:由一个或多个play组成,一个 play 可以包含多个 task 任务 简单理解...脚本参数说明: host:指定主机 remote_user:要使用什么用户操作 tasks:具体执行什么任务 1 [yun@ansi-manager object01]$ pwd 2 /app/ansible_info.../hosts_key --syntax-check test_httpd.yml 4 5 playbook: test_httpd.yml 预执行 如果存在依赖关系【:软件安装,配置,启动】,那么可能预执行报错.../hosts_key --syntax-check test_nfs.yml 4 5 playbook: test_nfs.yml 预执行 如果存在依赖关系【:软件安装,配置,启动】,那么可能预执行报错

    54421

    如何Ansible编写一个Playbook

    1、playbooks介绍 playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。...2、playbook基础组件 1.Hosts:运行执行任务(task)的目标主机 2.remote_user:在远程主机上执行任务的用户 3.tasks:任务列表 4.handlers:任务,与tasks...YAML对缩进使用了多少空格没有严格的要求,但是有两个基本规则: 1、层次机构相同级别的数据元素(例如相同列表的项)必须具有相同的缩进。 2、子项必须比其父项缩进的更多。...一般来说,Ansible playbook的任务是幂等(idempotent)的,可以安全的多次执行playbook。如果目标托管机已经处于正确的状态,则不应进行任何修改。...ansible-playbook命令提供--syntax-check选项,可用于验证playbook文件的语法。下例演示了一个playbook成功通过语法验证。

    2.9K20

    何在Ubuntu 18.04上测试与分子的可靠角色

    包括将非root用户添加到docker组。 Python 3并在您的服务器上安装和配置venv。请遵循如何在Ubuntu 18.04服务器上安装Python 3和设置编程环境以获得指导。...熟悉Ansible剧本。 第1步 - 准备环境 如果您已遵循准备,则应安装并正确配置Python 3 ,venv和Docker。...既然您已经成功配置了测试环境,那么让我们继续编写执行角色后Molecule将针对您的容器运行的测试用例。...该掉毛操作执行yamllint,flake8以及ansible-lint: yamllint:此linter在角色目录存在的所有YAML文件上执行。...如果所有测试成功通过,您将看到成功消息,Molecule将继续执行下一步: Output... --> Scenario: 'default' --> Action: 'verify' --> Executing

    2.6K84

    Ansible Playbook实战

    绿色:表示执行成功 2.Playbook变量使用 Playbook定义变量有三种方式 1) playbook的yaml文件定义变量赋值 2) --extra-vars执行参数赋给变量 3) 在文件定义变量...1、playbook的yaml文件定义变量赋值 #playbook定义 [root@manager ~]# cat f2.yml - hosts: all vars: #定义变量 file_name...,在/tmp目录创建bgx_yaml_vars文件 [root@manager ~]# ansible-playbook f1.yml 2、--extra-vars执行参数赋给变量 #playbook引用变量...,在/tmp目录创建bgx_filename文件 如果定义的变量出现重复,且造成冲突,优先级如下: 1.extra-vars外置传参的优先级最高 [所有执行的主机都生效] 2.定义在yml文件的优先级其次...[所有执行的主机都生效] 3.hosts文件定义的变量优先级最低 [当前主机组定义会生效] 3.Playbook变量注册 1) 注册变量: register关键字可以存储指定命令的输出结果到一个自定义的变量

    2.7K10

    13-异步与并发

    是一台主机执行完一个剧本后,再换下一台主机接着执行,还是多个主机同时执行完剧本的一个任务后,再接着往下执行?...@workstation ~]$ time ansible-playbook forck1.yml #1.首先是所有主机都执行了剧本的command任务 TASK [command] changed...在ansible命令行中有一个-f 选项forck->指定并发数,在ansible.cfg配置文件也有一个forks选项,默认就是5 再次实验 现在指定3个主机同时执行看下结果 time ansible-playbook...forck1.yml -f 3 …… real 0m9.359s user 0m1.246s sys 0m0.697s 3台主机一起执行,第一批3台主机执行5秒,第二排2台主机执行5秒,时间±10秒...** poll: **ansible检查这个任务是否完成的频率,0就是不检查直接成功。** 注意,async和poll是要一起用的!!

    57160

    ansible超详细使用指南

    2描述了ansible执行过程,执行了两个task和一个handler,先是使用了一个apt模块在web1,web2,web3上面执行了安装nginx的任务,再是用template模块拷贝了配置文件。...拷贝python脚本到web1,web2,web3。 3. 分别在web1,web2,web3上执行该脚本。 4. 等待脚本在所有服务器上执行完毕。 5. 接着执行下一个task。...注意notify是严格按照它在play定义的顺序执行的,而不是notify调用的顺序执行的。...比如下面的playbook,尽管先notify的是 handler test2 ,实际执行时时按照playhandlers定义的顺序,也就是先执行 handler test1。 #!...7.5 关于异步 ansible的1.7版本开始增加了异步参数 async,也就是说执行一个时间很长的任务时,可以不用等待它结束,而是直接先执行后面的任务,在后续的play定时检查任务执行结果即可。

    2.6K31

    辨析 role、import_role、include_role

    import_role: name: kubelet 我们在执行发现,task的名字并不会有这个task: $ ansible-playbook playbook.yml PLAY...] 经过验证,当我们执行这个playbook,使用--tags t1或--tags t2,t3时,两个task都会被执行 $ ansible-playbook --tags t1 playbook.yml...所谓动态引用,就是在执行阶段,知道整个playbook要执行哪些任务,具体的表现如下: 1、引用的role的名字允许使用变量 2、include_role本身会被当作是一个task 比如如下,在include_role...name: kubelet 我们在执行发现,task的名字并不会有这个task: $ ansible-playbook playbook.yml PLAY [all] **************...] 经过验证,当我们执行这个playbook,使用--tags t1时,只会执行task1这个task $ ansible-playbook --tags t1 playbook.yml PLAY

    50620

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券