Puppet用密码创建用户

时间:2016-03-04 03:11:32

标签: node.js passwords puppet

我需要使用Puppet在Linux(RedHat)中使用Password(对于IBM MQ VM框)创建用户帐户。

需要使用userid / password进行连接以从其他服务器连接到MQ服务器(Node.JS)amqps:// userid:password @ server:port。全部都是用木偶自动化的。

以下是我遵循的流程。

1. Logged into a test machine. Created user id / password.
2. Picked up the hash from /etc/shadow
3. Used that in puppet code in password field passed to code (in single quotes).

使用的代码如下。

  $api_group = 'nonprivmq'
  $api_userid = 'mquser'
  $api_password = 'passwordhashpickedupfrometcshadow' (used single quotes)

  # setup group and user for publish / subscribe messages
  group { $api_group:
    ensure => 'present',
    gid    => '550',
  }

  # setup user
  user { $api_userid:
    ensure     => 'present',
    uid        => '550',
    gid        => '550',
    home       => "/home/${api_userid}",
    name       => $api_userid,
    password   => $api_password,
    managehome => yes,
    shell      => '/bin/bash',
    require    => Group[$api_group],
    before     => Exec['EnableAuth'],
  }

它在不同的机器上不能始终如一地工作。适用于虚拟机,不适用于其他虚拟机。

我阅读了以下链接并尝试了列出的选项。 managing a user password for linux in puppet

尝试的选项: 1.使用https://gist.github.com/pschyska/26002d5f8ee0da2a9ea0中显示的功能 2.使用openssl命令生成密码哈希并在puppet中使用它。    #openssl passwd -1

这两个选项都不起作用。

当我手动登录MQ服务器并更改密码时,一切正常。因此,证明创建的密码不是我打算创建的。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  1. uid 550已在目标系统上使用
  2. 已经在目标系统上使用了gid 550
  3. 目标系统使用不同的密码散列算法(因此不接受您的散列)
  4. 这是我的三个想法,可能会出错。