用GitLab做IaC的CI/CD

admin 2022年5月23日03:07:00评论50 views字数 1230阅读4分6秒阅读模式

本周真正完成用GitLab做IaC的CI/CD,

先在GitLab所在主机安装runner

curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb",
sudo dpkg -i gitlab-runner_amd64.deb,

然后把runner注册到GitLab上,sudo gitlab-runner register,

注册过程中需要填的信息需要在GitLab中查询,执行环境我这里选的shell,

用GitLab做IaC的CI/CD

然后是在pycharm里准备CI/CD所需的文件,

用GitLab做IaC的CI/CD

terraform的文件,就是上周实践的,这里需要新介绍的是.gitlab-ci.yml,

需要规划多个阶段,以及每个阶段要做的事,以terraform对OpenStack的IaC为例,可以分三个阶段,初始化、计划、执行,跟手动执行的过程是一样的,唯一不同的是,GitLab在做CI/CD的过程中,每个阶段都是独立的,如果下一个阶段需要使用上一阶段的输出,需要通过cache方法来解决,

stages:
  - init
  - plan
  - apply
init:
  stage: init
  script:
    - terraform init
  cache:
    paths:
      - .terraform.lock.hcl
      - terraform.tfstate
      - terraform.tfstate.backup
      - .terraform/*
      - plan
  tags:
    - ubuntu
plan:
  stage: plan
  script:
    - terraform plan --out plan
  cache:
    paths:
      - .terraform.lock.hcl
      - terraform.tfstate
      - terraform.tfstate.backup
      - .terraform/*
      - plan
  tags:
    - ubuntu
apply:
  stage: apply
  script:
    - terraform apply --auto-approve plan
  cache:
    paths:
      - .terraform.lock.hcl
      - terraform.tfstate
      - terraform.tfstate.backup
      - .terraform/*
      - plan
  tags:
    - ubuntu

把所有文件都提交和推送到Gitlab,

用GitLab做IaC的CI/CD

CI/CD就自动跑起来了,一个阶段一个阶段执行,直到完全成功,

用GitLab做IaC的CI/CD

在OpenStack上查看,虚机出来了,阶段性的CI/CD实践这就完事儿了,后面有时间再研究用GitLab做容器在K8S中的CI/CD实践。

原文始发于微信公众号(云计算和网络安全技术实践):用GitLab做IaC的CI/CD

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月23日03:07:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用GitLab做IaC的CI/CDhttp://cn-sec.com/archives/1039714.html

发表评论

匿名网友 填写信息