Amazon web services 如果docker与amazon linux extras的安装未成功,请停止Ansible playbook

Amazon web services 如果docker与amazon linux extras的安装未成功,请停止Ansible playbook,amazon-web-services,docker,amazon-ec2,ansible,Amazon Web Services,Docker,Amazon Ec2,Ansible,如果下面的“安装docker”任务不成功,需要对下面的代码进行哪些特定更改,以使ansible playbook失败? 目前,由于下面的“安装docker”任务,playbook报告“已更改””,因此,无论docker安装是否成功,playbook都将继续执行后续任务 --- - name: Install some stuff. hosts: firstgroup, secondgroup remote_user: someuser become: true become_me

如果下面的“
安装docker
”任务不成功,需要对下面的代码进行哪些特定更改,以使ansible playbook失败?

目前,由于下面的“
安装docker
”任务,playbook报告“
已更改”
”,因此,无论docker安装是否成功,playbook都将继续执行后续任务

---
- name: Install some stuff.
  hosts: firstgroup, secondgroup
  remote_user: someuser
  become: true
  become_method: sudo
  become_user: root

  tasks:  

     - name: Install docker 
       command: amazon-linux-extras install -y docker

如您所见,这是在AmazonLinux2中运行的,安装是使用
AmazonLinuxExtras
完成的,
命令
模块将始终执行。这是因为确定是否需要执行任意命令(如果不是不可能的话)是一个极其困难的问题,如果它以前运行过的话


您可以做的是处理命令的输出,以确定应用程序是否已安装。这可以使用。

您可以尝试以下代码:

---
- name: Install some stuff.
  hosts: firstgroup, secondgroup
  remote_user: someuser
  become: yes

  tasks:  

     - name: Install docker 
       command: amazon-linux-extras install -y docker
       register: result
       failed_when: result.rc != 0 
您可以添加register选项并获取该命令的返回代码。如果它为零,那么它将继续,否则它将失败。
关于用户的其他事情,只需输入“Been:yes”即可作为root运行

OP会询问OP中要更改的特定代码。供搜索引擎长期查找此代码并决定是否+1答案的其他人参考。