Kopieren Sie die Datei vom Chef Client-Knoten auf die Workstation
Ich möchte wissen, wie eine Datei von einem Clientknoten auf einen Remote-Computer übertragen wird. Ich habe geprüft, ob hierfür Ressourcen zur Verfügung stehen. Das nächste, was ich gefunden habe, istremote_file
, aber es ruft eine Datei von einem entfernten Ort ab und überträgt sie auf den Clientknoten.
Also habe ich eine andere Option ausprobiert, indem ich ein Bash-Skript geschrieben habe, das ein automatisiertes scp ausführt. Aber ich kann die Datei nicht kopieren, aber der Chef-Client lief einwandfrei, ohne Fehler anzuzeigen.
Hier ist mein Skript zum Kopieren der Datei:
#!/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
Ich habe dieses Skript in meine kopiertcookbook's
templates
Verzeichnis alsautomatecopy.erb
und dann indefault.rb
Ich habe den folgenden Code
template "/tmp/automatecopy" do
source "automatecopy.erb"
mode 0777
end
execute "automatecopy" do
command "/usr/bin/expect /tmp/automatecopy"
timeout 100
action :run
end
Hier läuft der Chef-Client erfolgreich, aber die Datei wurde nicht auf meinen Arbeitsplatzrechner kopiert. Eine weitere Sache ist, dass, wenn ich mich bei meinem Client-Knoten angemeldet und das Skript von dort ausgeführt habe, es funktioniert. Warum scheitert der Koch dann?
Bitte helfen Sie mir, dieses Problem zu lösen, indem Sie vorschlagen, was falsch sein kann oder welche eingebauten Kochressourcen zum Kopieren von Dateien vom Client auf die Workstation verwendet werden können.
P.S: Auf meiner Workstation und meinem Client-Knoten lief Ubuntu 12.04. Danke im Voraus.