如果下面的"**Install docker
**“任务不成功,
需要对下面的代码进行哪些特定的更改,以便ansible攻略失败?
目前,剧本将"changed
“报告为下面的"Install docker
”任务的结果,因此无论docker的安装是否成功,剧本都会继续执行后续任务。
---
- 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
如您所见,这是在Amazon Linux2中运行的,并且安装是使用amazon-linux-extras
完成的。
发布于 2019-05-31 12:30:50
您可以尝试以下代码:
---
- 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
您可以添加注册选项并获取该命令的返回代码。如果它是零,那么它将继续,否则它将失败。关于用户的其他事情,只需输入“成为:是”就足以作为根用户运行
发布于 2019-05-31 07:15:06
这是因为,如果一个任意命令以前已经运行过,那么确定它是否需要执行是一个极其困难(如果不是不可能)的问题。
您可以做的是处理命令的输出,以确定应用程序是否已安装。这可以使用registers来完成。
https://stackoverflow.com/questions/56386539
复制相似问题