предисловие
Начальник фронтенда компании по каким-то причинам уволился и уехал в спешке. Последние два дня я учился и строил, записывая весь процесс сборки.
Это серия статей, от сборки Gitlab до установки, регистрации Gitlab-runner и их объединения для развертывания простого проекта.Из этих статей вы узнаете, как автоматически упаковывать и развертывать собственные проекты в Gitlab.
В серию входят четыре статьи, в том числе:
- Как установить Gitlab на облаке Alibaba
- Установите GITLAB-RUNNER
- Вход в систему LINUX без пароля
- Разверните проект GITLAB с помощью GITLAB-RUNNER
Так как я работаю на фронтенде, я не владею Linux, если есть какие-то ошибки, пожалуйста, укажите.
Оригинальный адрес:Установите GITLAB-RUNNER
Это вторая часть серии, мы установим Gitlab-runner и напишем простой файл .gitlab-ci.yml, чтобы увидеть эффект.
Предварительная работа
Два сервера, у меня оба Linux CentOS 7.6 64 бит Нужно установить Gitlab, чтобы узнать, как установить Gitlab, вы можете проверить эту статьюПримечания GITLAB по установке Alibaba Cloud. Другой используется для установки Gitlab-runner.
Шаг 1: Установите Gitlab-runner
Загрузите соответствующий системе Gitlab-runner (текущая установленная версия — 11.9.2):
# Linux x86-64
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Linux x86
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# Linux arm
sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
Добавьте разрешение на выполнение в Gitlab-runner:
sudo chmod +x /usr/local/bin/gitlab-runner
Если вы хотите использовать Docker, вы можете установить Docker (вы можете пропустить его, если не используете)
curl -sSL https://get.docker.com/ | sh
Создайте пользователя GitLab CI
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
Установить и запустить службу
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Шаг 2: Зарегистрируйте бегуна
Выполните следующую команду, чтобы начать регистрацию:
sudo gitlab-runner register
Заполните URL-адрес Gitlab:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
# 没有域名所以填的是IP
http://xx.xx.xxx.xx:8888
Введите токен, необходимый для регистрации Runner:
Здесь есть два типа токенов一种是 Shared Runner ,该 Runner 所有项目都可以使用
Расположение: верхний значок настроек 🔧 -> Обзор левой боковой панели -> Бегун.
另一种是 Specific Runner ,该 Runner 指定具体某个项目才可使用
Расположение: введите проект -> Настройка в левом столбце -> CI/CD -> Найдите элемент Runners в области содержимого, нажмите, чтобы развернуть
Please enter the gitlab-ci token for this runner
# 这里我们使用 Shared Runner Token
xxxxxxx
Введите описание Runner, которое можно изменить позже в пользовательском интерфейсе GitLab:
Please enter the gitlab-ci description for this runner
test-gitlab-runner-description
Введите теги бегуна (эти теги будут использоваться позже)
Please enter the gitlab-ci tags for this runner (comma separated)
my-tag
Выберите бегуна бегуна
Здесь я использую оболочку.
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell
Если все пойдет хорошо, мы увидим
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Если выбран Docker, требуется дополнительный шаг:
Please enter the Docker image (eg. ruby:2.1):
alpine:latest
Мы возвращаемся к Share Runners, чтобы увидеть добавленного бегуна.
Шаг 3. Создайте проект и файл .gitlab-ci.yml.
Создайте файл .gitlab-ci.yml в корневом каталоге проекта и зафиксируйте его с помощью git.
# 定义 stages(阶段,会依次执行)
stages:
- install_deps
- build_prod
- deploy_prod
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
- dist
# 安装构建依赖
install_deps_job:
stage: install_deps
# 在哪个分支才会执行脚本
only:
# - dev
# - release
- master
script:
- echo '模拟安装构建依赖阶段'
tags:
- my-tag
# 构建预prod环境src目录下应用
build_prod_job:
stage: build_prod
only:
- master
script:
- echo '构建预prod环境src目录下应用阶段'
tags:
- my-tag
# 部署生产环境
deploy_prod_job:
stage: deploy_prod
only:
- master
script:
- echo '部署生产环境阶段'
tags:
- my-tag
然后你可能会看到报错
Running with gitlab-runner 11.9.2 (fa86510e)
on desc Z1UPKJjn
Using Shell executor...
Running on iZwz98jvb8bcz40ko474qsZ...
bash: line 68: git: command not found
bash: line 66: cd: /home/gitlab-runner/builds/Z1UPKJjn/0/main-group/main-project: No such file or directory
ERROR: Job failed: exit status 1
报错的原因是我的服务器是一台只安装了 Gitlab-runner 的服务器,根据报错提示,需要 git 来拉取 Gitlab 服务器上的代码,所以我们安装 git:
yum -y install git
затем используйте
git --version 查看 git 是否安装成功
После повторного выполнения конвейера или отправки кода вы можете видеть, что все работает нормально:
будь осторожен:
- Git должен быть установлен на сервере Gitlab-runner.
- Все настроено, но после отправки находится в состоянии ожидания и предлагает:
This build is stuck, because the project doesn't have any runners online assigned to it. Go to Runners page
, Это связано с тем, что соответствующий раннер не найден. Причина 1: Возможно, регистрация gitlab-runner не удалась. Причина 2: Возможно, теги в конфигурационном файле .gitlab-ci.yml не соответствуют зарегистрированным и доступный бегун Добавьте соответствующего бегуна на этап Можно использовать теги, введенные при регистрации бегуна. - GitLab лучше не устанавливать на той же машине, что и GitLab Runner.
Ссылаться на:
Install GitLab Runner manually on GNU/Linux Registering Runners GitLab Runner commands GitLab CI/CD Pipeline Configuration Reference Docker создает собственный Gitlab CI Runner