Puppet Class: profile
- Inherits:
- profile::params
- Defined in:
- manifests/init.pp
Overview
Class: profile
Manages /etc/profile and /etc/profile.d/ directory
Parameters
Standard class parameters
- my_class
-
Name of a custom class to autoload to manage module’s customizations If defined, profile class will automatically “include $my_class” Can be defined also by the (top scope) variable $profile_myclass
- source
-
Sets the content of source parameter for main configuration file If defined, profile main config file will have the param: source => $source Can be defined also by the (top scope) variable $profile_source
- source_dir
-
If defined, the whole /etc/profile.d directory content is retrieved recursively from the specified source (source => $source_dir , recurse => true) Can be defined also by the (top scope) variable $profile_source_dir
- source_dir_purge
-
If set to true (default false) the existing configuration directory is mirrored with the content retrieved from source_dir (source => $source_dir , recurse => true , purge => true) Can be defined also by the (top scope) variable $profile_source_dir_purge
- template
-
Sets the path to the template to use as content for main configuration file If defined, profile main config file has: content => content(“$template”) Note source and template parameters are mutually exclusive: don’t use both Can be defined also by the (top scope) variable $profile_template
- options
-
An hash of custom options to be used in templates for arbitrary settings. Can be defined also by the (top scope) variable $profile_options
- version
-
The package version, used in the ensure parameter of package type. Default: present. Can be ‘latest’ or a specific version number. Note that if the argument absent (see below) is set to true, the package is removed, whatever the value of version parameter.
- absent
-
Set to ‘true’ to remove package(s) installed by module Can be defined also by the (top scope) variable $profile_absent
- audit_only
-
Set to ‘true’ if you don’t intend to override existing configuration files and want to audit the difference between existing files and the ones managed by Puppet. Can be defined also by the (top scope) variables $profile_audit_only and $audit_only
Default class params - As defined in profile::params.
- config_dir
-
Main configuration directory.
- config_file
-
Main configuration file path
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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'manifests/init.pp', line 65
class profile (
$my_class = params_lookup( 'my_class' ),
$source = params_lookup( 'source' ),
$source_dir = params_lookup( 'source_dir' ),
$source_dir_purge = params_lookup( 'source_dir_purge' ),
$template = params_lookup( 'template' ),
$options = params_lookup( 'options' ),
$version = params_lookup( 'version' ),
$absent = params_lookup( 'absent' ),
$audit_only = params_lookup( 'audit_only' , 'global' ),
$config_dir = params_lookup( 'config_dir' ),
$config_file = params_lookup( 'config_file' )
) inherits profile::params {
### Internal variables setting
# Configurations directly retrieved from profile::params
$config_file_mode=$profile::params::config_file_mode
$config_file_owner=$profile::params::config_file_owner
$config_file_group=$profile::params::config_file_group
# Sanitize of booleans
$bool_source_dir_purge=any2bool($source_dir_purge)
$bool_absent=any2bool($absent)
$bool_audit_only=any2bool($audit_only)
# Logic management according to parameters provided by users
$manage_file = $profile::bool_absent ? {
true => 'absent',
default => 'present',
}
$manage_audit = $profile::bool_audit_only ? {
true => 'all',
false => undef,
}
$manage_file_replace = $profile::bool_audit_only ? {
true => false,
false => true,
}
$manage_file_source = $profile::source ? {
'' => undef,
default => $profile::source,
}
$manage_file_content = $profile::template ? {
'' => undef,
default => template($profile::template),
}
### Resources managed by the module
file { 'profile.conf':
ensure => $profile::manage_file,
path => $profile::config_file,
mode => $profile::config_file_mode,
owner => $profile::config_file_owner,
group => $profile::config_file_group,
source => $profile::manage_file_source,
content => $profile::manage_file_content,
replace => $profile::manage_file_replace,
audit => $profile::manage_audit,
}
# The whole profile configuration directory is managed only
# if $profile::source_dir is provided
if $profile::source_dir and $profile::config_dir != '' {
file { 'profile.dir':
ensure => directory,
path => $profile::config_dir,
source => $profile::source_dir,
recurse => true,
purge => $profile::bool_source_dir_purge,
replace => $profile::manage_file_replace,
audit => $profile::manage_audit,
}
}
### Include custom class if $my_class is set
if $profile::my_class {
include $profile::my_class
}
}
|