伙计们,我想用Jenkins管道自动化terraform,我的terraform也安装在不同的Vm和Jenkins上。我知道有Terraform插件。但是,似乎Terraform必须安装在与jenkins相同的vm上(或者在/var/lib/jenkins/工作区上),这样做有吗?请分享你的建议。
发布于 2018-05-01 12:48:19
一般来说,保持Jenkins机器尽可能干净是个好主意,因此您应该避免像Terraform一样在其上安装额外的软件包。解决这个问题的一个更好的方法是使用Terraform二进制文件和您需要内置的所有插件创建一个Dockerfile,然后在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文档还包含一个关于在CI:https://www.terraform.io/guides/running-terraform-in-automation.html中运行Terraform的最佳实践的部分。
发布于 2018-04-30 05:42:52
是的,最快的方法是为jenkins使用主/从设置。因此,您需要做的是向运行terraform的机器添加从服务器。
发布于 2019-02-22 18:51:19
我已经创建了一个Global Shared Library 太棒了-jenkins-utils,您可以在同一管道中同时使用不同版本的terraform。此外,您还可以轻松地将构建参数映射到terraform变量。
https://stackoverflow.com/questions/50090845
复制相似问题