Терраформ и Дженкинс - PullRequest
       7

Терраформ и Дженкинс

0 голосов
/ 29 апреля 2018

Ребята, я хочу автоматизировать terraform с помощью конвейера Jenkins. А у меня терраформ установлен на разные Вм и Дженкинс Также. Я знаю, что есть плагин Terraform. Но похоже, что Terraform Должен быть установлен в тот же виртуальный компьютер, что и Jenkins (или в / var / lib / jenkins / workspace) Есть ли способ сделать это? Пожалуйста, поделитесь своими предложениями.

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

Как правило, рекомендуется поддерживать чистоту вашей машины Jenkins, поэтому вам следует избегать установки на нее дополнительных пакетов, таких как Terraform. Лучшим подходом к решению этой проблемы было бы создание Dockerfile с вашим двоичным файлом Terraform и всеми необходимыми уже встроенными плагинами, тогда все, что вам нужно сделать в вашем конвейере Jenkins, - это собрать и запустить ваш докер Terraform.

Это пример такого Dockerfile:

FROM hashicorp/terraform:0.11.7
RUN apk add --no-cache bash python3 && \
    pip3 install --no-cache-dir awscli

RUN mkdir -p /plugins

# AWS provider
ENV AWS_VERSION=1.16.0
ENV AWS_SHA256SUM=1150a4095f18d02258d1d52e176b0d291274dee3b3f5511a9bc265a0ef65a948

RUN wget https://releases.hashicorp.com/terraform-provider-aws/${AWS_VERSION}/terraform-provider-aws_${AWS_VERSION}_linux_amd64.zip && \
    echo "${AWS_SHA256SUM}  terraform-provider-aws_${AWS_VERSION}_linux_amd64.zip" | sha256sum -c - && \
    unzip *.zip && \
    rm -f *.zip && \
    mv -v terraform-provider-aws_* /plugins/

COPY . /app
WORKDIR /app
ENTRYPOINT []

Документация Terraform также содержит раздел о лучших методах работы Terraform в CI: https://www.terraform.io/guides/running-terraform-in-automation.html

0 голосов
/ 22 февраля 2019

Я создал Global Shared Library awesome-jenkins-utils , с помощью которого вы можете использовать разные версии terraform одновременно в одном конвейере. Кроме того, вы можете легко сопоставить параметры сборки с терраформными переменными

0 голосов
/ 30 апреля 2018

Да, самый быстрый способ сделать это - использовать настройки master / slave для вас, Дженкинс. Итак, вам нужно добавить подчиненное устройство к машине, на которой работает ваш terraform.

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