gitlab CI/CD部署

目录

一、优先安装jdk和maven然后再装gitlab

二、Linux安装Docker       

三、docker安装gtiLab 

四、配置gitlab

五、安装gitLab-Runner用于CI/CD,直接装在宿主机上,不在docker装,新手上手难度高 

六、配置SSH秘钥,方便远程生产环境服务器部署项目,到安装gitlab-runner的服务其中做以下操作:

七、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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值