Я решил написать рубиновый гем, чтобы разобрать файлы в 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
- пользователь (или логин)
- порт