Copiar arquivo do nó cliente do chef para a estação de trabalho
Eu gostaria de saber como transferir um arquivo de um nó cliente para uma máquina remota. Eu verifiquei se há algum recurso disponível para fazer isso. A coisa mais próxima que encontrei éremote_file
, mas está buscando um arquivo do local remoto e transferi-lo para o nó cliente.
Então eu tentei outra opção escrevendo um script que executaria um scp automatizado. Mas eu não posso copiar o arquivo, mas o chef-client estava funcionando bem sem mostrar nenhum erro.
Aqui está o meu script para copiar o arquivo:
#!/usr/bin/expect -f
# connect via scp
spawn scp "/tmp/testfile" [email protected]:/home/chef-ws/fileserver
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "password\r"
}
}
interact
Eu copiei este script na minhacookbook's
templates
diretório comoautomatecopy.erb
e depois emdefault.rb
, Eu tenho o seguinte código
template "/tmp/automatecopy" do
source "automatecopy.erb"
mode 0777
end
execute "automatecopy" do
command "/usr/bin/expect /tmp/automatecopy"
timeout 100
action :run
end
Aqui, o chef-cliente é executado com sucesso, mas o arquivo não foi copiado para a minha estação de trabalho. Mais uma coisa é que, quando eu entrei no meu nó cliente e executei o script de lá, está funcionando. Então, por que o chef não faz isso?
Por favor, ajude-me a resolver este problema, sugerindo o que pode estar errado ou há algum recurso construído no chef que pode ser usado para copiar arquivos do cliente para a estação de trabalho.
P.S: Minha estação de trabalho e o nó cliente estavam executando o Ubuntu 12.04. Desde já, obrigado.