ansible/test/integration/targets/hostname/tasks/main.yml
Sam Doran 7352457e7b
hostname - add macOS (#54439)
* Add DarwinStrategy class and integration tests

macOS has three seprate hostname params that need to be set. One of those params, LocalHostName, has more stringent requirements than the other two, which accept special characters and spaces. Create a method to scrub the hostname to ensure it works well with the system requirements.

* Update documentation

* Account for virtualization type returned on Azure Pipelines

* Do not be dependent on order of self.name_types

Use the scrubbed name when the name type is LocalHostName
2020-10-27 17:30:54 -04:00

50 lines
1.5 KiB
YAML

# Setting the hostname in our test containers doesn't work currently
- when: ansible_facts.virtualization_type not in ('docker', 'container', 'containerd')
block:
- name: Include distribution specific variables
include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_facts.distribution }}.yml"
- "{{ ansible_facts.os_family }}.yml"
- default.yml
paths:
- "{{ role_path }}/vars"
- name: Get current hostname
command: hostname
register: original
- import_tasks: test_check_mode.yml
- import_tasks: test_normal.yml
- name: Include distribution specific tasks
include_tasks:
file: "{{ lookup('first_found', files) }}"
vars:
files:
- "{{ ansible_facts.distribution }}.yml"
- default.yml
always:
# Reset back to original hostname
- name: Move back original file if it existed
command: mv -f {{ _hostname_file }}.orig {{ _hostname_file }}
when: hn_stat.stat.exists | default(False)
- name: Delete the file if it never existed
file:
path: "{{ _hostname_file }}"
state: absent
when: not hn_stat.stat.exists | default(True)
- name: Reset back to original hostname
hostname:
name: "{{ original.stdout }}"
register: revert
- name: Ensure original hostname was reset
assert:
that:
- revert is changed