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

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。

最佳答案

直接从额外的变量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"
}

关于variables - 使用Extra-var在Ansible中调用定义的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55182281/

10-10 23:55