CentOS7下的Django2集成部署三:Jenkins和GitLab安装

Jenkins

  • 安装 JDK和Jenkins
    [root@home-ct75211 ~]# cd /usr/local/src/
    [root@home-ct75211 src]# ll
    total 244436
    -rw-r--r--. 1 root root 176154027 Dec 14 08:46 jdk-8u191-linux-x64.rpm
    -rw-r--r--. 1 root root  74141787 Dec 14 08:40 jenkins-2.99-1.1.noarch.rpm
    [root@home-ct75211 src]# rpm -ivh jdk-8u191-linux-x64.rpm
    
    [root@home-ct75211 src]# java -version
    java version "1.8.0_191"
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
    [root@home-ct75211 src]# rpm -ivh jenkins-2.99-1.1.noarch.rpm
    
    
    [root@home-ct75211 src]# systemctl status jenkins
    ● jenkins.service - LSB: Jenkins Automation Server
       Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
       Active: inactive (dead)
         Docs: man:systemd-sysv-generator(8)
    [root@home-ct75211 src]# systemctl start jenkins
    [root@home-ct75211 src]# systemctl enable jenkins
    jenkins.service is not a native service, redirecting to /sbin/chkconfig.
    Executing /sbin/chkconfig jenkins on
    [root@home-ct75211 src]# netstat -ntpl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 127.0.0.1:21190          0.0.0.0:*               LISTEN      26831/uwsgi         
    tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26813/nginx: master 
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1081/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1380/master         
    tcp6       0      0 :::3306                 :::*                    LISTEN      2425/mysqld         
    tcp6       0      0 :::8080                 :::*                    LISTEN      27284/java          
    tcp6       0      0 :::22                   :::*                    LISTEN      1081/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      1380/master         
    
     netstat -ntpl
    netstat -ntpl

    jenkins 默认端口是8080,访问

    • 如果一直是这个页面,需要编辑一下Jenkins程序目录 /var/lib/jenkins/ 下的 hudson.model.UpdateCenter.xml 文件
      把
      http://updates.jenkins-ci.org/update-center.json
      改成
      http://mirror.xmission.com/jenkins/updates/update-center.json
      [root@home-ct75211 jenkins]# systemctl restart jenkins

      再次访问就可以了,按照提示输入默认密码就可以登录了

    • 先直接跳过(直接关闭提示页面)推荐插件安装的页面,进入系统先重置下密码
  •   创建一个item来测试下
  •   立即构建,然后查看下console output
    •   
  • 基本上Jenkins已经就绪了,之后会用gitlab的触发插件和pipeline的相关插件,请直接安装他们

GitLab

  • 准备工作
    • 上述环境,已经准备好了,就剩这个Gitlab了,做个快照先
    • 做快照的时间先做下ssh-keygen
      [root@home-ct75211 ~]# ssh-keygen -t rsa
      Generating public/private rsa key pair.
      Enter file in which to save the key (/root/.ssh/id_rsa): 
      Created directory '/root/.ssh'.
      Enter passphrase (empty for no passphrase): 
      Enter same passphrase again: 
      Your identification has been saved in /root/.ssh/id_rsa.
      Your public key has been saved in /root/.ssh/id_rsa.pub.
      The key fingerprint is:
      SHA256:RsLwx3rxsdKlpgoubJFHRKgdKcAD47Wvqlho0iX1wRI root@home-ct75211
      The key's randomart image is:
      +---[RSA 2048]----+
      |B  =E            |
      |o+= o* .         |
      | =.+o * = . .    |
      |. ..oo * + =     |
      |  .o..o S *      |
      | oooo  o +       |
      |ooo+.   .        |
      |+.=. . .         |
      |+o .. .          |
      +----[SHA256]-----+
      [root@home-ct75211 ~]# cat ~/.ssh/id_rsa.pub
      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDd1qSaKrRPKIltcibTJNne+06ZVLXQKJfht6WAUPui7vhQVHKBbmW33hq2J9anKQSHwFZe12QM6tcl49MrLrOzn4z7rxa95jE/Zf5TE7ADwKqGn6kfv8+11ifzkKYwbV3iqYwxAWDKoPAaFiKkkAqadpevWgdoyi+z4GGKfn3Ph8dHJfLZNP1LO6ogC4eVvUUbsLQKnt5QnaGDbqHuqgVkLfmyGUiMBc2ZVnkqGgMiKPYibMQsLYHGIrN5fZUKBqA+S4RFKNJZxBvtMvzU1Sz3q11A8tudcJH8JBf1dHcEavO1hnDTaSP3ibVHzIblOKkA9j4ZbouKlAVjOOW6izSz root@home-ct75211
      ssh-keygen -t rsa
    • 把git也安装下 yum -y install git 
    • 安装依赖
      yum install -y curl policycoreutils-python openssh-server
      [root@home-ct75211 ~]# systemctl enable sshd
      [root@home-ct75211 ~]# systemctl start sshd
  • 安装和配置
    • 这里用的版本是 gitlab-ce-10.2.2 
      [root@home-ct75211 ~]# cd /usr/local/src/
      [root@home-ct75211 src]# rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
      It looks like GitLab has not been configured yet; skipping the upgrade script.
      
             *.                  *.
            ***                 ***
           *****               *****
          .******             *******
          ********            ********
         ,,,,,,,,,***********,,,,,,,,,
        ,,,,,,,,,,,*********,,,,,,,,,,,
        .,,,,,,,,,,,*******,,,,,,,,,,,,
            ,,,,,,,,,*****,,,,,,,,,.
               ,,,,,,,****,,,,,,
                  .,,,***,,,,
                      ,*,.
        
      
      
           _______ __  __          __
          / ____(_) /_/ /   ____ _/ /_
         / / __/ / __/ /   / __ \`/ __ 
        / /_/ / / /_/ /___/ /_/ / /_/ /
        \____/_/\__/_____/\__,_/_.___/
        
      
      Thank you for installing GitLab!
      GitLab was unable to detect a valid hostname for your instance.
      Please configure a URL for your GitLab instance by setting `external_url`
      configuration in /etc/gitlab/gitlab.rb file.
      Then, you can start your GitLab instance by running the following command:
        sudo gitlab-ctl reconfigure
      
      For a comprehensive list of configuration options please see the Omnibus GitLab readme
      https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
      安装成功后
    • 配置 /etc/gitlab/gitlab.rb ,主要是端口号(默认是80端口)和备份的设置

      •  external_url 'http://gitlab.example.com' 修改成 external_url 'http://192.168.23.211' 

      •   # nginx['listen_port'] = nil 去掉#,修改成  nginx['listen_port'] = 21180 ,80端口给了nginx,后面会用这个端口访问gitlab

      •  # unicorn['port'] = 8080  去掉#,修改成 unicorn['port'] = 21188 。这个端口已给了Jenkins,后面会用21188
      • 文件末尾追加

        gitlab_rails['backup_path'] = '/data/backup/gitlab'
        gitlab_rails['backup_keep_time'] = 604800

         /data/backup/gitlab 这个路径会自动创建

      •  gitlab-ctl reconfigure 重新配置下,一般会自动重启服务的

  • 启动
    • 访问 http://192.168.23.211:21180 ,并设置root账户的初始密码
    • 习惯上会关闭前台注册
    • 设置外观
    • 外观预览
    • 添加组和用户
    • 先从已有的项目来创建一个简单的repo
    • 添加本地ssh-key到gitlab
    • 克隆git到本地
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python
      $ git clone  git@192.168.23.211:py3web/ok-admin.git
      Cloning into 'ok-admin'...
      The authenticity of host '192.168.23.211 (192.168.23.211)' can't be established.
      ECDSA key fingerprint is SHA256:3DePdkqpeNDs052JoC+Qfo8/xAnPAbqP1jid8kQ9dx8.
      Are you sure you want to continue connecting (yes/no)? yes
      Warning: Permanently added '192.168.23.211' (ECDSA) to the list of known hosts.
      remote: Counting objects: 578, done.
      remote: Compressing objects: 100% (284/284), done.
      remote: Total 578 (delta 258), reused 578 (delta 258)
      Receiving objects: 100% (578/578), 2.13 MiB | 15.48 MiB/s, done.
      Resolving deltas: 100% (258/258), done.
      
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python
      $ cd ok-admin/
      
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python/ok-admin (master)
      $ vim index.html
      
      $ git add .
      
      $ git commit -m "modified index.html"
      
      *** Please tell me who you are.
      
      Run
      
        git config --global user.email "you@example.com"
        git config --global user.name "Your Name"
      
      to set your account's default identity.
      Omit --global to set the identity only in this repository.
      
      fatal: unable to auto-detect email address (got 'admin@DESKTOP-BC8FMN2.(none)')
      
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python/ok-admin (master)
      $ git config --global user.email "zhujingxiu1987@gmail.com"
      $ git config --global user.name "zhujingxiu"
      
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python/ok-admin (master)
      $ git commit -m "modified index.html"
      [master b731093] modified index.html
       1 file changed, 3 insertions(+), 3 deletions(-)
      
      admin@DESKTOP-BC8FMN2 MINGW64 /e/python/ok-admin (master)
      $ git push -u origin master
      Counting objects: 3, done.
      Delta compression using up to 6 threads.
      Compressing objects: 100% (3/3), done.
      Writing objects: 100% (3/3), 305 bytes | 305.00 KiB/s, done.
      Total 3 (delta 2), reused 0 (delta 0)
      To 192.168.23.211:py3web/ok-admin.git
         7516c75..b731093  master -> master
      Branch 'master' set up to track remote branch 'master' from 'origin'.

      这样gitlab也就绪了

原文地址:https://www.cnblogs.com/zhujingxiu/p/10122829.html