揭秘GITLAB exectors的真相

什么是exectors

Gitlab-Runner是Gitlab CI/CD的执行者,gitlab-runner又有很多种类型(就是所谓的executor)常用的有:

  • Shell
  • Docker
  • Kubernetes

怎么选择对应的exectors

当注册runner时,必须选择一个执行器,执行器决定每个作业执行的环境/

例如:

如果想要cicd中运行shell命令,可以在服务器上安装gitlab runner 。然后注册使用shell  执行器的runner

如果想要再自定义的docker容器中运行命令,可以在linux服务器上安装 gitlab runner,然后注册使用docker执行器的runner

docker 执行器的创建

Docker 执行器使用 Docker Engine 在单独和隔离的容器中运行每个作业。要连接到 Docker 引擎,执行器使用:

一般来说配置文件的位置在  /etc/gitlab-runner/config.toml (需要先切换用户为root)

非root用户的配置文件路径在~/.gitlab-runner/config.toml

查看日志

sudo journalctl -u gitlab-runner.service -r

GitLab Runner 命令 | 极狐GitLab

sudo gitlab-runner register \

--non-interactive \

--url "" \

--registration-token "" \

--executor "docker+machine" \

--docker-image public.ecr.aws/docker/library/node:20-alpine \

--description "group type runner for  project " \

--tag-list "docker,aws,ec2,aws,flutter,t3.large" \

--run-untagged="true" \

--locked="false" \

--access-level="not_protected" \

--template-config ./template.toml

sudo sed -i 's/concurrent = 1/concurrent = 10/'  /etc/gitlab-runner/config.toml

 # setup the config.json for runner manager

mkdir -p /root/.docker && touch /root/.docker/config.json

# config.json to root

cat << EOF > /root/.docker/config.json

{

  "credsStore": "ecr-login"

}

EOF

AWS_REGION=cn-north-1 docker-credential-ecr-login list

sudo cp /etc/gitlab-runner/config.toml /home/gitlab-runner/config.toml

sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/config.toml

sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/.docker

sudo service gitlab-runner stop

sudo chkconfig gitlab-runner on

sudo systemctl status gitlab-runner

sudo systemctl start gitlab-runner

shell执行器创建

Install GitLab Runner on Windows | GitLab

gitlab-runner register --name <runner-flutter> --url Sign in · GitLab --registration-token <token>

description:gitlab-runner-flutter-machine shell exector (AWS account 655527736351

Tag: ec2,aws,executor-shell,flutter-shell

sudo gitlab-runner start

gitlab-runner list

gitlab-runner status

## 报错

error during connect: Post "http://docker:2375/v1.24/auth": dial tcp: lookup docker on 172.31.0.2:53: no such host

  [runners.docker]

    tls_verify = false

    image = "node:20"

    privileged = true

    disable_entrypoint_overwrite = false

    oom_kill_disable = false

    disable_cache = false

    volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache"]

    shm_size = 0

    network_mtu = 0

K8s 创建excutor

通过helm安装gitlab runner 到 k8s

使用背景:需要部署到集群,但是流水线环境不方便直接访问目标EKS集群,可以在EKS里安装runner,然后runner注册到gitlab站点,完成部署操作

helm repo add gitlab GitLab Helm Charts

helm search repo -l gitlab/gitlab-runner

# 根据 gitlab 站点版本,挑选合适的 helm chart 版本

helm pull --untar gitlab/gitlab-runner --version=0.63.0

cd gitlab-runner

vi values-nfm-dev.yaml

# get value and modify values

Sign in · GitLab

helm template -f ./gitlab-runner/values.yaml -f ./gitlab-runner/values-nfm.yaml gitlab-runner  ./gitlab-runner

helm upgrade --install --namespace gitlab-runner --create-namespace -f ./gitlab-runner/values.yaml -f ./gitlab-runner/values-nfm.yaml gitlab-runner  ./gitlab-runner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值