我想用Puppet设置用户密码。代码:
if ($operatingsystemmajrelease == '7') {
group { 'zabbix':
name => "zabbix",
ensure => "present",
}
user { 'zabbix':
name => "zabbix",
groups => "zabbix",
password => "$6$UdvUfiKs$rb4XFkCn2h/AUZrJsg2wnRDkOH5E5lliJZXqySVEYUDARFSlWKYHOeMLWycTa2jIMa3XQ3MWtq1EiilBZCbKX.",
}
}
产生错误:
错误:无法从远程服务器检索目录:SERVER上的错误500:{" message":"服务器错误:非法变量名称,给定名称' UdvUfiKs'不符合命名规则/ ^((::)?[az] \ w *)((::)?[a-z _] \ w )$ / at / opt / puppetlabs节点napupp01.corpnet.pl上的/environments/Linux_nieprodukcja/modules/zabbix_install_lin/manifests/init.pp:16:20"," issue_kind":" RUNTIME_ERROR"}
SHA-512我在添加用户zabbix并将其复制到清单后生成了表单shell passwd zabbix
。为什么我会收到此错误?
答案 0 :(得分:2)
此处的问题是您在password
资源的user
属性中使用双引号。这指示Puppet插入变量以及其他动作。 Puppet将前导$
解释为变量名的开头而不是SHA-512哈希。你必须在这里做字符串转义才能提供帮助。这种行为对所有解释性语言都很常见。您可以使用字符串文字而不是''
来轻松解决此问题:
user { 'zabbix':
name => 'zabbix',
groups => 'zabbix',
password => '$6$UdvUfiKs$rb4XFkCn2h/AUZrJsg2wnRDkOH5E5lliJZXqySVEYUDARFSlWKYHOeMLWycTa2jIMa3XQ3MWtq1EiilBZCbKX.',
}
请注意,puppet-lint会通过警告提醒您注意此问题,并且可以帮助您解决此问题:https://github.com/rodjek/puppet-lint。