По мотивам evtuhovich.ru
0. Предварительный этап
Убедитесь, что у вас установлен ruby-gem
1. Для начала установим knife-solo:
gem install knife-solo
2. Теперь создадим новую поваренную книгу в папке COOKBOOKNAME:
knife solo init COOKBOOKNAME
3. Подготавливаем машину, которая будет получать наши поваренные книги (разумеется, проще будет, если вы уже скопировали туда свой ключ (ssh-copy-id ubuntu@myhostname)):
cd COOKBOOKNAME
knife solo prepare ubuntu@myhostname
После этого в папке COOKBOOKNAME\nodes появляется json-файл конфигурации машины, в котором нет ничего, кроме адреса (или имени) машины:
{
"run_list": [
],
"automatic": {
"ipaddress": "myhostname"
}
}
4. Начинаем пользоваться knife-solo, приведем json машины к следующему виду:
Создаем рецепт:
mkdir -p cookbooks/helloworld/recipes # создаем папку с именем рецепта
touch cookbooks/helloworld/recipes/default.rb # создаем пустой рецепт
В файл default.rb вставляем текст следующего содержания:
file "/tmp/helloworld.txt" do
owner "root"
group "root"
mode 00544
action :create
content "Hello, Implementor!"
end
Здесь мы пишем рецепт на создание нового файлика в папке /tmp с указанным содержанием, кастомными правами и владельцем файла.
Приводим файл машины (nodes/myhostname.json) к следующему виду:
{
"run_list": [
"recipe[helloworld]" # добавляем к запуску наш рецепт
],
"automatic": {
"ipaddress": "myhostname"
}
}
5. И варим:
knife solo cook myhostname
На этом все.
Дополнительные ссылки
- Разумеется, больше информации на оф. сайте.
- Небольшим подспорьем являлся репозиторий macovsky.
- Блог alxschwarz.
- Немного толковой информации на Habrahabr.