Назад | Перейти на главную страницу

Как я могу получить конфигурацию, сгенерированную Puppet, для включения внутренних имен хостов других экземпляров ec2 в мой стек CloudFormation?

У меня есть стек, сгенерированный AWS CloudFormation, который включает экземпляр EC2 (под управлением Ubuntu 14.04) и экземпляр RDS (база данных). Оба они находятся внутри VPC, который включает в себя мастера марионеток (не как часть стека формирования облака):

----------------- VPC --------------------
+-----+       +-----+    +---------------+
| EC2 | <---> | RDS |    | Puppet master |
+-----+       +-----+    +---------------+

Я хочу куколизировать узел EC2, написав конфигурацию для веб-сервера и приложения, включая информацию о соединении с БД, часть которой является внутренним именем хоста экземпляра RDS.

Вопрос в том, как я могу заставить puppetmaster скомпилировать шаблон для конфигурации приложения, если ему нужно знать внутреннее имя хоста узла RDS.

Я новичок в большинстве этих технологий, особенно в CloudFormation и Puppet. До сих пор я думал о нескольких решениях, но хотел получить некоторые рекомендации и задавался вопросом, не упустил ли я что-то.

Если вы можете создать сценарий (на главном сервере Puppet), который будет печатать имя (вероятно, через вызовы интерфейса командной строки AWS), вы можете использовать сгенерировать функцию использовать это имя в манифестах и ​​шаблонах Puppet.

Вы можете добавить этот звонок прямо в свой site.pp файл.

$rds_internal_name = generate('/usr/local/sbin/get-rds-internal-name')