Привет, участники сообщества,
У нас есть файл марионеток с основным классом, как показано ниже:
class profile::Profname::application::classname {
$appname_homedir = hiera('appname::appname_homedir')
$appname_installdir = hiera('appname::appname_installdir')
$java_optional_args = "${java_keystore_args} ${java_proxy_args} ${java_timezone_args}"
..
..
$user = hiera('appname::appname_user')
$gid = hiera('appname::appname_user_gid')
$uid = hiera('appname::appname_user_uid')
exec { "Many blocks":
command => "commands",
..
}
exec { "Many blocks":
command => "commands",
..
}
# Install and configure app
class { 'app':
user => hiera('classname::appname_user'),
jvm_opts => $java_optional_args,
download_url => "s3://${s3_bucket}/${APPDIR}/appname",
dbserver => hiera('appname::db-endpoint'),
notify => Exec["Change appname gid and uid"],
require => [ Class['java'], Exec['Create Homedir'], Exec['Create Appdir']],
}
#other exec blocks
exec { "blocks"
..
..
}
}
Теперь у меня есть еще две переменные в hiera: uid и gid для the appname_user.
Как я могу создать пользователя "appname_user" во внутреннем классе 'app'?
Я пытался сослаться https://puppet.com/docs/puppet/4.10/quick_start_user_group.html но не уверен, как я могу сделать это внутри класса. Любая помощь будет принята с благодарностью.
Я сделал еще один exe c блок изменения uid и gid для пользователя позже, когда пользователь создан, но, похоже, этот способ не работает для некоторых уже существующих файлов. Хотя кукольное исполнение успешно. Следовательно, я хочу создать пользователя с помощью uid и gid во время создания.
Спасибо и всего наилучшего, Саха