puppet

A
На сайте с 14.11.2011
Offline
34
alw
#11
myhand:
Дык непонятно тогда:
- Что тут обсуждать-то?

Можно-ли? Ну, естественно - можно. Делают-ли - да, делают (см. примеры в вики).

Ну тривиальный случай понятен.

Но вот когда есть n хостов по m виртуалхостов на каждом - хочется данные разнести с логикой.

Что бы в отдельном текстовом/xm/json/и т.д. файле описать какие у нас есть виртуалки на каких хостах, а не тащить эту информацию в паппетовый рецепт.

alw добавил 18.11.2011 в 15:33

Andreyka:
Ок, ну давай по центосу:
Содержимое fileserver.conf:

У меня так:

fileserver.conf:


[config]
path /etc/puppet
allow xxx.xxx.xxx.xxx/xx

ну и в рецепте


file {"/path/to/file_name":
source => "puppet:///modules/module_name/file_name",
ensure => present
}

прекрасно работает.

Администрирование linux, windows (/ru/forum/671883) icq 4831950
M
На сайте с 16.09.2009
Offline
278
#12
Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
A
На сайте с 14.11.2011
Offline
34
alw
#13

Симпатично, но малость не то.

Все равно для каждой ноды надо перечислять список виртуалхостов на ней в nodes.pp, и при добавлении очередного виртуалхоста править в двух местах.

А в идеале хотелось бы получить в таком виде:

node.pp:


node /^mod-proxy*.xxxxxxxx.xxx/ { include node_mod-proxy }


Ну и отдельный файлик вида

www.virtual.host1 mod-proxy1.domain
www.virtual.host2 mod-proxy1.domain
www.virtual.host3 mod-proxy2.domain
www.virtual.host4 mod-proxy2.domain

и соответственно первые два виртуалхоста прописались на mod-proxy1, вторые - на втором.
Соответственно ищу паттерн, с помощью которого на сервере такие структурные данные можно было бы разбирать.

По всему похоже что hiera должно быть то что надо, но пока не осиляю (
M
На сайте с 16.09.2009
Offline
278
#14
alw:
прекрасно работает

Ну а у меня, соответственно - андрейкин рецепт "прекрасно работает" с изменениями, которые я указал выше.

Полагаю, кто-то просто ниасилил ;)

alw:
Все равно для каждой ноды надо перечислять список виртуалхостов на ней в nodes.pp, и при добавлении очередного виртуалхоста править в двух местах.

Вполне логично: список виртуалхостов на сервере + настройки каждого.

alw:
Соответственно ищу паттерн, с помощью которого на сервере такие структурные данные можно было бы разбирать.

Не думаю, что проблема в этом - она в постановке задачи. Кстати, у Вас тоже получается "два места". Или я что-то пропустил?

A
На сайте с 14.11.2011
Offline
34
alw
#15
myhand:
Ну а у меня, соответственно - андрейкин рецепт "прекрасно работает" с изменениями, которые я указал выше.

Ну и такой вариант вполне имеет право на существование, почему нет.

Хотя мне кажется более логичным файлы раскладывать рядом с рецептами, нежели все в одну кучу. Но как обычно, дело вкуса.


Полагаю, кто-то просто ниасилил ;)

очень может быть )


Вполне логично: список виртуалхостов на сервере + настройки каждого.

Не совсем. В файлике nodes.pp мы описываем какие в принципе у нас хосты есть в системе.

Говорим что вот эти вот хосты - они модпрокси, вот та группа - sql сервера, третья - билд сервера и т.д. Само собой один и тот же сервер теоретически может исполнять разные роли.

И отдельно имеем файлик со списком виртуалхостов, где указано какой из них на каком мод-прокси сервере держать.


Не думаю, что проблема в этом - она в постановке задачи.

Переформулирую.

Хочется придумать паттерн для паппета, для создания конфигов для сервиса, могущего иметь несколько инстансов на каждом хосте, без описывания каждого инстанса в рецепте/описании ноды.


Кстати, у Вас тоже получается "два места". Или я что-то пропустил?

Ровно одно. При добавлении очередного виртуалхоста дописываем только в файл списка виртуалхостов.

Andreyka
На сайте с 19.02.2005
Offline
822
#16
myhand:
Дык непонятно тогда:
А allow - не осилил, или не упомянул просто?

Не упомянул как очевидную вещь.

Буду играть в очередной раз - попробую вариант alw.

Не стоит плодить сущности без необходимости
A
На сайте с 14.11.2011
Offline
34
alw
#17
Andreyka:
Не упомянул как очевидную вещь.
Буду играть в очередной раз - попробую вариант alw.

Еще до кучи, мне очень понравилось сочетание augeas+puppet, позволяет гибко редактировать конфиги, не перезаписывая их полностью. Если не видел - взгляни.

Andreyka
На сайте с 19.02.2005
Offline
822
#18
alw:

Переформулирую.
Хочется придумать паттерн для паппета, для создания конфигов для сервиса, могущего иметь несколько инстансов на каждом хосте, без описывания каждого инстанса в рецепте/описании ноды.

Иначе говоря нужен генератор конфигов?

A
На сайте с 14.11.2011
Offline
34
alw
#19

Ну в первом приближении - да. Но с условием что для одной ноды может быть более одного инстанса сервиса, и как следствие - более одного конфига.

M
На сайте с 16.09.2009
Offline
278
#20
Andreyka:
Буду играть в очередной раз - попробую вариант alw.

Попробуй сперва url чуток изменить, как я советовал. Секция files - это описание URI /files/. Так что указывать путь надо не от корня. RTFM.

alw:
Еще до кучи, мне очень понравилось сочетание augeas+puppet, позволяет гибко редактировать конфиги, не перезаписывая их полностью.

KISS. Это костыль - замена

sed -i 's/badone/goodone/' /etc/somefile

В условиях того, что файлики конфигурации можно сколь угодно мелко дробить (всякие /etc/daemon.d/*.conf) - лучше эту багогенерилку забыть.

Andreyka:
Иначе говоря нужен генератор конфигов?

Ему такой показали.

+ Разжевали ниже. Мне стало понятно что он хочет, но непонятно зачем.

alw:
Но с условием что для одной ноды может быть более одного инстанса сервиса, и как следствие - более одного конфига.

Этого Вам тоже оказалось недостаточно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий