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

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

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

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

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

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

  • Используйте UserData в шаблоне CloudFormation для предоставления доступа к этому доступным для экземпляра EC2, таким образом, он может добавить его к Facter на марионеточном агенте EC2. Это кажется неправильным, как узел EC2 сообщает марионетке о другой машине.
  • Используйте EC2 API на марионеточном ведущем устройстве, чтобы осмотреть узлы RDS в VPC и найти корректный (через тег, возможно?), но я не уверен, как заставить Марионетку называть API EC2 и вставлять значение от него в шаблон
3
задан 24 September 2014 в 22:12
1 ответ

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

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

$rds_internal_name = generate('/usr/local/sbin/get-rds-internal-name')
1
ответ дан 3 December 2019 в 07:28

Теги

Похожие вопросы