GitLabCICD+Shell脚本实现简单的⾃动代码部署+重新启动dotnet服务1.为什么要使⽤gitlab CI
gitlab⾃带的CI/CD 就是可持续集成⼯具,简单来讲,就是开发提交代码,gitlab⾃动测试、编译、部署,
省下了很多时间。⽽且这个简单⼀点⽐jenkins+git 那种⽅式,项⽬部署不是很多的情况下,可以选择此⽅法
⾸先这⾥需要的三个核⼼ gitlab runner、.l、然后就是shell脚本
我们⼀个⼀个来处理,⾸先要安装runner
执⾏命令(如下图应该就算成功了):
curl -L packages.gitlab/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
接下来安装runner,出现complete 就算安装完成了
yum install -y gitlab-ci-multi-runner
然后就是注册,这个步骤是runner和git关联的重要环节,马虎不得
我们来把上⾯的域名和token去 gitlab服务器复制下来,点开你的项⽬-然后settings下的CI/CD
到runner⾥⾯有域名和token 复制粘贴到记事本,在下⾯runner 注册时使⽤
输⼊命令,⾥⾯有⼀些参数是后期可以改的,不⽤慌,输⼊之后回车就⾃动下⼀步了
gitlab-ci-multi-runner register
注册完成后,我们回到gitlab服务器,还是打开runner可以看到下图这样。绿⾊的就是证明注册成功了,点那个⼩图标进⼊编辑
如果不是绿⾊的重启runner即可
查看runner状态
gitlab-ci-multi-runner verify
重启所有runner:
gitlab-ci-multi-runner restart
然后就可以修改刚才的⼀些配置我刚才注册时,tags有乱码,现在改过来了
接下来我们写⼀个shell脚本起个名字就叫deploy
su gitlab-runner
mkdir ~/.local/bin -p
cd ~/.local/bin
vim deploy
#!/bin/bash
if [ $# -ne 2 ]
then
echo "arguments error!"
exit 1
else
deploy_path="/var/www/$1/$2"
shell vim命令if [ ! -d "$deploy_path" ]
then
project_path="git@你的git项⽬地址:"$1/$2".git"
git clone $project_path$deploy_path
else
cd $deploy_path
git pull
fi
fi
这个脚本的意识是,先判断是否有两个参数(这个参数是在yml⽂件⾥⾯写的,下⾯有解释)然后就是判断是否存在⽬录,如果不存在则拉取,如果存在,就更新。
添加脚本执⾏权限
chmod +x ~/.local/bin/deploy
切换到root编辑/etc/profile  在最末尾添加 path路径
PATH="$HOME/.local/bin:$PATH"
给gitlab-runner ⽤户创建⽂件权限
chown -hR gitlab-runner:gitlab-runner /var/www
配置 ssh登录免密操作
su gitlab-runner
mkdir ~/.ssh
cd ~/.ssh
ssh-keygen
cat id_rsa.pub
复制粘贴ssh公钥
复制完成后,我们打开gitlab仓库,复制进去后,点add key 就可以了
appkey在⽤户下的settings下的 SSH KEY,下⾯这个是我已经添加完成的,记住:绑定key 的⽤户⼀定
要有,你需要集成项⽬的权限。不然⽆法获取项⽬

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。