Files
toallab-automation/roles/alvaroaleman.freeipa-client/tasks/main.yml
2018-12-06 16:29:26 -05:00

96 lines
2.3 KiB
YAML

---
# tasks file for ansible-freeipa-client
- name: Assert supported distribution
tags:
- assertion
- freeipaclient
assert:
that:
- ansible_distribution + '-' + ansible_distribution_major_version in freeipaclient_supported_distributions
- name: Assert required variables
tags:
- assertion
- freeipaclient
assert:
that:
- freeipaclient_server is defined
- freeipaclient_domain is defined
- freeipaclient_enroll_user is defined
- freeipaclient_enroll_pass is defined
- name: Import variables
tags:
- import
- freeipaclient
include_vars: "{{ ansible_distribution }}.yml"
- name: Set DNS server
tags:
- dns
- freeipaclient
become: true
when: freeipaclient_dns_server is defined
lineinfile:
state: present
line: "nameserver {{ freeipaclient_dns_server }}"
dest: /etc/resolv.conf
- name: Update apt cache
tags:
- packagemanagement
- freeipaclient
become: true
when: ansible_pkg_mgr == 'apt'
apt:
update_cache: true
cache_valid_time: 3600
- name: Install required packages
tags:
- packagemanagement
- freeipaclient
become: true
with_items: "{{ freeipaclient_packages }}"
package:
state: present
name: "{{ item }}"
- name: Check if host is enrolled
tags:
- enroll
- freeipaclient
register: freeipaclient_ipaconf
check_mode: no
stat:
path: /etc/ipa/default.conf
- name: Enroll host in domain
tags:
- enroll
- freeipaclient
become: true
when: not freeipaclient_ipaconf.stat.exists
command: >
{{ freeipaclient_install_command }}
{{'--hostname=' + freeipaclient_hostname if freeipaclient_hostname is defined else '--hostname=' + ansible_nodename }}
--server={{ freeipaclient_server }}
--domain={{ freeipaclient_domain }}
--principal={{ freeipaclient_enroll_user }}
--password={{ freeipaclient_enroll_pass }}
--ssh-trust-dns
--mkhomedir
{{ '--enable-dns-updates' if freeipaclient_enable_dns_updates else ''}}
--unattended
{{ '--all-ip-addresses' if freeipaclient_all_ip_addresses else ''}}
{{ '--no-ntp' if not freeipaclient_enable_ntp else ''}}
{{ '--force-join' if freeipaclient_force_join else ''}}
- name: Include Ubuntu specific tasks
tags:
- ubuntu
- freeipaclient
when: ansible_os_family == 'Debian'
include: ubuntu.yml