使用动态库存的Ansible多级部署

使用动态库存的Ansible多级部署,ansible,ansible-inventory,Ansible,Ansible Inventory,我正在使用ansible的AWS动态清单脚本(如上所述),根据EC2实例的标记提取它们的子集。我想建立一个多级环境,在那里我可以使用这个动态清单脚本在DEV或PRD上运行我的剧本 我已将项目目录设置为: ansible.cfg inventories/ -- dev/ -- ec2.ini -- group_vars/ -- host_vars -- inventory -- prd/ -- ec2.ini -- group_vars/

我正在使用ansible的AWS动态清单脚本(如上所述),根据EC2实例的标记提取它们的子集。我想建立一个多级环境,在那里我可以使用这个动态清单脚本在DEV或PRD上运行我的剧本

我已将项目目录设置为:

ansible.cfg
inventories/
  -- dev/
    -- ec2.ini
    -- group_vars/
    -- host_vars
    -- inventory
  -- prd/
    -- ec2.ini
    -- group_vars/
    -- host_vars
    -- inventory
playbooks/
  -- playbook1.yml
  -- playbook2.yml
  -- playbook3.yml
roles/
site.yml
dev
prd
目录中的
inventory
文件为

我已经设置了每个ec2.ini文件,以便根据AWS标记为dev或prd环境创建一个动态清单

如果我试图运行
ansible playbook-I dev site.yml
,我会得到一个错误:
[警告]:无法将/home/ansibleadmin/dev_playbook/dev作为清单源进行解析

这种方法应该适用于静态库存——出于某种原因,它不适用于动态库存吗?实现这一点的正确方法是什么?

您会收到一条警告:

[警告]:无法将/home/ansibleadmin/dev_playbook/dev解析为资源清册源

根据您在上面发布的“项目目录”树,您的计算机上不存在警告消息
/home/ansibleadmin/dev_playbook/dev
中的目录


使用相对路径(在playbook目录中时)的正确命令为:

使用绝对路径的正确命令是:

ansible-playbook -i /home/ansibleadmin/dev_playbook/inventories/dev site.yml
ansible-playbook -i /home/ansibleadmin/dev_playbook/inventories/dev site.yml