Puppet Class: freeipa::install::client

Defined in:
manifests/install/client.pp

Summary

Install freeipa client

Overview

Examples:

include freeipa::install::client


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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'manifests/install/client.pp', line 9

class freeipa::install::client {
  assert_private()

  if ! $facts['iparole'] or $facts['iparole'] == 'client' {
    package{$freeipa::ipa_client_package_name:
      ensure => present,
    }

    if $freeipa::client_install_ldaputils {
      package { $freeipa::ldaputils_package_name:
        ensure => present,
      }
    }

    if $freeipa::mkhomedir {
      $client_install_cmd_opts_mkhomedir = '--mkhomedir'
    } else {
      $client_install_cmd_opts_mkhomedir = ''
    }

    if $freeipa::fixed_primary {
      $client_install_cmd_opts_fixed_primary = '--fixed-primary'
    } else {
      $client_install_cmd_opts_fixed_primary = ''
    }

    if $freeipa::configure_ntp {
      $client_install_cmd_opts_no_ntp = ''
    } else {
      $client_install_cmd_opts_no_ntp = '--no-ntp'
    }

    if $freeipa::enable_hostname {
      $client_install_cmd_opts_hostname = "--hostname=${freeipa::ipa_server_fqdn}"
        end
    } else {
      $client_install_cmd_opts_hostname = ''
    }

    $client_install_cmd = "/usr/sbin/ipa-client-install \
    --server=${freeipa::ipa_master_fqdn} \
    --realm=${freeipa::realm} \
    --domain=${freeipa::domain} \
    --principal='${freeipa::principal_usedto_joindomain}' \
    --password='${freeipa::password_usedto_joindomain}' \
    ${client_install_cmd_opts_mkhomedir} \
    ${client_install_cmd_opts_fixed_primary} \
    ${client_install_cmd_opts_no_ntp} \
    ${client_install_cmd_opts_hostname} \
    --unattended"

    exec { "client_install_${facts['fqdn']}":
      command   => $client_install_cmd,
      timeout   => 0,
      unless    => "cat /etc/ipa/default.conf | grep -i \"${freeipa::domain}\"",
      creates   => '/etc/ipa/default.conf',
      logoutput => 'on_failure',
      before    => Service['sssd'],
      provider  => 'shell',
    }

    if $freeipa::install_sssd {
      service { 'sssd':
        ensure  => 'running',
        enable  => true,
        require => Package[$freeipa::sssd_package_name],
      }
    }
  } else {
    fail ("to change ipa_role from '${facts['iparole']}' to 'client' is not supported.")
  }
}