说明
用于代码托管在gitlab,提交后通过gitlab-runner实现自动部署
在宿主机安装
安装Git
查看是否已经安装,建议版本安装2.x,因为低版本会在gitlab-runner中报错# 查看安装的版本 git --version # 如果版本低于2.x,则移除重新安装 yum remove git # 安装镜像源 yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm yum install git -y # 更新确保是新版本 yum update git # 查看安装的版本 git --version
安装gitlab
gitlab-runner不建议在docker运行,因为权限和一些不必要的内存限制使用问题,安装教程查看 Centos 7安装gitlab
安装gitlab-runner
安装docker
安装docker-compose
配置gitlab-runner用户免密登录
切换至
gitlab-runner
用户su gitlab-runner cd ~
生成密钥
ssh-keygen -t rsa # 后面一直按回车即可
完成后会在
/home/gitlab-runner/.ssh
目录生成id_rsa 和 id_rsa.pub
两个文件导入密钥 (这里的场景是runner和需要部署的服务器是同一台服务器,如果不是同一台服务器,将密钥导入到对应服务器)
# 回到root用户 exit # 导入 gitlab-runner 用户密钥 cat /home/gitlab-runner/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys # 重启 systemctl restart sshd
测试
su gitlab-runner ssh root@服务器ip # 输入完成后回车,会直接以root身份登录服务器
注册runner
在如下位置获取项目的注册信息
然后执行下面的命令注册runner
[root@localhost ~]# gitlab-ci-multi-runner register
Runtime platform arch=amd64 os=linux pid=4387 revision=98daeee0 version=14.7.0
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
输入注册地址
Enter the registration token:
输入注册令牌
Enter a description for the runner:
[localhost.localdomain]: 描述,可以随便写
Enter tags for the runner (comma-separated):
标签 与 .gitlab-ci.yml文件中的tags对应
Registering runner... succeeded runner=2aZHpdoN
Enter an executor: kubernetes, custom, ssh, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, parallels, shell:
shell # 这里选择shell
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
验证注册信息
[root@localhost ~]# gitlab-ci-multi-runner list
Runtime platform arch=amd64 os=linux pid=5062 revision=98daeee0 version=14.7.0
Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
node-build Executor=shell Token=注册令牌 URL=注册地址
在服务器上拉取项目
因是基于http拉起的项目,需要先在服务器拉取项目,以便保存git的账号和密码,如果是使用的ssh方式拉取项目,则可以不做此步骤,在gitlab中配置服务器的部署密钥即可
# 配置git永久保存账号密码
git config --global credential.helper store
# 拉取代码
cd /home/project
git clone -b master 仓库地址
输入账号密码拉取代码
编写.gitlab-ci.yml
可以参考下面的配置
# usermod -aG docker gitlab-runner
stages:
- deploy
variables:
PROJECT_DIR: /home/project # 项目目录
PROJECT_SAAS_NAME: 项目名称 # 如test
deploy_saas_test:
stage: deploy
before_script:
- git --version # 检测是否安装git
- docker -v # 检测是否安装docker
- docker-compose -v # 检测是否安装docker-compose
script:
- ssh -tt root@172.18.26.69 << serverssh # 以root身份登录服务器
- cd $PROJECT_DIR/$PROJECT_SAAS_NAME/ # 进入项目代码目录
- git pull origin master # 更新代码
- mkdir ./runtime # 创建缓存目录
- chown -R 33:tape ./runtime ./public/storage # 修改权限
- docker-compose -p v5-saas down && docker-compose -p v5-saas up -d # 使用docker-compose拉起项目
- exit # 退出
- serverssh
only:
- master # 仅对某个分支生效
tags:
- test # 需要执行的runner设置的tags名称
文章来源:
鸿辰
版权声明:本网站可能会转载或引用其他来源的文章、图片、数据等信息。对于这些转载内容,版权归原作者所有。本站尊重原作者的劳动成果,并在可能的情况下注明来源和作者。如有任何版权问题,请及时联系,收到后将第一时间处理。