Настройка AWS Step Function и Lambda с помощью Terraform и GitLab CI


Установите Terraform

  • Скачайте двоичный файл Terraform и распакуйте пакет.

  • Установите путь к terraform в местоположение разархивированного бинарного файла. Terraform запускается как один двоичный файл с именем terraform. Любые другие файлы из пакета можно смело удалять, и Terraform будет продолжать работать.

  • Проверьте установку с помощью команды terraform version в CLI.

Установите AWS CLI

  • Скачайте и запустите установщик AWS CLI MSI для Windows (64-bit):

  • Чтобы подтвердить установку, откройте меню Пуск, найдите cmd, чтобы открыть окно командной строки, и в командной строке используйте команду aws —version.

Постройте инфраструктуру

  • Создайте каталог для вашей конфигурации mkdir terraform.
  • Измените директорию и создайте файл main.tf.

  • Инициализируйте каталог командой terraform init.

  • Запустите terraform plan, чтобы узнать, какие изменения требуются для инфраструктуры.
  • Отформатируйте и проверьте конфигурацию
  • Примените конфигурацию с помощью команды terraform apply.

                      

Настройка Gitlab CI для Terraform

  • Создайте файл в корне вашего репозитория под названием .gitlab-ci.yml
  • Получите ID ключа доступа и секретный ключ доступа.
  • Установите переменные aws перейдите в — gitlab project → settings → CI/CD → Variables

        

Пример конвейера GitLab

stages:
  - validate
  - plan
  - apply
  - destroy
image:
  name: hashicorp/terraform:light
  entrypoint:
    - '/usr/bin/env'
    - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
before_script:
  - export AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}
  - export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
  - rm -rf .terraform
  - cd terraform/
  - terraform --version
  - terraform init

validate:
  stage: validate
  script:
    - terraform validate
  only:
    - branches

plan:
  stage: plan
  script:
    - terraform plan -out "planfile"
  dependencies:
    - validate
  artifacts:
    paths:
      - planfile

apply:
  stage: apply
  script:
    - terraform apply -input=false "planfile"
  dependencies:
    - plan
  when: manual
  only:
    - main

destroy:
  stage: destroy
  script:
    - echo "Destroying resources"
    - terraform destroy -state=$STATE --auto-approve
  dependencies:
    - apply
  when: manual
  only:
    refs:
      - main
Войдите в полноэкранный режим Выйти из полноэкранного режима

Образец кода terraform для лямбда- и степ-функции

Оцените статью
devanswers.ru
Добавить комментарий