已经试过在ubuntu上安装 puppet libshadow-ruby1.8
class users { package { "libshadow-ruby1.8": ensure => latest, require => Exec['apt-get update'] } user { "ubuntu": ensure => present, uid => '1001', gid => 'admin', shell => '/bin/bash', password => sha1('ubuntu'), managehome => true, require => Package['libshadow-ruby1.8'] } } include users
这么写用户名是创建了, 但是密码还是没有
ps: 其实我是在用vagrant, vagrant是默认用户名想换成ubuntu
「パスワードがまだありません」ということは、パスワード「ubuntu」を入力したときに認証に失敗したということでしょうか?それともシャドウファイルにubuntuレコードがまったくないのでしょうか?
これが最初のものだと思います (検証に失敗しました)。シャドウ ファイル内のパスワードは sha1() によって生成されたものではないようです。このメソッドをどこで見たのかわかりません。
私が考えた解決策は次のとおりです:
パペットクラスのシャドウファイルからコピーしたパスワードを使用します最初に、useradd、passswdを使用してターミナルでユーザーを作成し、図に示すようにパスワードをubuntuに設定します:
リーリー bash スクリプトを作成し、expect および passwd コマンドを使用して新しいユーザーのパスワードを設定します次に、シャドウ ファイルに移動し、暗号化されたパスワードをコピーし、次のパペット コードを使用してユーザーを作成します:
passwd コマンドは標準入力から直接パスワードを受け取るため、passwd ubuntu ubuntu、したがって、回避策は、bash シェルを自分で作成することです (set_passwd.sh という名前であると仮定します)。このシェル スクリプトはコマンド ラインからプレーンテキストのパスワードを受け取り、expect を使用してそれを passwd コマンドに送信します
リーリー。 このようにして、Puppet スクリプトは次のようになります: