Puppet Class: easy_ipa::install::client

Defined in:
manifests/install/client.pp

Overview



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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'manifests/install/client.pp', line 2

class easy_ipa::install::client {

  package{ 'ipa-client':
    ensure => $::easy_ipa::params::ipa_client_package_ensure,
    name   => $::easy_ipa::params::ipa_client_package_name,
  }

  package{ $::easy_ipa::params::kstart_package_name:
    ensure => present,
  }

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

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

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

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

  if $easy_ipa::configure_sshd {
    $client_install_cmd_opts_no_sshd = ''
  } else {
    $client_install_cmd_opts_no_sshd = '--no-sshd'
  }

  if $easy_ipa::enable_hostname {
    $client_install_cmd_opts_hostname = "--hostname=${::fqdn}"
  } else {
    $client_install_cmd_opts_hostname = ''
  }

    $client_install_cmd = "\
/usr/sbin/ipa-client-install \
  --server=${easy_ipa::ipa_master_fqdn} \
  --realm=${easy_ipa::final_realm} \
  --domain=${easy_ipa::domain} \
  --principal='${easy_ipa::final_domain_join_principal}' \
  --password='${easy_ipa::final_domain_join_password}' \
  ${client_install_cmd_opts_hostname} \
  ${client_install_cmd_opts_mkhomedir} \
  ${client_install_cmd_opts_fixed_primary} \
  ${client_install_cmd_opts_no_ntp} \
  ${client_install_cmd_opts_no_sshd} \
  --unattended"

  # Some platforms require "manual" setup as they don't have the freeipa-client
  # package.
  #
  if $::easy_ipa::params::ipa_client_package_ensure == 'present' {
    exec { "client_install_${::fqdn}":
      command   => $client_install_cmd,
      timeout   => 0,
      unless    => "cat /etc/ipa/default.conf | grep -i \"${easy_ipa::domain}\"",
      creates   => '/etc/ipa/default.conf',
      logoutput => 'on_failure',
      before    => Service['sssd'],
      provider  => 'shell',
    }
  } else {
    include ::easy_ipa::install::client::manual
  }

  if $facts['os']['family'] == 'Debian' and $::easy_ipa::mkhomedir {
    include ::easy_ipa::install::client::debian
  }

  if $easy_ipa::install_sssd {
    service { 'sssd':
      ensure  => 'running',
      enable  => true,
      require => Package[$::easy_ipa::params::sssd_package_name],
    }
  }
}