Есть ли способ запустить скрипт внутри уже существующей инфраструктуры, используя terraform - PullRequest
0 голосов
/ 06 января 2020

Я хочу запустить скрипт с использованием terraform внутри существующего экземпляра в любом предварительно созданном облаке. Экземпляр был создан вручную, есть ли способ добавить sh мой скрипт в этот экземпляр и запустить его с помощью terraform? если да, то как я могу подключиться к экземпляру, используя terraform и pu sh мой скрипт и запустить его?

Ответы [ 3 ]

1 голос
/ 06 января 2020

Я считаю, что ansible - лучший вариант для достижения этой цели.

См. Пример, приведенный здесь - https://docs.ansible.com/ansible/latest/modules/script_module.html

0 голосов
/ 08 января 2020

Основная задача Terraform - создавать, обновлять и уничтожать долгоживущие объекты инфраструктуры. Обычно это не касается программного обеспечения, запущенного в вычислительных экземплярах, которые оно развертывает. Вместо этого он обычно ожидает, что каждый развертываемый объект будет вести себя как своего рода специализированное «устройство», либо как управляемая служба, предоставляемая вашим поставщиком облачных услуг, либо потому, что вы подготовили собственный образ машины вне Terraform, предназначенный для запуска. соответствующая рабочая нагрузка сразу после загрузки системы. Затем Terraform просто предоставляет системе любую информацию о конфигурации, необходимую для поиска и взаимодействия с окружающей инфраструктурой.

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

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

0 голосов
/ 06 января 2020
  1. Создайте файл .tf и опишите ваш уже существующий ресурс (например, VM) там
  2. Импортируйте существующую вещь, используя terraform import
  3. Если это виртуальная машина затем добавляет ваш сценарий на удаленный компьютер, используя file Provider, и запускает его, используя remote-exe c - оба шага описаны в файле Terraform, никаких изменений вручную не требуется
  4. Запустите terraform plan, чтобы увидеть, если ожидаемые изменения в порядке, тогда terraform apply, если план был в порядке
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...