| 
 
 目录  
一.安装gitlab  
二.安装gitlab-runner  
?三.gitlab-runner注册  
四.配置SSH秘钥  
服务器采用账号密码方式登录,请按照以下配置方式配置SSH  
若服务器采用秘钥文件方式登录,请按照以下配置方式配置SSH  
五.安装jdk和maven  
六.编写gitlab-ci.yml文件  
七.项目部署  
 
一.安装gitlab 
1.安装gitlab-ce (服务器系统为centos 7)  
 
 yum install gitlab-ce?  
  
2.配置端口  
 
 vi /etc/gitlab/gitlab.rb  
  
 
 
#修改gitlab的访问ip和端口,ip用本机
external_url 'http://192.168.3.166:8099'
  
  
重启gitlab  
 
 gitlab-ctl reconfigure  
  
?  
二.安装gitlab-runner 
1.下载可执行文件  
 
 sudo wget -O/usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64  
  
2.设置执行权限  
 
 sudo chmod +x /usr/local/bin/gitlab-runner  
  
3.创建GitLab CI账户  
 
 ?useradd --comment 'GitLab Runner'--create-home gitlab-runner --shell /bin/bash  
  
?4.运行服务  
 
 gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner  
 gitlab-runner start?  
  
?三.gitlab-runner注册 
1.打开 gitlab 项目 -> Settings -> CI / CD -> Runners settings。记下url和token,下面注册使用。  
   
?2.注册,在终端界面输入  
 
 sudo gitlab-runner register  
  
输入你的 GitLab URL
Please enter the gitlab-ci coordinator URL(e.g. https://gitlab.com )
https://192.168.3.166:8099(输入上图的url)
输入 注册令牌 来注册 Runner
Please enter the gitlab-ci token forthis runner
xxx(输入上图的token)
输入 Runner 说明
Please enter the gitlab-ci description forthis runner
my-runner
输入 Runner 的 tags
Please enter the gitlab-ci tags forthisrunner(comma separated):
my-tag
输入 Runner 执行方式,这里选择shell
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell
 
到这一步gitlab和gitlab-runner就配置好了  
四.配置SSH秘钥 
-  
服务器采用账号密码方式登录,请按照以下配置方式配置SSH   
1.配置ssh,便于远程生产环境服务器部署项目。在终端界面输入。(切换以gitlab-runner身份登录)  
 
 sudo su - gitlab-runner  
  
2.生成秘钥,在终端继续输入  
 
 ssh-keygen -t rsa  
  
然后一直按空格即可。不要输入密码。  
3.到gitlab所在服务器的/home/gitlab-runner/.ssh/目录会看到生成的秘钥对如图所示  
   
?4.将id_rsa.pub公钥文件拷贝到生产环境服务器中。在终端输入  
 
 cd /home/gitlab-runner/.ssh  
 ssh-copy-id root@192.168.0.5(此IP为生产环境服务器IP)  
  
5.测试是否可以免密登录  
 
 ssh root@192.168.0.5  
  
?6.将私钥内容复制到gitlab中。在终端输入  
 
 cat ~/.ssh/id_rsa  
  
?出现如下图所示:  
   
 
拷贝一下红框里的内容。  
进入gitlab想要部署的项目中(没有项目可自行创建一个测试项目)。选择用户设置->CI/CD->变量  
?-》Add Variable ,将秘钥填入后,点击"Add Variable"按钮.如下图所示  
   
至此,我们的配置就完成了。  
-  
若服务器采用秘钥文件方式登录,请按照以下配置方式配置SSH   
1.将秘钥文件拷贝到gitlab所在服务器的/home/gitlab-runner/.ssh目录中即可。如图所示:  
   
五.安装jdk和maven 
1.请自行在gitlab所在服务器安装jdk和maven。因为这里主要讲如何配置gitlab-ci/cd,所以jdk及maven安装请自行百度,非常简单,在此略过。  
六.编写gitlab-ci.yml文件 
1.在自己的项目根目录创建文件"gitlab-ci.yml"。填写内容如下(没有项目的话,请自行使用IDEA创建SpringBoot项目)。  
stages:
  - build
build:
  stage: build
  variables:
    docker_compose_name: control
    package_name : control-0.0.1-SNAPSHOT.jar
    server_username : root
    server_ip : 59.110.0.91
    server_path : /home/robot/robot2_control
  before_script:
    - echo "开始脚本1"
    - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - mvn -Dmaven.test.skip=true clean package
  after_script:
    #服务器为账号密码登录时,使用以下语句
    - scp  $(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}
    - ssh  ${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d  $docker_compose_name; exit"
    #服务器为秘钥文件登录时,使用以下语句
    #- scp  -i /home/gitlab-runner/.ssh/8.140.136.221_Key.pem  $(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}
    #- ssh  -i /home/gitlab-runner/.ssh/8.140.136.221_Key.pem ${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d  $docker_compose_name; exit"
      
说明:  
 
 - scp ?$(cd `dirname $0`; pwd)/target/${package_name} ${server_username}@${server_ip}:${server_path}/${package_name}? ? ?意思是将gitlab打包后的文件拷贝到生产环境服务器中。  
  
 
 ?- ssh ?${server_username}@${server_ip} "cd /home/robot; docker-compose stop $docker_compose_name; docker-compose --compatibility up -d ?$docker_compose_name; exit"? ?意思是在服务器中重启我的项目。我用的是docker-compose方式部署的。如果读者用的是其他方式,那可以使用其他方式的命令来重启自己的项目。  
  
七.项目部署 
1.将项目传到gitlab中,进入gitlab自己的项目中,选择CI/CD。会看到如下图所示  
   
?点对勾按钮->build,进入之后,如下图所示,会看到自己得项目已经热部署完毕。  
   
?  
                
        
    
 
 |