aboutsummaryrefslogtreecommitdiffstats
path: root/roles/cups_server/tasks/freeipa.yml
blob: 0acb36dc5d9128ae766073f0274cc43155325bcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
- name: create admin group
  ipagroup:
    ipaadmin_principal: '{{ ipa_user }}'
    ipaadmin_password: '{{ ipa_pass }}'
    name: '{{ cups_admin_group }}'
    nonposix: no
    state: present
  run_once: yes

- name: create HBAC service
  ipahbacsvc:
    ipaadmin_principal: '{{ ipa_user }}'
    ipaadmin_password: '{{ ipa_pass }}'
    name: '{{ cups_hbac_service }}'
    description: CUPS Print Server
    state: present
  run_once: yes

- name: create cups-servers hostgroup
  ipahostgroup:
    ipaadmin_principal: '{{ ipa_user }}'
    ipaadmin_password: '{{ ipa_pass }}'
    name: '{{ cups_hbac_hostgroup }}'
    description: CUPS Servers
    host: "{{ groups[cups_hostgroup] | map('regex_replace', '$', '.' ~ ansible_domain) }}"
  run_once: yes

- name: create HBAC rule for cups-admin
  ipahbacrule:
    ipaadmin_principal: '{{ ipa_user }}'
    ipaadmin_password: '{{ ipa_pass }}'
    name: allow_cups_on_cups_servers
    description: Allow CUPS admin on CUPS servers
    hostgroup: '{{ cups_hbac_hostgroup }}'
    group: '{{ cups_admin_group }}'
    hbacsvc: '{{ cups_hbac_service }}'
  run_once: yes

- name: generate pam configuration
  copy:
    content: |
      auth    required pam_sss.so
      account required pam_sss.so
    dest: /etc/pam.d/cups

- name: create HTTP service principal
  ipaservice:
    ipaadmin_principal: '{{ ipa_user }}'
    ipaadmin_password: '{{ ipa_pass }}'
    name: 'HTTP/{{ ansible_fqdn }}'
    state: present

- name: retrieve HTTP keytab
  include_role:
    name: freeipa_keytab
  vars:
    keytab_principal: 'HTTP/{{ ansible_fqdn }}'
    keytab_path: /etc/krb5.keytab