Skip to content

Instantly share code, notes, and snippets.

@davestern
Last active October 30, 2018 08:04
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save davestern/8976317 to your computer and use it in GitHub Desktop.
Save davestern/8976317 to your computer and use it in GitHub Desktop.
Ansible: how to set hostname before DNS assigned
ec2-1-2-3-4.compute-1.amazonaws.com new_hostname=new-hostname.example.com
ec2-5-6-7-8.compute-1.amazonaws.com
---
# Test Playbook for debugging.
# ansible-playbook -i hosts-test playbook-test.yml -l <group or server name>
- hosts: all
tasks:
- name: "Debug hostname"
debug: msg="inventory_hostname={{ inventory_hostname }}, hostvars[inventory_hostname]['inventory_hostname']={{ hostvars[inventory_hostname]['inventory_hostname'] }}, ansible_hostname={{ ansible_hostname }}, new_hostname={{ new_hostname }}"
ignore_errors: yes
when: new_hostname is defined
- name: "set hostname fact from inventory_hostname"
set_fact: hostname_to_use={{ inventory_hostname }}
- name: "set hostname fact from user hostname if defined"
set_fact: hostname_to_use={{ new_hostname }}
when: new_hostname is defined
- name: "show hostname fact"
debug: msg="hostname_to_use={{ hostname_to_use }}"
ansible-playbook -i hosts-test playbook-test.yml
PLAY [all] ********************************************************************
GATHERING FACTS ***************************************************************
ok: [ec2-1-2-3-4.compute-1.amazonaws.com]
ok: [ec2-5-6-7-8.compute-1.amazonaws.com]
TASK: [Debug hostname] ********************************************************
skipping: [ec2-5-6-7-8.compute-1.amazonaws.com]
ok: [ec2-1-2-3-4.compute-1.amazonaws.com] => {
"msg": "inventory_hostname=ec2-1-2-3-4.compute-1.amazonaws.com, hostvars[inventory_hostname]['inventory_hostname']=ec2-1-2-3-4.compute-1.amazonaws.com, ansible_hostname=domU-01-02-03-04-9C-CA, new_hostname=new-hostname.example.com"
}
TASK: [set hostname fact] *****************************************************
ok: [ec2-1-2-3-4.compute-1.amazonaws.com]
ok: [ec2-5-6-7-8.compute-1.amazonaws.com]
TASK: [set hostname fact] *****************************************************
skipping: [ec2-5-6-7-8.compute-1.amazonaws.com]
ok: [ec2-1-2-3-4.compute-1.amazonaws.com]
TASK: [show hostname fact] ****************************************************
ok: [ec2-5-6-7-8.compute-1.amazonaws.com] => {
"msg": "testvar1=ec2-5-6-7-8.compute-1.amazonaws.com"
}
ok: [ec2-1-2-3-4.compute-1.amazonaws.com] => {
"msg": "testvar1=new-hostname.example.com"
}
PLAY RECAP ********************************************************************
ec2-1-2-3-4.compute-1.amazonaws.com : ok=5 changed=0 unreachable=0 failed=0
ec2-5-6-7-8.compute-1.amazonaws.com : ok=3 changed=0 unreachable=0 failed=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment