Я написал следующий фрагмент ниже, используя user
ресурс в puppet
создавать unix
пользователей.
node 'node2.example.com','node3.example.com'{
user {
'askar':
ensure => 'present',
managehome => 'true',
comment => 'man Home',
home => '/home/askar',
shell => '/bin/bash',
expiry => '2016-03-22',
password => '$1$cs1j/t.D$4Q2Ocr0pulyNTUx/',
password_min_age => '30',
password_max_age => '60',
}
exec {
'chage':
path => '/usr/bin/',
command => 'chage -d 0 askar',
}
}
У меня это работает нормально, но проблема для меня в том, что мне нужно создать от 10 до 20 пользователей. Как я могу повторно использовать приведенный выше фрагмент для создания 10 пользователей. Я новичок в puppet
, так что указатели будут большим подспорьем.
Вам нужно будет реорганизовать свой код, чтобы использовать define
, на который вы затем ссылаетесь из объявлений вашего узла.
модули / myuser / init.pp
define myuser(
$password,
$expiry = '2016-03-22',
$shell = '/bin/bash',
) {
user { $title:
ensure => present,
managehome => true,
comment => 'Puppet managed user',
home => "/home/${title}",
shell => $shell,
expiry => $expiry,
password => $password,
password_min_age => '30',
password_max_age => '60',
}
exec { 'chage':
command => "/usr/bin/chage -d 0 ${title}",
}
}
манифесты / site.pp
node 'node2.example.com','node3.example.com'{
myuser { 'user1':
password => 'sdfsldkfldsfl'
}
myuser { 'user2':
password => 'dfsdklsjflcd',
}
}
Ссылка: https://docs.puppetlabs.com/puppet/latest/reference/lang_defined_types.html
В качестве альтернативы вы можете использовать для этого один из множества модулей Puppet Forge. Лично я использую вот этот.