使用动态库存使用Ansible进行多级部署

时间:2018-02-06 00:03:15

标签: ansible ansible-inventory

我正在使用AWS动态广告资源脚本进行ansible,如here所述,根据其标记提取我的EC2实例的子集。我想建立一个多阶段环境,我可以使用这个动态库存脚本在DEV或PRD上运行我的Playbook。

我将项目目录设置为:

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

inventorydev目录中的prd文件为dynamic inventory script

我已将每个ec2.ini文件设置为基于AWS标记为dev或prd环境创建动态广告资源。

如果我尝试运行ansible-playbook -i dev site.yml,我会收到错误:[WARNING]: Unable to parse /home/ansibleadmin/dev_playbook/dev as an inventory source

这种方法应该适用于静态库存 - 由于某些原因,它不适用于动态库存吗?实现这个目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

你收到警告:

  

[警告]:无法将/ home / ansibleadmin / dev_playbook / dev解析为库存来源

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

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

ansible-playbook -i inventories/dev site.yml

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

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