Интеграция Chef-соло с Capistrano - PullRequest
5 голосов
/ 19 марта 2012

Есть ли альтернатива capistrano-chef gem для chef-solo? Главным образом, чтобы избежать определения серверной информации дважды.

Ответы [ 2 ]

5 голосов
/ 02 мая 2012

Я нашел что-то свежее и горячее по теме:

* 1004 полицейский инспектор *

Gemfile:

gem 'roundsman', :require => false

Capfile:

require 'roundsman/capistrano'

Подробнее см. В файле readme.

0 голосов
/ 19 марта 2012

Я решил написать рубиновый гем, чтобы разобрать файлы в nodes/*.json и преобразовать их в дружественные Capistrano адреса:

гем "Chef_Solo_Nodes"

Тогда, в файле развертывания cap:

require "Chef_Solo_Nodes"
role :app, *Chef_Solo_IPs('app')
role :db, *Chef_Solo_IPs('db')

Что эквивалентно:

role :app, "user@host:port", "xx.xx.xx.xx"
role :db, "xx.xx.xx.xx"

Каждый node/*.json файл может опционально определять атрибуты:

  • ipaddress
  • пользователь (или логин)
  • порт
...