Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible Playbook运行自定义组_Ansible_Ansible Inventory - Fatal编程技术网

Ansible Playbook运行自定义组

Ansible Playbook运行自定义组,ansible,ansible-inventory,Ansible,Ansible Inventory,我是使用ansible的新手 我试图执行一个自定义剧本,它执行从iso挂载的角色,为此我有以下结构 - /iso/ - /AnsibleFiles/ - /roles/ - .... - .... - myPlaybook.yml - /myInventory/ - group_vars/ - myInventoryFile myPlaybook.yml:它有我的角色所在的位置,以及必须执行的角色 myInventoryFile:它包含执

我是使用ansible的新手

我试图执行一个自定义剧本,它执行从iso挂载的角色,为此我有以下结构

- /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”中没有我的值