с одинаковым именем для хоста, роли (группы хостов) и кукбука (нечто среднее между ролью и плейбуком в ансибле)
при запуске шеф-клиента на конкретном хосте все эти списки помержатся в один и в кукбуке ты оперируешь уже "полным" списком для этого хоста
то есть условно в роли all я делаю массив packages = [tmux], в роли db - packages = [mysql, libmysqlclient], в описании хоста db01 - входящего в роль db - packages = [emacs]
и на фазе запуска шеф-клиента на db01 мне доступна переменная packages, содержащая [emacs, libmysqlclient, mysql, tmux]
и я могу сделать в кукбуке что-то вроде:
package packages do
action :install
end
таким образом я имею один кукбук для установки всех нужных пакетов, не размазывая это на много ролей/плейбуков
как это принято решать в ансибле?
У каждой роли - свой список пакетов. Нужные роли назначаются на группу хостов в конкретном play.
Обсуждают сегодня