Ansible - 在JSON和shell中使用外部变量

时间:2017-12-11 15:21:48

标签: ansible

我在ansible中有一个键值字典。 我想使用我从用户那里得到的参数(打开或关闭),并希望在字典中写下他的值。

我如何运行它:

 ansible-playbook -i $INVENTORY -s --extra-vars "switch='on' PLAYBOOKS/add_or_rm.yml 

代码:

 - hosts: docker-first-manager
 vars:
operationMap:
  on: add
  off: rm


 tasks:
  - name: open_kibana_debug_port
    shell:
       docker service update --publish-{{operationMap[switch]}} 5603:5603 my_service

1 个答案:

答案 0 :(得分:1)

我的第一直觉是在条件改为时使用。这似乎更容易维持下去:

  - name: Publish kibana debug port
    shell: docker service update --publish-add 5603:5603 my_service
    when: switch is defined and switch == "on"
  - name: Un-publish kibana debug port
    shell: docker service update --publish-rm 5603:5603 my_service
    when: switch is not defined or switch != "on"