Скопируйте файл с клиентского узла chef на рабочую станцию
Я хотел бы знать, как перенести файл с клиентского узла на удаленную машину. Я проверил, есть ли какой-либо ресурс для этого. Самое близкое, что я нашел, этоremote_file
, но он извлекает файл из удаленного местоположения и передает его клиентскому узлу.
Поэтому я попробовал другой вариант, написав скрипт bash, который будет выполнять автоматический scp. Но я не могу скопировать файл, но шеф-клиент работал нормально, без каких-либо ошибок.
Вот мой скрипт для копирования файла:
#!/usr/bin/expect -f
# connect via scp
spawn scp "/tmp/testfile" chef-ws@10.232.110.113:/home/chef-ws/fileserver
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "password\r"
}
}
interact
Я скопировал этот скрипт в мойcookbook's
templates
каталог какautomatecopy.erb
а затем вdefault.rb
У меня есть следующий код
template "/tmp/automatecopy" do
source "automatecopy.erb"
mode 0777
end
execute "automatecopy" do
command "/usr/bin/expect /tmp/automatecopy"
timeout 100
action :run
end
Здесь chef-клиент работает успешно, но файл не был скопирован на мою рабочую станцию. Еще одна вещь состоит в том, что, когда я вошел в свой клиентский узел и запустил скрипт оттуда, он работает. Так почему же шеф-повар не справился?
Пожалуйста, помогите мне решить эту проблему, предложив, что может быть не так или есть какой-то встроенный ресурс chef, который можно использовать для копирования файлов с клиента на рабочую станцию.
П.С .: На моей рабочей станции и клиентском узле работала Ubuntu 12.04. Заранее спасибо.