如何使用Ansible检查docker compose是否已安装?
我正在做一个项目,我必须使用Ansible运行docker compose 所以,如何找到docker compose是否已经存在于主机中,如果没有,我将执行条件检查,然后首先使用Ansible在主机上安装docker compose,然后运行docker compose 那么,如何找到主机环境中已经存在的docker compose呢?您可以对此进行研究,这与您正在寻找的内容类似如何使用Ansible检查docker compose是否已安装?,docker,docker-compose,ansible,Docker,Docker Compose,Ansible,我正在做一个项目,我必须使用Ansible运行docker compose 所以,如何找到docker compose是否已经存在于主机中,如果没有,我将执行条件检查,然后首先使用Ansible在主机上安装docker compose,然后运行docker compose 那么,如何找到主机环境中已经存在的docker compose呢?您可以对此进行研究,这与您正在寻找的内容类似 - name: Check docker-compose installation play hosts: l
- name: Check docker-compose installation play
hosts: localhost
tasks:
- name: Check is docer-compose installed
shell: command -v docker-compose >/dev/null 2>&1
register: is_docker_compose_install
ignore_errors: yes
- debug: msg="{{ is_docker_compose_install.rc }}" # it returns rc 0 if installed or 127 if not
- debug: var=is_docker_compose_install
是docker\u compose\u安装。如果安装,rc
将返回0
输出
ok: [localhost] => {
"msg": "0"
}
因此,如果您只想在安装了compose的情况下运行特定命令,那么下面的命令将起作用
- name: Check docker-compose installation play
hosts: localhost
tasks:
- name: Check is docer-compose installed
shell: command -v docker-compose >/dev/null 2>&1
register: is_docker_compose_install
ignore_errors: yes
- debug: msg="{{ is_docker_compose_install.rc }}" # it returns rc 1
- debug: var=is_docker_compose_install
- name: Run only if compose is installed
shell: command docker-compose --version
register: print_version
ignore_errors: yes
when: is_docker_compose_install.rc == 0
- debug: msg="{{ print_version.stdout }}"
输出(如果已安装)
ok: [localhost] => {
"msg": "docker-compose version 1.25.5, build unknown"
}
你可以看看这个,这与你正在寻找的相似
- name: Check docker-compose installation play
hosts: localhost
tasks:
- name: Check is docer-compose installed
shell: command -v docker-compose >/dev/null 2>&1
register: is_docker_compose_install
ignore_errors: yes
- debug: msg="{{ is_docker_compose_install.rc }}" # it returns rc 0 if installed or 127 if not
- debug: var=is_docker_compose_install
是docker\u compose\u安装。如果安装,rc
将返回0
输出
ok: [localhost] => {
"msg": "0"
}
因此,如果您只想在安装了compose的情况下运行特定命令,那么下面的命令将起作用
- name: Check docker-compose installation play
hosts: localhost
tasks:
- name: Check is docer-compose installed
shell: command -v docker-compose >/dev/null 2>&1
register: is_docker_compose_install
ignore_errors: yes
- debug: msg="{{ is_docker_compose_install.rc }}" # it returns rc 1
- debug: var=is_docker_compose_install
- name: Run only if compose is installed
shell: command docker-compose --version
register: print_version
ignore_errors: yes
when: is_docker_compose_install.rc == 0
- debug: msg="{{ print_version.stdout }}"
输出(如果已安装)
ok: [localhost] => {
"msg": "docker-compose version 1.25.5, build unknown"
}
我想就你的问题进一步阐述一下: 所以,如何找到docker compose是否已经存在于主机中,如果没有,我将执行条件检查,然后首先使用Ansible在主机上安装docker compose,然后运行docker compose 你不需要做这些 只需创建一个安装docker compose的任务(我假设使用该模块),然后使用docker compose命令创建下一个任务 大多数Ansible模块(除了明显的例外)都是幂等的,这意味着Ansible将代表您检查目标计算机上是否已经存在docker compose,并在未安装的情况下安装它
简单地说,安装docker compose无需验证或创建任何条件,只需使用相应的Ansible模块,Ansible就会为您带来奇迹。我想进一步阐述您的问题: 所以,如何找到docker compose是否已经存在于主机中,如果没有,我将执行条件检查,然后首先使用Ansible在主机上安装docker compose,然后运行docker compose 你不需要做这些 只需创建一个安装docker compose的任务(我假设使用该模块),然后使用docker compose命令创建下一个任务 大多数Ansible模块(除了明显的例外)都是幂等的,这意味着Ansible将代表您检查目标计算机上是否已经存在docker compose,并在未安装的情况下安装它 简单地说,安装docker compose不需要验证或创建任何条件,只需使用相应的Ansible模块,Ansible就会为您带来奇迹