Когда инфраструктура-код (IAC) взлетел и стал популярной, она считалась иначе, чем код приложения. Причина в том, что разные типы инженеров использовали IAC. Системные администраторы, ИТ -специалисты и инженеры по инфраструктуре использовали его в начале. Сегодня вы видите, что все используют IAC — инфраструктурные профессионалы, разработчики и т. Д.
Теперь, когда он используется разработчиками, понимание и важность тестирования становятся известны. Почему? Поскольку разработчики привыкли к тестированию кода, а в конце дня код — это код. Весь код должен быть проверен, независимо от его использования.
В этом сообщении вы узнаете о том, почему вы должны тестировать IAC, лучшие платформы для начала, и введение в один из самых популярных инструментов IAC сегодня.
Зачем тестировать?
Понимание результатов любого фрагмента кода имеет решающее значение для инженеров и предприятий. Подумайте об этом, как молоко. Если вы пойдете в магазин и купите немного молока, вы ожидаете увидеть срок годности. Эта дата истечения помогает вам понять результат покупки молока (как долго вы должны его пить, как долго оно будет хорошо оставаться и т. Д.).
С кодом, зная, работает ли это так, как вы ожидаете, или он будет «истекать» в какой -то момент (библиотеки больше не используются, функции, вызванные изменениями, ошибки из -за того, что они снимают старые зависимости и т. Д.) Разница между успешными сборками 99% случаев или неудачными сборками/развертываниями 99% случаев и не понимая почему. Письмовые тесты позволяют вам (надеюсь) знать, какие негативные последствия могут произойти до того, как они произойдут, если код работает так, как вы ожидаете, и если создаются надлежащие ресурсы. То же самое относится и к коду приложения, коду инфраструктуры, кода автоматизации или сценариев.
Вы можете думать про себя Я написал код, запустил его локально и проверил, так что я знаю, что он работает . Это правда, но задайте себе этот вопрос — допустим, вы совершаете этот код для управления источником (который вы должны), кто -то в вашей команде снимает репо, вносит изменение и отталкивает код обратно к управлению источником. Как узнать, что код все еще работает? Еще один вопрос, который вы можете задать себе; Если вы используете библиотеки, модули и зависимости в своем коде, это означает, что вы используете чужой код внутри своего для различных типов функциональности. Как узнать, что библиотека/модуль/зависимость всегда будет выполнять так, как вы ожидаете?
Платформы тестирования
- чеквов — https://github.com/bridgecrewio/checkov/
- tflint — https://github.com/terraform-linters/
- Terratest — Terratest | Автоматизированные тесты для вашего кода инфраструктуры. (Gruntwork.io)
- терраскан — https://github.com/cesar-rodriguez/terrascan (Нет поддержки TF 0,13 в настоящее время)
- Встроенное интеграционное тестирование в Terraform
Checkov, созданный Bridgecrew, является способом реализации политики как кода для Terraform. Это одни из самых популярных инструментов тестирования МАК. Terratest, который позволяет вам писать тесты на единицу/макета/интеграции через GO (Golang), был создан Gruntwork, которая является организацией DevOps как услуги. Один из соучредителей также написал книгу под названием Terraform Up & Running, которая очень популярна в сообществе. TFLINT-это популярный инструмент с открытым исходным кодом для тестирования кода Terraform с точки зрения ливней. Terrascan, созданный Accurics, является статическим анализатором кода (например, Sonarqube) для кода Terraform. Наконец, есть встроенное тестирование интеграции через Terraform. Это все еще довольно новое на момент написания статьи и все еще находится в бета -версии.
Начало работы с Checkov
В этом разделе вы узнаете, как начать работу с Checkov, чтобы начать реализацию политики как код для кода Terraform.
Чтобы начать, вам понадобится:
- Код терраформ. Если у вас их нет, вы можете клонировать и использовать это репо.
Pip
Установлен, который является менеджером пакетов Pythons.
Первое, что вам нужно сделать, это установить Checkov с PIP, выполнив команду ниже:
pip3 install checkov
Затем измените каталог ( CD
), где вы хранили код Terraform. Вы должны убедиться, что находитесь в том же каталоге, где находятся ваши ресурсы Terraform, как ваш [main.tf] (http://main.tf)
файл.
После того, как вы находитесь в правильном каталоге, вы можете запустить тест, используя следующую команду:
checkov -d .
Вы увидите вывод, аналогичный приведению скриншота, показывающего, какие тесты прошли, провалились и методы восстановления.
Оригинал: «https://dev.to/thenjdevopsguy/testing-terraform-the-right-way-101»