Внедрение переменных GitLab CI в переменные Terraform - PullRequest
0 голосов
/ 05 июня 2019

У меня есть набор файлов Terraform и, в частности, один файл variables.tf, в котором хранятся мои переменные, такие как ключ доступа aws, токен доступа aws и т. Д. Теперь я хочу автоматизировать создание ресурса в AWS с помощью GitLab CI /CD.

Мой план следующий:

  1. Написать файл .gitlab-ci-yml

  2. Получить вызовы terraform вфайл .gitlab-ci.yml

Я знаю, что у меня могут быть секретные переменные окружения в GitLab, но я не уверен, как я могу вставить эти переменные в мои Terraform variables.tfфайл, который выглядит следующим образом!

# AWS Config

variable "aws_access_key" {
  default = "YOUR_ADMIN_ACCESS_KEY"
}

variable "aws_secret_key" {
  default = "YOUR_ADMIN_SECRET_KEY"
}

variable "aws_region" {
  default = "us-west-2"
}

В моем .gitlab-ci.yml у меня есть доступ к таким секретам:

- 'AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}' 
- 'AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}' 
- 'AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION}'

Как я могу передать его моемуСкрипты Terraform?Есть идеи?Мне нужно прочитать секреты из среды GitLab и передать их сценариям Terraform!

1 Ответ

1 голос
/ 06 июня 2019

Какой исполнитель вы используете для своих бегунов GitLab?

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

Если вы также установите пакет gettext на соответствующую машину / виртуальную машину, вы можете использовать тот же метод, который я описал в Ссылка на секреты gitlab в Terraform для исполнителя Docker.

Другая возможность может быть, что вы установили

job:
    stage: ...
    variables: 
        TF_VAR_SECRET1: ${GITLAB_SECRET}

или

job:
    stage: ...
    script:
        - export TF_VAR_SECRET1=${GITLAB_SECRET}

в вашей конфигурации задания CI и интерполируйте их. См. Получение переменной среды в конфигурации Terraform? , а также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...