Updated with ipaclient setup and bootstrap
This commit is contained in:
135
roles/debian-freeipa-client/tasks/main.yml
Normal file
135
roles/debian-freeipa-client/tasks/main.yml
Normal file
@@ -0,0 +1,135 @@
|
||||
---
|
||||
|
||||
- name: install kerberoes user utility
|
||||
package:
|
||||
name: krb5-user
|
||||
state: present
|
||||
|
||||
- name: check if we have a cached kerberos ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
command: klist
|
||||
run_once: yes
|
||||
changed_when: false
|
||||
|
||||
- name: check if the host exists in the directory
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
command: flock /tmp/ansible-lock ipa host-show {{ ansible_fqdn }}
|
||||
register: host_show
|
||||
failed_when: host_show.rc == 1
|
||||
changed_when: false
|
||||
|
||||
- name: create the host principal
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
command: flock /tmp/ansible-lock ipa host-add {{ ansible_fqdn }} --force
|
||||
--sshpubkey \"{{ ansible_ssh_host_key_rsa_public }}\"
|
||||
--os {{ ansible_distribution }}
|
||||
when: host_show.rc != 0
|
||||
tags: [install]
|
||||
|
||||
- name: check if /etc/krb5.keytab exists
|
||||
stat: path=/etc/krb5.keytab
|
||||
register: keytab
|
||||
|
||||
- name: generate the host keytab
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
command: flock /tmp/ansible-lock /usr/sbin/ipa-getkeytab -s {{ ipa_server }} -p host/{{ ansible_fqdn }} -k /tmp/{{ ansible_hostname }}.keytab
|
||||
when: 'not keytab.stat.exists or "Keytab: True" not in host_show.stdout'
|
||||
tags: [install]
|
||||
|
||||
- name: transfer the keytab over to the IPA client
|
||||
synchronize:
|
||||
src: /tmp/{{ ansible_hostname }}.keytab
|
||||
dest: /etc/krb5.keytab
|
||||
archive: no
|
||||
ssh_args: -l root
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
when: 'not keytab.stat.exists or "Keytab: True" not in host_show.stdout'
|
||||
notify: restart sssd
|
||||
tags: [install]
|
||||
|
||||
- name: remove the keytab file on the FreeIPA server
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
vars: {ansible_user: ""}
|
||||
become: no
|
||||
file:
|
||||
path: /tmp/{{ ansible_hostname }}.keytab
|
||||
state: absent
|
||||
tags: [install]
|
||||
|
||||
- name: create the directory /etc/sssd
|
||||
file:
|
||||
path: /etc/sssd
|
||||
state: directory
|
||||
|
||||
- name: configure sssd
|
||||
template:
|
||||
src: sssd.conf.j2
|
||||
dest: /etc/sssd/sssd.conf
|
||||
mode: 0600
|
||||
notify: restart sssd
|
||||
tags: [configure]
|
||||
|
||||
- name: install sssd
|
||||
apt: name=sssd state=present
|
||||
tags: [install]
|
||||
|
||||
- name: automatically create user home directories
|
||||
copy:
|
||||
src: mkhomedir
|
||||
dest: /usr/share/pam-configs/mkhomedir
|
||||
notify: execute pam-auth-update
|
||||
|
||||
- name: configure krb5
|
||||
template:
|
||||
src: krb5.conf.j2
|
||||
dest: /etc/krb5.conf
|
||||
tags: [configure]
|
||||
|
||||
- name: set AuthorizedKeysCommand for sshd
|
||||
lineinfile:
|
||||
regexp: AuthorizedKeysCommand\b
|
||||
line: AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
|
||||
dest: /etc/ssh/sshd_config
|
||||
notify: restart sshd
|
||||
tags: [configure]
|
||||
|
||||
- name: set AuthorizedKeysCommandUser for sshd
|
||||
lineinfile:
|
||||
regexp: AuthorizedKeysCommandUser
|
||||
line: AuthorizedKeysCommandUser nobody
|
||||
dest: /etc/ssh/sshd_config
|
||||
notify: restart sshd
|
||||
tags: [configure]
|
||||
|
||||
- name: set GlobalKnownHostsFile for ssh
|
||||
lineinfile:
|
||||
regexp: GlobalKnownHostsFile
|
||||
line: GlobalKnownHostsFile /var/lib/sss/pubconf/known_hosts
|
||||
dest: /etc/ssh/ssh_config
|
||||
|
||||
- name: set ProxyCommand for ssh
|
||||
lineinfile:
|
||||
regexp: ProxyCommand
|
||||
line: ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p %h
|
||||
dest: /etc/ssh/ssh_config
|
||||
tags: [configure]
|
||||
|
||||
- name: start and enable sssd
|
||||
service: name=sssd state=started enabled=yes
|
||||
tags: [serve]
|
||||
|
||||
- name: exclude lastlog and faillog from backups
|
||||
copy:
|
||||
src: backup_excludes
|
||||
dest: /var/log/.backup
|
||||
tags: [configure]
|
||||
Reference in New Issue
Block a user