将正确的变量传递给任务,取决于Ansible中的其他变量

将正确的变量传递给任务,取决于Ansible中的其他变量,ansible,Ansible,我通过以下方式将jenkinsfile中服务器的IP传递到playbook: withEnv(["ENV_SERVER=192.168.100.70"]) { sh "ansible-playbook mbo-v2.yml --limit 127.0.0.1 -u deploy" 然后,我需要将唯一后缀传递给filename,具体取决于ENV_服务器变量的值: - name: copy parameters shell: ssh deploy

我通过以下方式将jenkinsfile中服务器的IP传递到playbook:

withEnv(["ENV_SERVER=192.168.100.70"]) {
    sh "ansible-playbook mbo-v2.yml --limit 127.0.0.1 -u deploy"
然后,我需要将唯一后缀传递给filename,具体取决于ENV_服务器变量的值:

- name: copy parameters
  shell: ssh deploy@{{ ENV_SERVER }} sudo cp -f /{{ params_APP_PATH }}/{{ params_NGINX_VHOST }}/app/config/parameters.yml.{{ params_UML_SUFFIX }}.dist /{{ params_APP_PATH }}/{{ params_NGINX_VHOST }}/app/config/parameters.yml
  become: true
  become_user: deploy
如何定义多个“when”参数来传递正确的params_UML_后缀变量?例如:

 if ENV_SERVER == '192.168.100.70' then params_UML_SUFFIX == 'gib-production'
 if ENV_SERVER == '192.168.110.80' then params_UML_SUFFIX == 'lux-production'
 if ENV_SERVER == '192.168.120.90' then params_UML_SUFFIX == 'ara-production'

创建字典,例如

params_UML_后缀:
192.168.100.70:gib生产
192.168.110.80:勒克斯产量
192.168.120.90:ara生产
并在运行字符串中使用它,例如

-名称:复制参数
shell:ssh。。。parameters.yml.{params_UML_后缀[ENV_SERVER]}.dist。。。
变成:真的
成为用户:部署