zoukankan      html  css  js  c++  java
  • centos7安装部署gitlab服务器

    1、安装和配置必须的依赖

    sudo yum install curl policycoreutils openssh-server openssh-clients
    
    sudo systemctl enable sshd
    
    sudo systemctl start sshd
    
    sudo yum install postfix
    
    sudo systemctl enable postfix
    
    sudo systemctl start postfix
    
    sudo firewall-cmd --permanent --add-service=http
    
    sudo systemctl reload firewalld

    2、去清华大学镜像站下载gitlab的rpm安装包

    https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
    
    yum install -y policycoreutils-python
    
    rpm -i gitlab-ce-11.0.0-ce.0.el7.x86_64.rpm

    如图表示安装成功

    3、修改gitlab配置文件指定服务器ip和自定义端口

    vim  /etc/gitlab/gitlab.rb

     

    firewall-cmd --zone=public --add-port=8088/tcp --permanent

    ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口

     4.重置并启动GitLab

    gitlab-ctl reconfigure

    gitlab-ctl restart(可省略)

    浏览器访问http://192.168.6.139:8088

    首次登陆,需要设置root的密码

    登陆后新建组和项目

    安装客户端gitlab-ci-multi-runner

    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

    如果出现尝试其他镜像提示 可以ctrl+c 终止掉进程,然后更改镜像地址

    vim /etc/yum.repos.d/runner_gitlab-ci-multi-runner.repo

    将一下内容替换runner_gitlab-ci-multi-runner.repo原有的内容

    [gitlab-ci-multi-runner] 
    
    name=gitlab-ci-multi-runner
    
    baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ci-multi-runner/yum/el7
    
    repo_gpgcheck=0
    
    gpgcheck=0
    
    enabled=1
    
    gpgkey=https://packages.gitlab.com/gpg.key

    执行 yum install -y gitlab-ci-multi-runner 即可

    注册runner

    gitlab-ci-multi-runner register

    刷新项目,查看runner是否成功启动,如图,绿色为启动成功

    查看runner状态

    gitlab-ci-multi-runner verify

    重启所有runner:

    gitlab-ci-multi-runner run

    重启单个runner:

    gitlab-ci-multi-runner run-single --url http://IP:port/ --token runnerToken --executor shell

    编写 deploy文件

    在gitlab-runner的~/.local/bin/目录下新建deploy文件

    su gitlab-runner
    
    mkdir ~/.local/bin -p
    
    cd ~/.local/bin
    
    vim deploy

    复制以下内容到deploy文件

    #!/bin/bash
    
    if [ $# -ne 3 ]
    
    then
    
          echo "arguments error!"
    
          exit 1
    
    else
    
          deploy_path="/data/wwwroot/$1/$2/$3"
    
          if [ ! -d "$deploy_path" ]
    
          then
    
                  git clone "git@192.168.6.139:${1}/${2}.git" $deploy_path
    
          cd $deploy_path
    
                  git checkout $3
    
          else
    
                  cd $deploy_path
    
                  git pull
    
          fi
    
    fi

    以上脚本的意思是如果参数不是三个,打印参数错误

    如果目录没建立 这git clone 并且git checkout

    如果存在 则git clone

    添加脚本执行权限

    chmod +x ~/.local/bin/deploy

    切换到root身份 编辑/etc/profile文件 最末尾添加加入 path路径

    PATH="$HOME/.local/bin:$PATH"

    source /etc/profile

    给gitlab-runner用户创建文件权限

    chown -hR gitlab-runner:gitlab-runner /data/wwwroot

    配置ssh登录

    su gitlab-runner
    
    mkdir  ~/.ssh
    
    cd   ~/.ssh
    
    ssh-keygen

    然后一直按enter

    查看id_rsa.pub文件 并复制 ssh key

    创建一个gitlab-runner用户,并将该用户添加到项目成员中(赋予该成员maintainer角色)

    在gitlab上,登录gitlab-runner

    将刚刚复制的ssh key设置到gitlab-runner用户的ssh-keys上

    创建文件 .gitlab-ci.yml 和test.txt ,前者用于CI/CD解析,后者用于触发CI/CD

    yml 内容如下

    stages:
    
      - deploy
    
     
    
    deploy1:
    
      stage: deploy
    
      tags:
    
        - test-runner-1
    
      only:
    
        - master
    
      script:
    
        - bash deploy java test-project master

    修改test.txt文件,查看ci/cd 功能是否触发

    此时任务可能会报以下错误

     

    root身份下 执行以下命令

    source /etc/profile

    ln -s /home/gitlab-runner/.local/bin/deploy /usr/bin/deploy

    切换

    su gitlab-runner
    
    deploy java test-project master

    根据提示 填入yes 就可以了

    至此就完成了ci的功能

    将tomcat和jdk都放到wwwroot目录下,并给gitlab-runner赋予权限

    修改配置文件

    vim /etc/profile

    在文件末尾加上

    export JAVA_HOME=/data/wwwroot/jdk
    
    export PATH=$JAVA_HOME/bin:$PATH
    
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    export TOMCAT=/data/wwwroot/tomcat
    
    export PATH=$TOMCAT/bin:$PATH

    修改.gitlab.yml配置为

    stages:
    
      - deploy
    
      - build
    
      - ops
    
     
    
    deploy_job:
    
      stage: deploy
    
      tags:
    
        - test-project
    
      only:
    
        - master
    
      script:
    
        - bash deploy java taozugong-service master
    
    build_job:
    
      stage: build
    
      tags:
    
        - test-project
    
      only:
    
        - master
    
      script:
    
        - source /etc/profile
    
        - cd /data/wwwroot/java/taozugong-service/master
    
        - /data/wwwroot/maven/bin/mvn clean package -Dmaven.test.skip=true
    
    ops_job:
    
      stage: ops
    
      tags:
    
        - test-project
    
      only:
    
        - master
    
      script:
    
        - rm -f /data/wwwroot/tomcat/webapps/taozugong.war
    
        - cp /data/wwwroot/java/taozugong-service/master/taozugong-service/target/taozugong.war /data/wwwroot/tomcat/webapps/taozugong.war
    
        - rm -f /data/wwwroot/tomcat/webapps/admin.war
    
        - cp /data/wwwroot/java/taozugong-service/master/taozugong-admin/target/admin.war /data/wwwroot/tomcat/webapps/admin.war

    建议先修改maven源地址阿里云Aliyun仓库地址及设置

    至此完成

    还需要解决一下gitlab绑定的nginx与自己安装的nginx的冲突

    # 复制一份 gitlib 下的 nginx
    mv /opt/gitlab/embedded/sbin/nginx /opt/gitlab/embedded/sbin/nginx2
    
    # 修改启动脚本
    vi /opt/gitlab/sv/nginx/run
    exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx
    # 改为
    exec chpst -P /opt/gitlab/embedded/sbin/nginx2 -p /var/opt/gitlab/nginx

    其实就是修改了 gitlab 的 nginx 进程名来防止冲突。

    最后 reboot 即可。

  • 相关阅读:
    空气墙的制作,标签的添加
    子弹朝向问题的解决,移动方法的编写
    子弹的朝向问题
    坦克的攻击方法
    移动优先级的添加,2D渲染层级问题
    碰撞器的添加,解决抖动问题
    控制图片的移动切换
    控制玩家的移动
    游戏中预制体的制作,2D动画的制作
    场景搭建,素材的处理
  • 原文地址:https://www.cnblogs.com/weianlai/p/11341224.html
Copyright © 2011-2022 走看看