Skopiuj plik z węzła klienta szefa kuchni do stacji roboczej
Chciałbym wiedzieć, jak przenieść plik z węzła klienta do komputera zdalnego. Sprawdziłem, czy dostępne są jakieś zasoby, aby to zrobić. Najbliższą rzeczą, jaką znalazłem, jestremote_file
, ale pobiera plik z lokalizacji zdalnej i przesyła go do węzła klienta.
Spróbowałem więc innej opcji, pisząc skrypt basha, który wykona automatyczny scp. Ale nie mogę skopiować pliku, ale klient kucharza działał bez żadnych błędów.
Oto mój skrypt do kopiowania pliku:
#!/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
Skopiowałem ten skrypt w moimcookbook's
templates
katalog jakoautomatecopy.erb
a potem wdefault.rb
, Mam następujący kod
template "/tmp/automatecopy" do
source "automatecopy.erb"
mode 0777
end
execute "automatecopy" do
command "/usr/bin/expect /tmp/automatecopy"
timeout 100
action :run
end
Tutaj klient szefa kuchni działa pomyślnie, ale plik nie został skopiowany na moją stację roboczą. Jeszcze jedna rzecz, kiedy zalogowałem się do mojego węzła klienta i uruchomiłem skrypt z tego miejsca, jego działanie. Dlaczego więc szef kuchni nie robi tego?
Pomóż mi rozwiązać ten problem, sugerując, co może być nie tak lub czy istnieje jakiś wbudowany zasób szefa kuchni, który można wykorzystać do kopiowania plików z klienta na stację roboczą.
P.S: Zarówno moja stacja robocza, jak i węzeł klienta pracowały na Ubuntu 12.04. Z góry dziękuję.