Search code examples
ansibleansible-inventory

Combine two default Ansible host files including one being ec2.py?


I'm using Ansible is a mixed environment of AWS and non-AWS machines. I'd like to avoid passing hosts on the command line. How do I combine multiple host files in Ansible and make it the default? The current recommendation on the Ansible site is to override /etc/ansible/hosts with ec2.py. which prevents me from adding additional hosts. Thanks.


Solution

  • You can mix dynamic and static inventory files by creating a directory and dropping ec2.py in it plus your ini formatted inventory list as a separate file. It is mentioned briefly in the docs here.

    for example:
    
      ./inventory/ec2.py
      ./inventory/additional-hosts
    
      ansible-playbook ... -i inventory/
    

    Note that any file with the executable bit set will be treated as a dynamic inventory so make sure you files have the correct permissions.