已经试过在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
Quand vous dites "il n'y a toujours pas de mot de passe", voulez-vous dire que la vérification a échoué lorsque vous avez entré le mot de passe "ubuntu" ? Ou n'y a-t-il aucun enregistrement Ubuntu dans le fichier fantôme ?
Je suppose que c'est le premier (échec de la vérification). Le mot de passe dans le fichier shadow ne semble pas être généré par sha1().
Les solutions auxquelles j'ai pensé sont :
Utilisez le mot de passe copié à partir du fichier shadow dans la classe PuppetCréez d'abord un utilisateur dans le terminal en utilisant useradd, passswd et définissez le mot de passe sur Ubuntu, comme indiqué dans le chiffre :

Écrivez un script bash et utilisez les commandes expect et passwd pour définir le mot de passe du nouvel utilisateurAccédez au fichier fantôme et copiez le mot de passe crypté, puis utilisez ce code marionnette pour créer un utilisateur :
Étant donné que la commande passwd reçoit le mot de passe directement de stdin, elle ne peut pas transmettre la ligne de commande paramètres tels que passwd ubuntu ubuntu Pour définir le mot de passe, la solution consiste à écrire vous-même un shell bash (en supposant qu'il s'appelle set_passwd.sh). Ce script shell reçoit le mot de passe en clair de la ligne de commande, puis utilise expect pour l'envoyer à. la commande passwd
De cette façon, votre script de marionnette est le suivant :