Last active
April 28, 2025 04:18
-
Star
(211)
You must be signed in to star a gist -
Fork
(35)
You must be signed in to fork a gist
-
-
Save rothgar/8793800 to your computer and use it in GitHub Desktop.
Generate /etc/hosts with Ansible
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Idempotent way to build a /etc/hosts file with Ansible using your Ansible hosts inventory for a source. | |
# Will include all hosts the playbook is run on. | |
# Inspired from http://xmeblog.blogspot.com/2013/06/ansible-dynamicaly-update-etchosts.html | |
- name: "Build hosts file" | |
lineinfile: dest=/etc/hosts regexp='.*{{ item }}$' line="{{ hostvars[item].ansible_default_ipv4.address }} {{item}}" state=present | |
when: hostvars[item].ansible_default_ipv4.address is defined | |
with_items: groups['all'] |
@dywanik , I am not sure if that is what you are searching for... in my case, I wanted simply to add an entry to /etc/hosts.
The following worked for me:
molecule.yml:
---
...
platforms:
- name: "myplatformname"
etc_hosts:
"repo": "8.8.8.8"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@enr0s, you can also use the tag/variable
molecule-notest
that's already set by molecule, so you don't have to define your own.tasks/main.yml
or
tasks/main.yml
Another solution to this issue would be to use a "dummy" hosts file with molecule, which is not a perfect solution but is better than skipping the task in my opinion because you can then confirm that the hosts file is generated correctly.
The way to achieve that would be something like:
defaults/main.yml
molecule.yml
tasks/main.yml