如何使用Puppet使用SHA-512哈希设置用户密码?

时间:2017-11-08 09:57:12

标签: linux puppet redhat

我想用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。为什么我会收到此错误?

1 个答案:

答案 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