Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Adullact
puppet-freeipa
Commits
8e7463ff
Commit
8e7463ff
authored
Nov 16, 2020
by
Fabien Combernous
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ipa-client-install pass --hostname when enable_hostname is true
parent
2daa5dad
Pipeline
#11612
passed with stages
in 47 minutes and 15 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
51 deletions
+63
-51
REFERENCE.md
REFERENCE.md
+38
-37
manifests/init.pp
manifests/init.pp
+1
-1
manifests/install/client.pp
manifests/install/client.pp
+10
-2
spec/classes/install/client_spec.rb
spec/classes/install/client_spec.rb
+14
-11
No files found.
REFERENCE.md
View file @
8e7463ff
# Reference
<!-- DO NOT EDIT: This document was generated by Puppet Strings -->
## Table of Contents
**
Classes
**
###
Classes
_
Public Classes
_
####
Public Classes
*
[
`freeipa`
](
#freeipa
)
: Manages IPA masters, replicas and clients.
*
[
`freeipa::helpers::flushcache`
](
#freeipahelpersflushcache
)
: Flushcache sss for Debian and RedHat only
_
Private Classes
_
####
Private Classes
*
`freeipa::install`
: Installs the packages needed for servers and clients
*
`freeipa::install::client`
: Install freeipa client
...
...
@@ -18,13 +19,13 @@ _Private Classes_
*
`freeipa::install::server::master`
: Installs freeipa server as master
*
`freeipa::install::server::replica`
: Installs freeipa server as replica
**
Tasks
**
###
Tasks
*
[
`manage_admin`
](
#manage_admin
)
: Manage (create or delete) a FreeIPA admin account
## Classes
### freeipa
###
`
freeipa
`
Parameters
----------
...
...
@@ -83,7 +84,7 @@ Data type: `String`
Name of the autofs package to install if enabled.
Default value: 'autofs'
Default value:
`
'autofs'
`
##### `client_install_ldaputils`
...
...
@@ -91,7 +92,7 @@ Data type: `Boolean`
If true, then the ldaputils packages are installed if ipa_role is set to client.
Default value:
`false`
Default value:
`
`false`
`
##### `configure_dns_server`
...
...
@@ -100,7 +101,7 @@ Data type: `Boolean`
If true, then install and configure an integrated DNS server, create DNS zone specified by
`domain`
,
and fill it with service records necessary for IPA deployment.
Default value:
`true`
Default value:
`
`true`
`
##### `configure_ntp`
...
...
@@ -108,7 +109,7 @@ Data type: `Boolean`
If false, then do not configure NTP.
Default value:
`true`
Default value:
`
`true`
`
##### `custom_dns_forwarders`
...
...
@@ -116,7 +117,7 @@ Data type: `Array[String]`
Each element in this array is prefixed with
`--forwarder`
and passed to the IPA server installer.
Default value: []
Default value:
`
[]
`
##### `principal_usedto_joindomain`
...
...
@@ -124,7 +125,7 @@ Data type: `String`
The principal (usually username) used to join a client or replica to the IPA domain.
Default value: 'admin'
Default value:
`
'admin'
`
##### `password_usedto_joindomain`
...
...
@@ -132,7 +133,7 @@ Data type: `String`
The password for the domain_join_principal.
Default value: $puppet_admin_password
Default value:
`
$puppet_admin_password
`
##### `enable_hostname`
...
...
@@ -141,7 +142,7 @@ Data type: `Boolean`
If true, then the installer flag
`--hostname`
is populated with the parameter
`ipa_server_fqdn`
and passed to the IPA installer.
Default value:
`true`
Default value:
`
`true`
`
##### `enable_ip_address`
...
...
@@ -150,7 +151,7 @@ Data type: `Boolean`
If true, then the installer flag
`--ip-address`
is populated with the parameter
`ip_address`
and passed to the IPA installer.
Default value:
`false`
Default value:
`
`false`
`
##### `fixed_primary`
...
...
@@ -159,7 +160,7 @@ Data type: `Boolean`
If true, on client it configure SSSD to use a fixed server as the primary IPA server.
The default behavior of client is to use DNS SRV records to determine the primary server to use.
Default value:
`false`
Default value:
`
`false`
`
##### `idstart`
...
...
@@ -167,7 +168,7 @@ Data type: `Integer[10000]`
From the IPA man pages: "The starting user and group id number".
Default value: 10000
Default value:
`
10000
`
##### `install_autofs`
...
...
@@ -175,7 +176,7 @@ Data type: `Boolean`
If true, then the autofs packages are installed.
Default value:
`false`
Default value:
`
`false`
`
##### `install_epel`
...
...
@@ -183,7 +184,7 @@ Data type: `Boolean`
If true, then the epel repo is installed. The epel repo is usually required for sssd packages.
Default value:
`true`
Default value:
`
`true`
`
##### `install_sssdtools`
...
...
@@ -191,7 +192,7 @@ Data type: `Boolean`
If true, then the sssdtools packages are installed.
Default value:
`true`
Default value:
`
`true`
`
##### `ipa_client_package_name`
...
...
@@ -199,7 +200,7 @@ Data type: `String`
Name of the IPA client package.
Default value: $facts
[
'os'
][
'family'
]
Default value:
`
$facts['os']['family']
`
##### `ipa_server_package_name`
...
...
@@ -207,7 +208,7 @@ Data type: `String`
Name of the IPA server package.
Default value: 'ipa-server'
Default value:
`
'ipa-server'
`
##### `install_ipa_client`
...
...
@@ -215,7 +216,7 @@ Data type: `Boolean`
If true, then the IPA client packages are installed if the parameter
`ipa_role`
is set to
`client`
.
Default value:
`true`
Default value:
`
`true`
`
##### `install_ipa_server`
...
...
@@ -223,7 +224,7 @@ Data type: `Boolean`
If true, then the IPA server packages are installed if the parameter
`ipa_role`
is not set to
`client`
.
Default value:
`true`
Default value:
`
`true`
`
##### `install_sssd`
...
...
@@ -231,7 +232,7 @@ Data type: `Boolean`
If true, then the sssd packages are installed.
Default value:
`true`
Default value:
`
`true`
`
##### `ip_address`
...
...
@@ -244,9 +245,9 @@ If this address does not match the address the host resolves to and `configure_d
Data type:
`Stdlib::Fqdn`
Actual fqdn of the IPA server.
Actual fqdn of the IPA server
being configured
.
Default value: $facts
[
'networking'
][
'fqdn'
]
Default value:
`
$facts['networking']['fqdn']
`
##### `ldaputils_package_name`
...
...
@@ -254,7 +255,7 @@ Data type: `String`
Name of the ldaputils package.
Default value: $facts
[
'os'
][
'family'
]
Default value:
`
$facts['os']['family']
`
##### `ipa_master_fqdn`
...
...
@@ -268,7 +269,7 @@ Data type: `Boolean`
If true, then a host entry is created using the parameters
`ipa_server_fqdn`
and
`ip_address`
.
Default value:
`false`
Default value:
`
`false`
`
##### `mkhomedir`
...
...
@@ -276,7 +277,7 @@ Data type: `Boolean`
If true, on client configure PAM to create a users home directory if it does not exist.
Default value:
`true`
Default value:
`
`true`
`
##### `webui_redirect`
...
...
@@ -284,7 +285,7 @@ Data type: `Boolean`
If true, then web requests to URL root / will be redirected to webui https://example.com/ipa/ui.
Default value:
`true`
Default value:
`
`true`
`
##### `realm`
...
...
@@ -292,7 +293,7 @@ Data type: `Stdlib::Fqdn`
The name of the IPA realm to create or join.
Default value: upcase($domain)
Default value:
`
upcase($domain)
`
##### `server_install_ldaputils`
...
...
@@ -300,7 +301,7 @@ Data type: `Boolean`
If true, then the ldaputils packages are installed if ipa_role is not set to client.
Default value:
`true`
Default value:
`
`true`
`
##### `sssd_package_name`
...
...
@@ -308,7 +309,7 @@ Data type: `String`
Name of the sssd package.
Default value: 'sssd-common'
Default value:
`
'sssd-common'
`
##### `sssdtools_package_name`
...
...
@@ -316,7 +317,7 @@ Data type: `String`
Name of the sssdtools package.
Default value: 'sssd-tools'
Default value:
`
'sssd-tools'
`
##### `install_ca`
...
...
@@ -324,9 +325,9 @@ Data type: `Boolean`
If true, install and configure a CA even on replica.
Default value:
`true`
Default value:
`
`true`
`
### freeipa::helpers::flushcache
###
`
freeipa::helpers::flushcache
`
Flushcache sss for Debian and RedHat only
...
...
@@ -340,7 +341,7 @@ include freeipa::helpers::flushcache
## Tasks
### manage_admin
###
`
manage_admin
`
Manage (create or delete) a FreeIPA admin account
...
...
manifests/init.pp
View file @
8e7463ff
...
...
@@ -52,7 +52,7 @@
# @param ip_address
# The IP address of this server.
# If this address does not match the address the host resolves to and `configure_dns_server` is not `true`, the installation will fail.
# @param ipa_server_fqdn Actual fqdn of the IPA server.
# @param ipa_server_fqdn Actual fqdn of the IPA server
being configured
.
# @param ldaputils_package_name Name of the ldaputils package.
# @param ipa_master_fqdn FQDN of the server to use for a client or replica domain join.
# @param manage_host_entry If true, then a host entry is created using the parameters `ipa_server_fqdn` and `ip_address`.
...
...
manifests/install/client.pp
View file @
8e7463ff
...
...
@@ -38,6 +38,13 @@ class freeipa::install::client {
$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}
\
...
...
@@ -47,9 +54,10 @@ class freeipa::install::client {
${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_
${
::
fqdn}
"
:
exec
{
"client_install_
$
{
facts['
fqdn
']
}"
:
command
=>
$client_install_cmd
,
timeout
=>
0
,
unless
=>
"cat /etc/ipa/default.conf | grep -i
\"
${freeipa::domain}
\"
"
,
...
...
spec/classes/install/client_spec.rb
View file @
8e7463ff
require
'spec_helper'
ipa_node
=
'foo.example.com'
describe
'freeipa::install::client'
do
context
'with node not yet configured'
do
on_supported_os
.
each
do
|
os
,
os_
facts
|
on_supported_os
.
each
do
|
os
,
facts
|
context
"on
#{
os
}
"
do
let
(
:facts
)
{
os_
facts
}
let
(
:facts
)
{
facts
}
let
(
:pre_condition
)
do
manifest
=
<<-
EOS
class{ 'freeipa' :
ipa_role => 'client',
ipa_master_fqdn => 'master.example.
lan
',
ipa_server_fqdn => '
foo.example.lan
',
domain => 'example.
lan
',
ipa_master_fqdn => 'master.example.
com
',
ipa_server_fqdn => '
#{
ipa_node
}
',
domain => 'example.
com
',
password_usedto_joindomain => 'foobartest',
puppet_admin_password => 'foobartest',
directory_services_password => 'foobartest',
...
...
@@ -22,6 +24,7 @@ describe 'freeipa::install::client' do
end
it
{
is_expected
.
to
compile
}
it
{
is_expected
.
to
contain_exec
(
"client_install_
#{
ipa_node
}
"
).
with
(
'command'
=>
%r{.*hostname=
#{
ipa_node
}
.*}
)
}
end
end
end
...
...
@@ -34,9 +37,9 @@ describe 'freeipa::install::client' do
manifest
=
<<-
EOS
class{ 'freeipa' :
ipa_role => 'client',
ipa_master_fqdn => 'master.example.
lan
',
ipa_server_fqdn => 'foo.example.
lan
',
domain => 'example.
lan
',
ipa_master_fqdn => 'master.example.
com
',
ipa_server_fqdn => 'foo.example.
com
',
domain => 'example.
com
',
password_usedto_joindomain => 'foobartest',
puppet_admin_password => 'foobartest',
directory_services_password => 'foobartest',
...
...
@@ -59,9 +62,9 @@ describe 'freeipa::install::client' do
manifest
=
<<-
EOS
class{ 'freeipa' :
ipa_role => 'client',
ipa_master_fqdn => 'master.example.
lan
',
ipa_server_fqdn => 'foo.example.
lan
',
domain => 'example.
lan
',
ipa_master_fqdn => 'master.example.
com
',
ipa_server_fqdn => 'foo.example.
com
',
domain => 'example.
com
',
password_usedto_joindomain => 'foobartest',
puppet_admin_password => 'foobartest',
directory_services_password => 'foobartest',
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment