Ansible Playbook运行自定义组
我是使用ansible的新手 我试图执行一个自定义剧本,它执行从iso挂载的角色,为此我有以下结构Ansible Playbook运行自定义组,ansible,ansible-inventory,Ansible,Ansible Inventory,我是使用ansible的新手 我试图执行一个自定义剧本,它执行从iso挂载的角色,为此我有以下结构 - /iso/ - /AnsibleFiles/ - /roles/ - .... - .... - myPlaybook.yml - /myInventory/ - group_vars/ - myInventoryFile myPlaybook.yml:它有我的角色所在的位置,以及必须执行的角色 myInventoryFile:它包含执
- /iso/
- /AnsibleFiles/
- /roles/
- ....
- ....
- myPlaybook.yml
- /myInventory/
- group_vars/
- myInventoryFile
- myPlaybook.yml:它有我的角色所在的位置,以及必须执行的角色
- myInventoryFile:它包含执行角色所需的变量
ansible-playbook myPlaybook.yml -i myInventory/group_vars/myInventoryFile
但是它不起作用。。ansible不阅读我的VAR,返回此消息:
The conditional check '{{ my_Var }}' failed. The error was: error while evaluating conditional ({{ my_Var }}): 'my_Var ' is undefined\n\nThe error appears to have been in '/home/user/myPlaybook.yml
myInventoryFile
将变量定义如下:my\u Var:true
myPlaybook.yml
必须对该变量求值才能知道要执行哪些角色
when: "{{my_Var}}"
清单文件:
ansible playbook myPlaybook.yml-i/etc/ansible/inventory/myInventory.yml
组变量文件夹/文件:
/etc/ansible/inventory/group\u vars/myInventory.yml
//etc/ansible/inventory/group\u vars/myInventory/something.yml
我做了以下工作
我创建了以下目录结构:
.
+ AnsibleFiles
| + roles
| + testmyvar
| + tasks
| + main.yml
+ myInventory
| + localhost
+ myPlaybook.yml
AnsibleFiles/roles/testmyvar/tasks/main.yml的内容:
---
- name: Checking value of my_Var
debug: var=my_Var
...
myInventory/localhost的内容:
localhost my_Var=yuck
myPlaybook.yml的内容
---
- hosts: localhost
roles:
- AnsibleFiles/roles/testmyvar
...
当我运行以下命令时,我得到以下信息:
me$ ansible-playbook -i ./myInventory/localhost ./myPlaybook.yml
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [AnsibleFiles/roles/testmyvar : Checking value of my_Var] *****************
ok: [localhost] => {
"my_Var": "yuck"
}
PLAY RECAP *********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0
我不认为您可以拥有一个group_vars目录并在命令行上使用-I指定它。据我所知,你必须有一个库存文件。这意味着所有内容都必须在该清单文件中,包括vars定义
希望这能为如何更新Ansible代码提供一些指导。Ty!我的清单文件“localhost”中没有我的值