1 构建image,推送ECR

可以根据基于Debian镜像构建image,推送至ecr

构建及推送ECR代码可以参考Python 调用 Docker 及推送至AWS ECR

2 构建EC2,运行GitLab runner

启动一个EC2,用来跑GitLab Runner,必须赋予IAM Role!!!!

启动docker,改权限

sudo apt update
sudo apt  install docker.io -y
# 改权限
sudo groupadd docker
sudo usermod -aG docker $USER
sudo service docker restart
newgrp - docker

下载Gitlab Runner

sudo mkdir -p /opt/gitlab-runner/{metadata,builds,cache}
curl -s "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
sudo apt install gitlab-runner

启动GitLab Runner

sudo gitlab-runner register --url https://gitlab.com/ --registration-token 获取到的Token --name fargate-test-runner --run-untagged --executor custom -n

2.1 改配置文件

运行sudo vim /etc/gitlab-runner/config.toml

只要改executor = "custom"后面的部分就行

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "fargate-test"
  url = "https://gitlab.com/"
  token = "自动生成的,不要改"
  executor = "custom"
  builds_dir = "/opt/gitlab-runner/builds"
  cache_dir = "/opt/gitlab-runner/cache"
  [runners.custom]
    config_exec = "/opt/gitlab-runner/fargate"
    config_args = ["--config", "/etc/gitlab-runner/fargate.toml", "custom", "config"]
    prepare_exec = "/opt/gitlab-runner/fargate"
    prepare_args = ["--config", "/etc/gitlab-runner/fargate.toml", "custom", "prepare"]
    run_exec = "/opt/gitlab-runner/fargate"
    run_args = ["--config", "/etc/gitlab-runner/fargate.toml", "custom", "run"]
    cleanup_exec = "/opt/gitlab-runner/fargate"
    cleanup_args = ["--config", "/etc/gitlab-runner/fargate.toml", "custom", "cleanup"]

执行sudo vim /etc/gitlab-runner/fargate.toml

LogLevel = "info"
LogFormat = "text"

[Fargate]
  Cluster = "cluster的名字"
  Region = "us-east-2"
  Subnet = "subnet-xxxxxx"
  SecurityGroup = "sg-xxxxxxxxxxxxx"
  TaskDefinition = "task definition的名字:版本号,例如:test-task:1"
  EnablePublicIP = true

[TaskMetadata]
  Directory = "/opt/gitlab-runner/metadata"

[SSH]
  Username = "root"

3 创建Cluster

  1. 创建一个 Cluster
  2. 选择Networking only
  3. 起名, test-clusterfargate.toml里的一样
  4. 选择Create.
  5. 选择View cluster.
  6. 点击Update Cluster
  7. Default capacity provider strategy, 点击Add another provider 选择 FARGATE. 点击Update.

4 构建task definiton

  1. 点击Create new Task Definition.
  2. 选择FARGATE ,点击 Next step.
  3. 给cluster起名 ,假设叫test-task. (需要和 fargate.toml 的文件相同,但是不好喊 :1).
  4. 添加container,名字必须叫做ci-coordinator,image选择之前推送的ECR镜像地址,port mapping添加22/TCP

5 添加gitlab配置

.gitlab-cicd.yml

test:
  script:
    - echo "It works!"
    - for i in $(seq 1 30); do echo "."; sleep 1; done

6 添加fargate driver

sudo curl -Lo /opt/gitlab-runner/fargate "https://gitlab-runner-custom-fargate-downloads.s3.amazonaws.com/latest/fargate-linux-amd64"
sudo chmod +x /opt/gitlab-runner/fargate

7 相关repo

SageMaker测试代码

跑SageMaker的runner Docker模板

最后修改:2021 年 08 月 17 日 12 : 08 PM
如果觉得我的文章对你有用,请随意赞赏