Centos7 jenkins + gitlab 的安裝

注意: 官方文檔 https://docs.gitlab.com/ee/integration/jenkins.html

1. 安裝gitlab


1. 安裝依賴及配置
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
2. 添加gitlab倉庫並且安裝
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee
3. 安裝Postfix以發送郵件通知(可跳過,但添加用戶需用到)
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
4. 配置gitlab
  • vim /etc/gitlab/gitlab.rb

    • ternal_url 'http://gitlab.example.com'修改爲external_url 'http://<你的服務器地址或域名>'
      • 爲了方便jenkins調用,此處使用80端口
    • unicorn['port'] = 8080修改爲unicorn['port'] = 11001
    • prometheus['listen_address'] = 'localhost:9090'改爲prometheus['listen_address'] = 'localhost:11002'
5. 生效配置並啓動
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start/stop
6. 訪問gitlab
http://<IP>

2. 安裝jenkins


1. 下載war包
curl -O http://static.outsidelook.cn/software/jenkins/jenkins.war
2. 運行Jenkins
nohup java -jar  jenkins.war --httpPort=12000 &
3. 訪問12000端口打開jenkins
http://localhost:12000
4. 查看jenkins初始密碼
cat /root/.jenkins/secrets/initialAdminPassword
5. 根據提示完成創建

3. jenkins添加插件


1. 登錄賬戶
  • admin - 123456 (這是我的賬號)
2. 在線升級jenkins
  • 升級完需重啓jenkins
3. 安裝git、gitlab插件
  • 系統管理 -> 管理插件 -> 可選插件

  • 安裝以下插件

    • Git plugin
    • GitLab plugin

4. 配置gitlab api token


  • 打開Gitlab,點擊右上角用戶圖標,選擇Settings -> Account

  • 打開Jenkins,選擇系統管理 -> 系統設置 -> 配置 -> Gitlab

    • Connection name : 隨便填
    • Gitlab host URL : Gitlab的訪問地址
    • 點擊 Add -> Jenkins
    • 類型選擇GitLab API token,API token填入在gitlab中生成的token
    • Credentials : 選擇剛纔添加的Credentials
    • 點擊Test Connection,返回Success
    • 點擊應用 -> 保存

5. 配置Git插件


  • 打開Jenkins

    • 點擊系統管理 -> 系統設置 -> 配置 -> Git plugin
    • 設置賬戶和郵箱
    • 點擊 應用 -> 保存

6. 使用Jenkins安裝Maven


  • 打開Jenkins
  • 點擊系統管理 -> 全局工具配置 -> Maven -> Maven安裝
  • 輸入名稱,選擇Maven版本
  • Apply -> Save

7. 創建配置Jenkins Job


1. 創建一個Job
  • 點擊創建一個新任務
  • 名字可以自己起,然後點擊構建一個自由風格的軟件項目 -> 確定
2. 在Gitlab中添加ssh祕鑰
  • 具體步驟自己查詢
  • 此處生成是爲了jenkins服務器能訪問到你的gitlab,所以添加的是jenkins所在服務器上的密鑰。
3. 配置Job
  • 打開jenkins,進入job頁面,點擊配置

  • 選擇源碼管理 -> Git

    • Repository URL: gitlab倉庫地址
    • 點擊Add -> Jenkins
      • 類型: SSH Username with private key
      • Username: 自己的用戶名
      • Private Key: 填寫jenkins服務器上的私鑰(注意:此處爲私鑰)
      • 點擊添加
    • Credentials: 選擇剛纔添加的Credentials
    • 點擊保存

7. 配置Job的構造觸發器


  • 打開jenkis,進入job頁面,點擊配置

  • 選擇構造觸發器,選擇輪詢SCM

    • 日程表: H/1 * * * *(此有缺陷, 可以使用 H/2 * * * * 替代,表示一分鐘輪詢一次)
  • 點擊 保存

8. 配置Job的構造腳本


  • 打開jenkins,進入job頁面,點擊配置

  • 選擇構造,點擊增加構造步驟,選擇調用頂層Maven目標

    • Maven版本:選擇剛纔安裝的Maven
    • 目標: clean package
  • 點擊增加構造步驟 -> 執行shell,內容(例子)如下

    #!/bin/bash
    
    echo "Stopping pavilion-api-service"
    pid=`ps -ef | grep pavilion-api-service | grep -v grep | awk '{print $2}'`
    if [ -n "$pid" ]
    then
       echo "kill -9 的pid:" $pid
       kill -9 $pid
    fi
    
    echo "Copy jar file"
    /bin/cp -rf /root/.jenkins/workspace/pavilion-api-service/target/pavilion-api-service-1.0.0.jar /opt/pavilion-api-service/
    
    echo "Run pavilion-api-service-1.0.0.jar"
    cd /opt/pavilion-api-service/
    OLD_BUILD_ID=$BUILD_ID
    BUILD_ID=DONTKILLME  # DONTKILLME只爲可讀,此處可使用任何內容
    nohup java -jar pavilion-api-service-1.0.0.jar > nohup.out &
    BUILD_ID=$OLD_BUILD_ID
    
  • 點擊增加構建後操作步驟,選擇Publish build status to GitLab

  • 點擊高級,填寫build name

  • 點擊應用 -> 保存

9. 測試


  • 在master分支提交代碼進行測試
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章