gitlab ci学习记录(一)

一、centos 7安装docker

Linux内核官方建议3.10以上。

1.查看当前的内核版本:

uname -r

2.卸载旧版本(如果之前有安装过docker)

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

3.安装yum-utils包(提供yum-config-manager实用程序)并设置稳定的存储库.

sudo yum install -y yum-utils
sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

4.安装最新版本的docker engine和containerd,或者转到下一步以安装特定版本

sudo yum install docker-ce docker-ce-cli containerd.io

    如果提示接受GPG密钥,请验证指纹是否与060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35匹配,如果匹配,请接受。

5.选择docker版本并安装

(1) 查看可用版本有哪些

sudo yum list docker-ce --showduplicates | sort -r

(2) 选择一个版本并安装:yum install docker-ce-版本号

sudo yum -y install docker-ce-18.03.1.ce

(3) 启动docker并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

(4) 提供运行hello world镜像验证docker引擎是否已正确安装

sudo docker run hello-world

二、centos 7安装gitlab-runner

(一)Linux下安装gitlab-runner + executor:docker(官方安装方法)

1.下载二进制文件

# Linux x86-64
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"

# Linux x86
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386"

# Linux arm
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm"

# Linux arm64
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64"

# Linux s390x
sudo curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-s390x"

我当前虚拟机为centos 7,选择的Linux x86-64

2. 设置安装目录可执行

sudo chmod +x /usr/local/bin/gitlab-runner

3. 创建一个gitlab ci用户

sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

4. 安装并作为服务运行

sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start

如果提示命令 gitlab-runner command not found 需要配置环境
添加软链接

ln -s -f /usr/local/bin/gitlab-runner /usr/bin/gitlab-runner

5. 注册一个runner

(1) 运行以下命令

sudo gitlab-runner register

(2) 输入GitLab实例的URL
(3) 输入获得的用于注册runner的token
(4) 输入runner的说明。可以稍后在GitLab用户界面中更改此值。
(5) 输入与runner关联的tag,以逗号分隔。可以稍后在GitLab用户界面中更改此值。
(6) 输入runner executor。此处我输入docker(需要提前安装docker)。
(7) 如果输入docker作为executor,则会要求你为未在.gitlab-ci.yml中定义映像的项目使用默认映像。输入ubuntu:20.04

(二)使用docker安装gitlab-runner + executor:docker(官方安装方法)

1. 安装docker镜像和开启容器(必须先安装docker),以下二选一:

(1) 使用本地系统volume装载启动Runner容器

   docker run -d --name gitlab-runner --restart always \
     -v /srv/gitlab-runner/config:/etc/gitlab-runner \
     -v /var/run/docker.sock:/var/run/docker.sock \
     gitlab/gitlab-runner:latest

(2) 使用docker volumes启动Runner容器
    1) 新建docker volume

docker volume create gitlab-runner-config

    2) 使用我们刚刚创建的volume启动GitLab Runner容器

docker run -d --name gitlab-runner --restart always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v gitlab-runner-config:/etc/gitlab-runner \
    gitlab/gitlab-runner:latest

我是使用本地系统volume装载启动Runner容器。

2. 注册runner

(1) 根据装载类型运行register命令,以下根据情况二选一
    1) 对于本地系统volume装载

docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register

    2) 对于docker volume装载

docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register

我是使用本地系统volume装载。
(2) 输入GitLab实例的URL
(3) 输入获得的用于注册runner的token
(4) 输入runner的说明。可以稍后在GitLab用户界面中更改此值。
(5) 输入与runner关联的tag,以逗号分隔。可以稍后在GitLab用户界面中更改此值。
(6) 输入runner executor。此处我输入docker(需要提前安装docker)。
(7) 如果输入docker作为executor,则会要求你为未在.gitlab-ci.yml中定义映像的项目使用默认映像。输入ubuntu:20.04

在gitlab中记得编辑runner,勾选Run untagged jobs。


遇到的问题:

    之前安装的时候使用的是Linux下安装gitlab-runner + executor:docker,当时没有注册一个gitlab ci用户,注册之后runner未被激活(runner前有个黑色感叹号),我当时运行sudo gitlan-runner verify(此命令检查已注册的runner是否可以连接到gitlab,但不会验证gitlab runner服务是否正在使用这些runner)后显示被激活了,以为runner已经可以使用了。当我写了一个很简单的.gitlab-ci.yml测试提交后,发现Pipeline并未通过,一直处于pending状态。
    后请教后得知需要查看日志查找问题,运行journalctl -u gitlab-runner -f,得知丢失文件夹/home/gitlab-runner,gitlab-runner服务启动失败,查看后确实没有找到该文件夹,于是在另一个虚拟机上尝试使用docker安装gitlab-runner + executor:docker,按官方步骤安装注册成功。后继续在第一次安装的虚拟机上卸载gitlab-runner重新按照官方步骤安装注册,成功。

附:卸载gitlab-runner

# 停止服务
gitlab-runner stop

# 取消随机启动
chkconfig gitlab-runner off

# 卸载服务
gitlab-runner uninstall

# 清理文件
rm -rf /etc/gitlab-runner
rm -rf /usr/local/bin/gitlab-runner
rm -rf /usr/bin/gitlab-runner
rm -rf /etc/sudoers.d/gitlab-runner

# 删除用户
userdel -r gitlab-runner

你可能感兴趣的:(docker,linux)