Add keytab/service role
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
This commit is contained in:
parent
b6ee08fac2
commit
3529e621ee
2 changed files with 85 additions and 0 deletions
3
roles/keytab/service/defaults/main.yml
Normal file
3
roles/keytab/service/defaults/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
owner_user: root
|
||||
owner_group: root
|
||||
kt_location: "/etc/krb5.{{service}}_{{host}}.keytab"
|
82
roles/keytab/service/tasks/main.yml
Normal file
82
roles/keytab/service/tasks/main.yml
Normal file
|
@ -0,0 +1,82 @@
|
|||
---
|
||||
# We need ipa-getkeytab
|
||||
- name: Install ipa-client
|
||||
yum: name=ipa-client state=present
|
||||
|
||||
- name: Determine whether we need to get keytab
|
||||
stat: path={{kt_location}}
|
||||
register: keytab_status
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
|
||||
- name: Get admin ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
shell: echo "{{ipa_admin_password}}" | kinit admin
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Create host entry
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa host-add {{host}}
|
||||
register: host_add_result
|
||||
changed_when: "'Added host' in host_add_result.stdout"
|
||||
failed_when: "not ('Added host' in host_add_result.stdout or 'already exists' in host_add_result.stderr)"
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Create service entry
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa service-add {{service}}/{{host}}
|
||||
register: service_add_result
|
||||
changed_when: "'Added service' in service_add_result.stdout"
|
||||
failed_when: "not ('Added service' in service_add_result.stdout or 'already exists' in service_add_result.stderr)"
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Grant host access to keytab
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: ipa service-allow-retrieve-keytab {{service}}/{{host}} --hosts={{inventory_hostname}}
|
||||
register: service_perm_add_result
|
||||
changed_when: "'members added 1' in service_add_result.stdout"
|
||||
failed_when: "not ('members added' in service_add_result.stdout)"
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Destroy kerberos ticket
|
||||
delegate_to: "{{ ipa_server }}"
|
||||
command: kdestroy -A
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Retrieve keytab
|
||||
command: ipa-getkeytab --retrieve --server {{ipa_server}} --keytab {{kt_location}} --principal {{service}}/{{host}}
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
||||
|
||||
- name: Set keytab permissions
|
||||
file: path={{kt_location}} owner={{owner_user}} group={{owner_group}} mode=0600
|
||||
tags:
|
||||
- keytab
|
||||
- config
|
||||
- krb5
|
||||
when: not keytab_status.stat.exists
|
Loading…
Add table
Add a link
Reference in a new issue