problemas especificando a senha do usuário com o fantoche (+ vagrant) em precise32 virtualbox

1

Estou usando o vagrant + puppet para provisionar um servidor% VirtualBox de% co_de para adicionar usuários programaticamente. Eu tenho tudo funcionando, mas não consigo definir a senha automaticamente pelo fantoche. Aqui está meu roteiro de fantoches:

package { "ruby-shadow":
  name => "libshadow-ruby1.8",
  ensure => installed,
}
user { 'biff':
  home       => '/home/biff',
  shell      => '/bin/bash',
  uid        => 201,
  managehome => 'true',
  password   => '$6$kxHLEuHW$zHRAZcVLu0XzukqU79bT.PEg./FfcloJiWmlH2rf.Lmnyke7uAaHkQTXvErqikWeraSiHFBwDSMDV4hRImqjr7.',
  groups     => ['sudo', ],
  requires   => Package['ruby-shadow'],
}

Para obter o hash precise32 , eu entrei na máquina virtual, executei $6$kx... para definir a senha com o sistema e copiei a senha com hash (segundo campo em sudo passwd biff ) no script de fantoches acima. Depois de remover o usuário para redefinir a senha e executar novamente o script de marionete, a senha não está definida e não consigo fazer login:

[precise32]$ sudo grep biff /etc/shadow
biff:!:15862:0:99999:7:::

Na verdade, parece que o usuário /etc/shadow foi bloqueado do sistema ( / etc / explicação de sombra ). Eu tenho o hash correto definido como a variável biff ? Como você descobre o que é isso?

Parece que uma abordagem pode ser executar password após o fato de definir a senha , mas isso parece ser contra todo o ponto de usar o fantoche em primeiro lugar. Alguma idéia?

    
por dino 07.06.2013 / 00:02

2 respostas

0

A caixa vagrant que você está usando pode estar usando bibliotecas de ruby em /opt/vagrant_ruby/lib/1.8/ e não usando nenhuma biblioteca Ruby instalada pelo sistema. Verifique se sua caixa vagante tem um arquivo em /etc/profile.d/vagrant_ruby.sh . Em caso afirmativo, é isso que está substituindo qual comando puppet usar, que determina quais bibliotecas ruby usar. Tente remover esse arquivo;) Se as coisas ainda funcionarem (depois de instalar o fantoche e libshadow-ruby no sistema), remonte a caixa com vagrant package e reutilize-a como sua caixa precise32 .

Tenho certeza de que existem muitas boas razões para usr /opt/vagrant_ruby , mas falta uma biblioteca muito importante e torna um pouco confuso ao usar outras ferramentas dentro da caixa que puxam bibliotecas ruby.

    
por 10.07.2013 / 17:44
0

O Puppet não conseguirá definir a senha, a menos que libshadow gem está presente, pois isso é necessário para trabalhar com sombra senhas. IIRC há uma mensagem de erro sobre o provedor. libshadow requer mkmf.rb a ser instalado, que pode ser encontrado nos pacotes libruby2.0, ruby1.9.1-dev ou ruby1.8-dev (dependendo da sua versão em ruby)

Eu tenho isso no meu manifesto: package { "ruby1.9.1-dev": ensure => installed; "libshadow": ensure => installed, require => Package['ruby1.9.1-dev'], provider => gem; }

    
por 25.09.2014 / 12:23