使用Extra-var在Ansible中调用定义的变量

时间:2019-03-15 12:07:12

标签: variables ansible

这可能吗?我有一本类似的剧本:

vars:     BDNAME:“”

  - name: Add a tenant using a JSON string
     aci_bd:
      tenant: "common"
      bd: "{{ BDNAME }}"
      vrf: "PIGGE"
      hostname: '1.1.1.1' 
      username: "x"
      password: "x"
      use_ssl: yes
      validate_certs: false

如果我在命令行中提供了额外的变量,它将起作用:

ansible-playbook apic.yml -i server.yml --extra-vars BDNAME ='pooh'

然后BDNAME得到值pooh。 但是有什么方法可以将小熊维尼定义为变量。因此,如果我像以前那样运行剧本,BDNAME将获得该变量的值。

类似   vars:     BDNAME:“”     POOH:尼瑟斯

然后BDNAME应该是nisse。

1 个答案:

答案 0 :(得分:1)

直接从额外的变量POOH中定义剧本中的BDNAME。那应该做你想要的。但是使用POOH代替BDNAME会更容易。

以下是示例剧本:

---
- hosts: localhost
  vars:
    BDNAME: "{{ POOH }}"
  tasks:
    - name: print BDNAME
      debug:
        msg: "{{ BDNAME }}"

如果您通过以下方式调用它:

ansible-playbook playbook.yml  -e '{"POOH": "Oliver"}'

您将看到:

TASK [print BDNAME] **********************************************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "changed": false, 
    "msg": "Oliver"
}