【发布时间】:2020-06-23 05:27:21
【问题描述】:
我有一些运行 docker 容器的 ansible playbook,如下所示:
- name: Container present
docker_container:
name: myapp
state: started
image: myapp
restart_policy: always
ports:
- "7070:7070"
command: ["java","-Dhttp.proxyHost=1.2.3.1", "-Dhttp.proxyPort=3128", '-Dhttp.nonProxyHosts="localhost|127.0.0.1|10.250.*.*"',"-jar", "/opt/myapp/app.jar", "--spring.profiles.active=docker,swagger"]
我想根据操作系统类型更改命令。例如如果 Centos - 我需要这个命令:
command: ["java","-jar", "/opt/myapp/app.jar", "--spring.profiles.active=docker,swagger"]
如果是 Ubuntu 或 Debian 这个命令:
command: ["java","-Dhttp.proxyHost=1.2.3.1", "-Dhttp.proxyPort=3128", '-Dhttp.nonProxyHosts="localhost|127.0.0.1|10.250.*.*"',"-jar", "/opt/myapp/app.jar", "--spring.profiles.active=docker,swagger"]
我想我必须用 set_fact 来做,但是怎么做——我不知道。可能是这样的:
- set_fact:
command: '["java","-jar", "/opt/myapp/app.jar", "--spring.profiles.active=docker,swagger"]'
when: ansible_distribution == 'CentOS'
但我不确定它不会导致一些错误。
【问题讨论】:
-
您遇到的错误是什么?