File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22# # Include tasks to idempotently create a host principal and its keytab
33# # Include parameters:
44# # - "_principal": the principal without the realm
5+ # # - "_keytab": the keytab file
56
67- name : Create kdc principal {{ _principal }}
78 command : |
8- {{ kerberos_server_kadmin_cmd }} -q "addprinc -randkey host/ {{ _principal }}@{{ kerberos_server_realm_name|upper() }}"
9+ {{ kerberos_server_kadmin_cmd }} -q "addprinc -randkey {{ _principal }}@{{ kerberos_server_realm_name|upper() }}"
910 register : addprinc_result
1011 changed_when : addprinc_result.stderr and not (addprinc_result.stderr is search("Principal or policy already exists while creating") )
1112
1718 or not (addprinc_result.stdout is search("Principal .* created")
1819 or addprinc_result.stderr is search("Principal or policy already exists while creating"))
1920
20- - name : Check if keytab exists
21+ - name : Check if keytab file exists
22+ stat :
23+ path : " {{ _keytab }}"
24+ register : keytab
25+
26+ - name : Check if principal exists in the keytab
2127 shell : |
22- set -o pipefail
23- klist -kte | grep -E "{{ _principal }}"
28+ set -o pipefail;
29+ klist -kte {{ _keytab }} | grep -E "{{ _principal }}"
30+ args :
31+ executable : /bin/bash
2432 register : klist_kte_result
2533 changed_when : false
34+ failed_when : klist_kte_result.rc not in [0,1]
35+ when : keytab.stat.exists
2636
2737- name : Create keytab with the kdcs
2838 command : |
29- {{ kerberos_server_kadmin_cmd }} -q "ktadd -k /etc/krb5.keytab {{ _principal }}@{{ kerberos_server_realm_name|upper() }}"
30- when : klist_kte_result.rc != 0
39+ {{ kerberos_server_kadmin_cmd }} -q "ktadd -k {{ _keytab }} {{ _principal }}@{{ kerberos_server_realm_name|upper() }}"
40+ when : >
41+ not keytab.stat.exists
42+ or klist_kte_result.rc != 0
Original file line number Diff line number Diff line change 33 include_tasks : add_princ_and_kt.yml
44 vars :
55 _principal : " host/{{ item }}"
6+ _keytab : " /etc/krb5.keytab"
67 loop : " {{ kerberos_server_kdcs }}"
78 when : is_master_host
89
You can’t perform that action at this time.
0 commit comments