这可能吗?我有一本类似的剧本:
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/