目录
五、安装gitLab-Runner用于CI/CD,直接装在宿主机上,不在docker装,新手上手难度高
六、配置SSH秘钥,方便远程生产环境服务器部署项目,到安装gitlab-runner的服务其中做以下操作:
一、优先安装jdk和maven然后再装gitlab
二、Linux安装Docker
1、卸载(可选)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
2、安装docker
# 先装yum工具
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
# 设置docker镜像源
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
#输入安装命令
yum install -y docker-ce
# 关闭防火墙,不然得逐个开放docker相关端口
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
#查看是否关闭防火墙
systemctl status firewalld
#输入命令查看docker版本
docker -v
3、配置docker加速镜像
##在文件夹内新建一个daemon.json文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}
EOF
#重新加载文件
sudo systemctl daemon-reload
#重启docker
sudo systemctl restart docker
4、查看已安装的镜像命令
docker images
5、拉取镜像
docker pull xxx
6、设置随机启动:
systemctl enable docker.service
三、docker安装gtiLab
1、搜索镜像
docker search gitlab
2、下载镜像
docker pull twang2218/gitlab-ce-zh
3、启动服务
docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
以上命令解释:
docker run
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab #与上面一样
--privileged=true #让容器获取宿主机root权限
twang2218/gitlab-ce-zh #镜像的名称,这里也可以写镜像ID
4、查看镜像是否启动
docker ps 能看到gitlab就是启动成功了
四、配置gitlab
1、进入容器:
docker exec -it gitlab bash
2、修改gitlab.rb文件
vi /etc/gitlab/gitlab.rb
按i键编辑文件,添加以下内容:
external_url 'http://你的IP地址'
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' #和上一个IP输入的一样
gitlab_rails['gitlab_shell_ssh_port'] = 8022 #此端口是run时22端口映射的8022端口
wq保存内容
3、编辑gitlab.yml文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
修改host为:
host: 你的IP地址
port: 8090
ssh_host: 你的IP地址
4、重启服务
gitlab-ctl restart
5、退出命令行
exit
6、在浏览器打开gitLab
http://你的IP地址:8090/
7、生成gitlab秘钥,才能check项目
1、首先在windows安装git客户端,安装完成之后,在桌面任意空白地方右键,选择Git Bash Here
2、依次输入以下命令:
git config --global user.name '用户名'
git config --global user.email '邮箱'
ssh-keygen -t rsa -C '邮箱',然后多次按回车,即可在C:\用户\Administrator\.ssh目录中发现成了id_rsa、id_rsa.pub两个文件,
右键打开id_rsa.pub公钥文件,复制内容粘贴到用户-设置-SSH秘钥中即可
五、安装gitLab-Runner用于CI/CD,直接装在宿主机上,不在docker装,新手上手难度高
1、下载
curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
2、授权
chmod 775 /usr/local/bin/gitlab-runner
3、添加用户
useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
4、安装gitlab服务
gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
5、启动服务
gitlab-runner start
6、查看gitlab服务
ps aux|grep gitlab-runner
解释:
--working-directory:设置工作目录, 默认是/home/{执行user}
--config:设置配置文件目录,默认是/etc/gitlab-runner/config.toml
--user:设置执行用户名,默认是gitlab-runner
7、注册Runner,按照步骤输入gitlab-设置-CI/CD中提示的Runner Url和注册令牌:
gitlab-runner register --name my_runner --url http://192.168.243.128:8090/ --registration-token GR1348941LzrMgs6xvY55U5ZzSzRP
8、解决 gitlab-runner 部署时 Host key verification failed 的报错问题
1、查看用户
ps aux | grep gitlab-runner
2、卸载默认用户
gitlab-runner uninstall
3、替换用户为root
gitlab-runner install --user root
4、重启gitlab-runner
systemctl restart gitlab-runner
9、gitlab-runner报错fatal: git fetch-pack: expected shallow list
先查看git版本:git --version 发现是1.8.xx版本,
升级git版本:
1、yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
2、yum install git
六、配置SSH秘钥,方便远程生产环境服务器部署项目,到安装gitlab-runner的服务其中做以下操作:
1、切换gitlab_runner用户,然后输入命令,按多次回车后生成秘钥:
su gitlab_runner
ssh-keygen -t rsa
秘钥生成目录为:/home/gitlab-runner/.ssh,一般有两文件:id_rsa、id_rsa.pub
2、将秘钥copy至生产服务器中:
cd /home/gitlab-runner/.ssh
ssh-copy-id root@192.168.11.5
测试是否能免密登录生产服务器:
ssh root@192.168.11.5
没报错说明配置成功
windows服务器可以这样操作:
1、首先安装openssh,具体安装可以百度
2、将id_rsa.pub文件下载后上传到目标服务器目录:C:\ProgramData\ssh 并将文件重名为:administrators_authorized_keys
3、现在可以测试:ssh Administrator@192.168.11.5 没报错说明配置成功
七、gitlab-runner配置示例
stages:
- build
#设置变量
variables:
#生产环境服务器登录用户名
server_username: root
#生产环境jar包存放目录
server_path: /home/application/RSIM
#启动脚本
start_shell: rsim.sh
#获取系统时间
date_time: date +%Y%m%d%H%M%S
prod-build:
stage: build
# 手动触发
when: manual
#设置变量
variables:
#生产环境服务器IP地址
server_ip: 192.168.32.128
script:
- mvn clean package -D maven.test.skip=true -P prod
after_script:
#备份
- ssh ${server_username}@${server_ip} "cp -r ${server_path}/flow-admin.jar ${server_path}/back/flow-admin.jar.$(${date_time}})"
#将gitlab-runner生成的jar包文件拷贝到服务器生产环境中
- scp $CI_PROJECT_DIR/flow-admin/target/flow-admin.jar ${server_username}@${server_ip}:${server_path}/
- scp $CI_PROJECT_DIR/flow-extend/flow-monitor-admin/target/flow-monitor-admin.jar ${server_username}@${server_ip}:${server_path}/
- scp $CI_PROJECT_DIR/flow-extend/flow-xxl-job-admin/target/flow-xxl-job-admin.jar ${server_username}@${server_ip}:${server_path}/
#这里用生产环境自己写的启动脚本,source /etc/profile;事先加载环境变量
- ssh ${server_username}@${server_ip} "source /etc/profile;${server_path}/${start_shell} restart all"