如何更改group_vars和host_vars的路径?

tar*_*rky 12 ansible

我们可以通过修改roles_pathin 来改变角色的路径ansible.cfg.但该文件似乎没有提及任何改变路径group_varshost_vars.

我该如何改变这些路径?

我将与ansible相关的文件与rails app repsitory集成.我想在单个目录下收集角色和vars目录,但是将hosts文件和ansible.cfg保留在顶层目录中,这样顶层目录很容易看到,我仍然可以ansible-playbook在顶层目录中运行而无需移动到深层目录.

提前致谢.

Pro*_*e85 16

你不能改变的路径host_vars也不group_vars.

那些路径总是相对于你的hostfile.您可以在ansible配置中设置标准主机文件:

hostfile = /path/to/hostfile/hostfile.ini
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您的默认值host_vars可以在

/path/to/hostfile/host_vars/
Run Code Online (Sandbox Code Playgroud)

您可以使用多个主机文件,假设您有:

/path/to/your/project/inventory/inventory.ini
Run Code Online (Sandbox Code Playgroud)

host_varsat

/path/to/your/project/inventory/host_vars/
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以使用以下任何地方调用ansible:

ansible -i /path/to/your/project/inventory/inventory.ini my_playbook.yml
Run Code Online (Sandbox Code Playgroud)

请记住:host_vars并且group_vars与您有关inventory (hostfile),因此您可以更改您的inventory位置并将其放在host_vars下面.

  • 另一个位置(优先于清单文件旁边的host_vars/group_vars)与playbook本身位于同一目录中.令人遗憾的是,这个位置也不可配置,因为它有效地阻止了你为playbook文件提供了正确的目录树结构. (8认同)
  • 发现不一致:“ansible-playbook 命令默认在当前工作目录中查找这些目录。其他 Ansible 命令(例如 ansible、a​​nsible-console 等)只会在清单中查找 group_vars/ 和 host_vars/目录。” 我认为当你写“路径总是相对于你的主机文件”时,这个答案会产生误导。(或者官方文档有误)来源:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html (2认同)