2016-04-05 5 views
0

Вот что я в конечном итоге пытаюсь достичь. Я хочу иметь многоуровневую систему AMI в AWS с Foundation-> Base-> Specialized Base-> Application.Установить пакеты в Ansible условно

Я ищу, чтобы испечь как можно больше конфигурации, как я могу, в этих ОИМ. Инструменты, которые я использую для этого, это Jenkins, Packer и Ansible.

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

{ role: <<package_name>>, when: "{{ lookup('env', 'PROD') }}" } 

Но это касается главной машины, а не цели AWS. Я пытаюсь переоценить свой процесс здесь и хочу узнать, есть ли у кого-то лучшее предложение о том, как ограничить установку определенных пакетов на определенные компьютеры. Я знаю, что я мог бы создать производственную базу и нерабочую базу, но это удвоит все последующие AMI, которые у меня есть, и я стараюсь избегать этого.

+0

Неверный вопрос на голове, какой пакет вы хотите приобрести, но не в другом месте вашего трубопровода? Это не ограничивает эффективность вашего трубопровода? И есть ли причина не устанавливать его вне производства? – ydaetskcoR

+0

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

ответ

1

Согласно documentation, {{ ansible_env.SOME_VARIABLE }} должен работать.

+0

Спасибо. Итак, теперь я должен выяснить, почему мой скрипт Packer не правильно устанавливает переменную. Это тема другого вопроса. :) –

 Смежные вопросы

  • Нет связанных вопросов^_^