Поиск по сайту:

Как использовать интерфейс командной строки Terraform (CLI) в Ubuntu


На этой странице

  1. Необходимое условие
  2. Клонирование основного кода
  3. Использование интерфейса командной строки (CLI) Terraform для создания вашей первой инфраструктуры
  4. Заключение

Terraform — это платформа для создания и настройки инфраструктуры в виде кода с интерфейсом командной строки и языком DSL. Terraform может управлять существующими и популярными поставщиками услуг, а также собственными решениями для создания и настройки полноценных распределенных центров обработки данных.

Интерфейс командной строки Terraform (CLI) позволяет использовать Terraform без необходимости писать какой-либо код или файлы конфигурации. Это идеальный способ прототипировать изменения инфраструктуры вместе с вашей командой перед написанием кода, развертыванием конфигураций локально на вашем компьютере или внедрением их в производство. Интерфейс командной строки основан на формате файлов terraformspec, созданном для этой цели сторонними организациями, такими как HashiCorp Nomad CLI Toolkit.

Инструментарий CLI реализует JavaScript DSL для определения инфраструктуры и использует один и тот же формат конфигурации как в Terraform, так и в CLI. Инструментарий CLI также предоставляет команды для создания шаблонов инфраструктуры, объединения компонентов инфраструктуры в полные решения и управления изменениями. Весь рабочий процесс Terraform управляется функциями без сохранения состояния, которые определены в коде и выполняются Terraform каждый раз, когда вы вносите изменения. Это позволяет вам думать о вашей инфраструктуре как о единой конструкции, которую можно легко изменить во время выполнения без перезагрузки вашей конфигурации или изменения вашей кодовой базы.

Ряд ИТ-специалистов и компаний используют интерфейс командной строки Terraform для управления и даже создания новой инфраструктуры или новых облачных инфраструктур. Интерфейс командной строки terraform может предоставить более надежный метод для автоматизации изменений, выполнение которых вручную заняло бы слишком много времени. Это мощный инструмент для управления инфраструктурой.

Легко понять, почему Terraform является одним из самых популярных в мире решений для предоставления облачных услуг с открытым исходным кодом. Это инструмент, используемый людьми Linux, такими как вы!

Внутри вы найдете полные объяснения и примеры наиболее часто используемых команд Terraform CLI, которые были специально отобраны, чтобы дать вам практический опыт работы с самыми мощными функциями Terraform.

Предпосылка

  • Чтобы следовать этой статье, у вас должны быть:
  • Некоторые базовые знания о возможностях и функциях Terraform.
  • Компьютер Linux. В этой демонстрации используется Ubuntu 20.04 LTS, но подойдет любой дистрибутив Linux.
  • Terraform и докер установлены на машине.

Клонирование основного кода

Теперь, когда вы позаботились о предварительных условиях, вы готовы приступить к клонированию основного кода для использования CLI Terraform.

1. Запустите приведенную ниже команду apt install, чтобы установить git в вашей системе. Git — это распределенная система контроля версий с открытым исходным кодом, предназначенная для быстрой и эффективной обработки любых проектов, от небольших до очень крупных. Вы будете использовать git для клонирования шаблона проекта интерфейса командной строки terraform с github.com. Затем вы проверите правильную версию командной строки terraform для этой демонстрации.

sudo apt install git -y

2. Запустите приведенную ниже команду git clone, чтобы клонировать шаблон проекта командной строки terraform в текущий каталог.

git clone https://github.com/howtoforge-com/terraform-cli.git

3. Перейдите в только что клонированный каталог terraform-cli и откройте файл main.tf в вашем любимом текстовом редакторе (vim, emacs, nano и т. д.). Файл main.tf — это точка входа вашего проекта в интерфейс командной строки terraform (Cli). Когда вы запускаете команду terraform, она использует файл main.tf в качестве входных данных для инструкций по созданию вашей инфраструктуры.

cd terraform-cli && sudo nano main.tf

Вы получите следующий вывод.

  • Раздел terraform {  } файла main.tf ничего не делает, кроме установки поставщика докеров как required_provider. Чтобы Terraform мог управлять вашей инфраструктурой Docker, у вас должен быть настроен поставщик докеров.

  • Блок кода ресурса \docker_image\ \nginx\ { демонстрирует использование интерфейса командной строки terraform путем создания нового ресурса с именем docker_image. В следующей строке образ docker используется для создания ресурса с именем nginx. Вы можете сделать вывод, что это будет использоваться для управления вашим контейнером Docker. Следующая строка задает имя вашего образа докера как nginx:latest. Keep_locally=false предотвращает локальное кэширование изображения на вашем компьютере и является хорошей идеей для предотвращения дублирования загрузок.

  • Ресурс \docker_container\ \nginx\ { демонстрирует использование интерфейса командной строки terraform путем создания нового ресурса с именем docker_container. В следующей строке используется docker_container для создания ресурса с именем nginx. Это будет использоваться для управления сопоставлением портов контейнеров Docker. Следующая строка задает имя вашего док-контейнера в качестве руководства и, наконец, демонстрирует, как сопоставить порты 8000 и 80 на вашем хост-компьютере в вашем док-контейнере с помощью блока портов.

Использование интерфейса командной строки Terraform (CLI) для создания вашей первой инфраструктуры

Теперь, когда вы клонировали шаблон проекта terraform, вы можете создать свою первую инфраструктуру. Вы будете использовать интерфейс командной строки Terraform для создания инфраструктуры с использованием файла main.tf вашего проекта. Вы создадите док-контейнер и сопоставите порт с вашего хост-компьютера с док-контейнером.

1. Сначала запустите команду terraform init, чтобы инициализировать рабочий каталог. Команда terraform init инициализирует ваш рабочий каталог и загружает все необходимые плагины, необходимые Terraform для управления вашей инфраструктурой. Рабочий каталог — это каталог, в котором вы будете использовать команду terraform для управления своей инфраструктурой. После инициализации этот каталог содержит файл main.tf и может содержать несколько вспомогательных файлов.

terraform init

После успешного запуска команды инициализации terraform вы получите следующий вывод.

2. Затем запустите команду terraform fmt, чтобы автоматически отформатировать файл main.tf для удобочитаемости и согласованности. Команда terraform fmt переформатирует ваш файл main.tf для удобочитаемости и согласованности. Это хорошая практика, поскольку она облегчит чтение ваших файлов для вас и других.

terraform fmt

Если команда terraform fmt изменила ваши файлы main.tf  , она распечатает имя переформатированного файла. В этой демонстрации вывод пуст, потому что файл main.tf уже был отформатирован в соответствии с требованиями Terraforms, как показано ниже.

3. Запустите команду terraform validate, чтобы убедиться, что ваша инфраструктура будет построена должным образом. Команда terraform validate — это проверка безопасности, позволяющая убедиться, что ваша инфраструктура может быть построена так, как задумано.

terraform validate

Если ошибок нет, вы получите вывод, аналогичный приведенному ниже, указывающий, что все готово для создания вашей первой инфраструктуры.

4. Запустите команду terraform plan, чтобы увидеть, что Terraform сделает для построения инфраструктуры. Команда terraform plan — это предварительный просмотр того, что Terraform планирует построить, и это не то же самое, что terraform apply.

terraform plan

Команда terraform plan выводит следующую структуру, показывающую, что она создаст экземпляр ресурса docker_container с именем nginx и ресурс docker_image с именем tutorial.

5. Запустите команду terraform apply, чтобы применить изменения, предварительно просмотренные с помощью плана terraform. Команда terraform apply построит вашу инфраструктуру. Команда terraform apply создаст все ресурсы, описанные в файле конфигурации Terraform main.tf.

Эта команда будет повторно использовать оценку переменных, ограничений и сопоставлений из команды terraform plan для создания наиболее эффективного возможного плана. Любые дополнительные параметры, указанные в командной строке с применением terraform, будут использоваться при выполнении команды применения. Введите yes и нажмите Enter, когда вас попросят ввести значение.

terraform apply

После успешного выполнения команды terraform apply вы увидите сообщение о том, что ваша инфраструктура успешно построена, как показано ниже. Когда это происходит, это означает, что ваша инфраструктура была построена так, как предполагалось, и соответствует вашему файлу конфигурации.

6. Запустите команду ls, чтобы получить список всех файлов в вашем рабочем каталоге. Вы увидите новый файл с именем terraform.tfstate, как показано ниже. Файл с таким именем создается для отслеживания изменений в вашей инфраструктуре. Команда terraform plan сохраняет изменения, которые будут применены при запуске terraform apply, в промежуточном файле с именем .tfstate. Файл состояния содержит полное состояние инфраструктуры, как ее видит Terraform. Этот файл требуется для применения любой конфигурации и должен передаваться при внесении изменений, даже если цель находится в пределах одного и того же провайдера.

ls

7. Процесс сборки завершен. Запустите команду terraform destroy, чтобы разрушить только что построенную инфраструктуру. Введите да и нажмите Enter, когда вас попросят ввести значение. Команда terraform destroy удалит все ресурсы, созданные этой демонстрацией. Команда terraform destroy удалит все ресурсы, описанные в файле конфигурации Terraform main.tf. После того, как ресурсы уничтожены, они не могут быть восстановлены.

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

 terraform destroy

Заключение

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

Теперь у вас есть инструменты для создания собственной инфраструктуры. Вы можете легко управлять широким спектром ресурсов благодаря всеобъемлющему и выразительному языку конфигурации Terraforms.

Вы можете использовать свои новые знания в области управления инфраструктурой, которые уже используются для контейнеров Docker, Kubernetes и OpenStack, чтобы повысить эффективность и согласованность вашей практики использования инфраструктуры как кода.