Copie el archivo del nodo del cliente chef a la estación de trabajo
Me gustaría saber cómo transferir un archivo desde un nodo cliente a una máquina remota. He comprobado si hay algún recurso disponible para hacer esto. Lo más cercano que encontré esremote_file
, pero está recuperando un archivo desde una ubicación remota y lo transfiere al nodo cliente.
Así que probé otra opción escribiendo un script de bash que ejecutará un scp automatizado. Pero no puedo copiar el archivo, pero el chef-cliente estaba funcionando bien sin mostrar ningún error.
Aquí está mi script para copiar el archivo:
#!/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
He copiado este script en micookbook's
templates
directorio comoautomatecopy.erb
y luego endefault.rb
, Tengo el siguiente 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
Aquí, el cliente-chef se ejecuta correctamente, pero el archivo no se copió en la máquina de mi estación de trabajo. Una cosa más es que, cuando inicié sesión en mi nodo cliente y ejecuté el script desde allí, está funcionando. Entonces, ¿por qué el chef no lo hace?
Ayúdeme a resolver este problema sugiriendo qué puede estar mal o si hay algún recurso de chef integrado que pueda usarse para copiar archivos del cliente a la estación de trabajo.
P.S: Tanto la estación de trabajo como el nodo cliente ejecutaban Ubuntu 12.04. Gracias por adelantado.