Ansible 库存目录中的所有变量不适用
我正在使用一个角色(zaxos.lvm ansible role)来管理一些主机上的lvm。最初,我在host_vars/server.yaml下为lvm提供了可用的VAR 这是工作布局Ansible 库存目录中的所有变量不适用,ansible,ansible-inventory,Ansible,Ansible Inventory,我正在使用一个角色(zaxos.lvm ansible role)来管理一些主机上的lvm。最初,我在host_vars/server.yaml下为lvm提供了可用的VAR 这是工作布局 ├── filter_plugins ├── group_vars ├── host_vars │ ├── server1.yaml │ └── server2.yaml ├── inventories │ ├── preprod │ ├── preprod.yml │ ├── produc
├── filter_plugins
├── group_vars
├── host_vars
│ ├── server1.yaml
│ └── server2.yaml
├── inventories
│ ├── preprod
│ ├── preprod.yml
│ ├── production
│ │ ├── group_vars
│ │ └── host_vars
│ ├── production.yaml
│ ├── staging
│ │ ├── group_vars
│ │ └── host_vars
│ └── staging.yml
├── library
├── main.yaml
├── module_utils
└── roles
└── zaxos.lvm-ansible-role
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── LICENSE
├── meta
│ └── main.yml
├── README.md
├── tasks
│ ├── create-lvm.yml
│ ├── main.yml
│ ├── mount-lvm.yml
│ ├── remove-lvm.yml
│ └── unmount-lvm.yml
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
对于我的环境来说,将主机变量放在Inventory目录下更有意义,根据Ansible doc,Inventory目录也受支持(可选目录布局)
但是,当我更改到这个布局时,变量没有初始化,主机上的LVM也没有更改
├── filter_plugins
├── inventories
│ ├── preprod
│ │ ├── group_vars
│ │ └── host_vars
│ │ ├── server1.yaml
│ │ └── server2.yaml
│ ├── preprod.yml
│ ├── production
│ │ ├── group_vars
│ │ └── host_vars
│ ├── production.yaml
│ ├── staging
│ │ ├── group_vars
│ │ └── host_vars
│ └── staging.yml
├── library
├── main.yaml
├── module_utils
└── roles
└── zaxos.lvm-ansible-role
├── defaults
│ └── main.yml
├── handlers
│ └── main.yml
├── LICENSE
├── meta
│ └── main.yml
├── README.md
├── tasks
│ ├── create-lvm.yml
│ ├── main.yml
│ ├── mount-lvm.yml
│ ├── remove-lvm.yml
│ └── unmount-lvm.yml
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
你知道为什么这种方法不起作用吗?你的
主机变量
目录必须位于ansible发现的目录下
通过上面的文件树,我猜您是在用ansible playbook-I inventory/prepod.yml yourplaybook.yml
启动您的playbook。在此上下文中,ansible发现inventory\u dir
为inventory
解决方案是将您的库存文件移动到您环境的每个目录中,例如prepod=>mv inventures/prepod.yml inventures/prepod/
然后,您可以使用ansible playbook-i inventory/prepod/prepod.yml yourplaybook.yml
启动您的playbook,它应该可以按照您的预期工作