【Jenkins】Linux操作系統下部署Jenkins環境,數據遷移(備機部署)以及主從節點的配置

    

    本文所闡述的,均是在Linux操作系統下部署Jenkins環境,採用的解決方案是,使用TomcatJenkins.war包和maven,以及利用Nginx做Tomcat的反向代理來實現Jenkins的CI/CD。


目錄

Jenkins環境部署

數據遷移(備機部署)

Jenkins主從節點配置


  附環境部署所需要的包:

    Jenkins.war包
        鏈接: https://pan.baidu.com/s/1K0m4at9Iti-WHkUC9ZguYQ 密碼: nbmp

    Tomcat zip包
        鏈接: https://pan.baidu.com/s/1a4AQPc9cKNhipgvPiL5FLA 密碼: kqv2

    Maven tar包
        鏈接: https://pan.baidu.com/s/1hFytUGAPEiZ_p5CotnhZDg 密碼: iep5
    
    Nginx tar包
        鏈接: https://pan.baidu.com/s/1ISToevWLFYBC_gpb-2cGEA 密碼: 3yqm

Jenkins環境部署

      編者將/data作爲Jenkins的部署目錄,目錄可因個人使用習慣進行更改。另將所有的需要使用到的包放置在部署目錄下。

      1、部署Tomcat環境

       (1) 解壓Tomcat安裝包

[-> ~#] cd /data
[-> ~# data] unzip apache-tomcat-8.5.32.zip 

       (2) 啓動Tomcat服務

[-> ~# data]  cd  unzip apache-tomcat-8.5.32
[-> ~# apache-tomcat-8.5.32] chmod +x ./bin/*.sh     # 針對腳本無權限的用戶,如有忽略
[-> ~# apache-tomcat-8.5.32] ./bin/startup.sh        # 啓動Tomcat
[-> ~# ] ss -antulp | grep java                      # 如果8080,8009,8005端口都啓動了,說明Tomcat環境部署成功

     2、部署Maven

     (1) 解壓maven tar包

[-> ~#] cd /data
[-> ~#] tar -xf apache-maven-3.5.4-bin.tar.gz

     (2) 部署Maven環境變量

[-> ~#] vim /etc/profile 

   # 將下列的文字添加至文件末:
        export MAVEN_HOME=/data/apache-maven-3.5.4

[-> ~#] source /etc/profile     # 使得配置文件立即生效
[-> ~#] mvn -v                  # 如果出現maven版本號,說明maven環境部署成功

      3、部署Jenkins

        爲確保後續的操作,建議將Tomcat停止,

[-> ~#] cd /data/apache-tomcat-8.5.32
[-> ~# apache-tomcat-8.5.32] ./bin/shutdown.sh               # 停止Tomcat

[-> ~# data] cp jenkins.war apache-tomcat-8.5.32/webapps    # 將jenkins.war包放到tomcat的webapps目錄下
[-> ~# data] mv apache-tomcat-8.5.32/webapps/jenkins.war apawche-tomcat-8.5.32/webapps/ROOT.war        # 將jenkins.war更名爲ROOT.war

[-> ~# apache-tomcat-8.5.32] ./bin/startup.sh               # 啓動Tomcat,如果8005端口沒有啓動則無法訪問

      4、部署Nginx環境

    在這裏說明下爲什麼要部署Nginx環境,因爲一般在生產環境中,8080端口是不對外開放。既然如此,那我們只能通過Nginx的反向代理方式,來實現8080端口的訪問。

[-> ~#] cd /data
[-> ~# data] tar -xvf nginx-1.12.2.tar
[-> ~# data] cd nginx-1.12.2
[-> ~# nginx-1.12.2] ./configure --prefix=/usr/local/nginx --with-http_ssl_modules  --with-stream && make && make install            # 源碼編譯安裝Nginx
[-> ~# nginx-1.12.2] ln -s /usr/local/nginx/bin/nginx /sbin/nginx    # 創建nginx鏈接
[-> ~# nginx-1.12.2] vim /usr/local/nginx/conf/nginx.conf 

    # 增加以下內容 :
        http{    
            ... ...
            upstream jenkins{                # 反向代理配置
                server 127.0.0.1:8080;
            }
        }
        server{
            ... ...
            location / {
                proxy_pass http://jenkins;   # 反向代理的調用
            }
        }
[-> ~# nginx-1.12.2] nginx -t     # 檢查nginx配置文件是否爲ok
[-> ~# nginx-1.12.2] nginx        # 如果之前有啓動過nginx,那麼需要使用"nginx -s reload"

     使用"ss -antulp" 查看 80,8080,8009,8005端口是否開啓,如果都已經開啓,則可以繼續往下操作,

訪問 "http://host_ip",即可跳轉到jenkins頁面。

 

     根據提示,在命令行獲取登陸jenkins的密碼,密碼可在進入jenkins後進行修改

 

         選擇安裝插件方式:

   

        不用創建用戶,直接使用admin用戶進行登錄即可

   

       部署完成


數據遷移(備機部署)

    準備一臺新的主機,將Jenkins主服務器上 /data目錄,以及jenkins的主目錄所有數據同步備份到備機上

[-> ~#] rsync -az --delete /data root@host_ip:/data    # 需要做主機互信,才能免密,如果非22端口,需要使用'ssh -p 端口號'進行同步
[-> ~#] rsync -az --delete /root/.jenkins root@host_ip:/root/.jenkins

    除此之外,在做Jenkins備機的時候,先將jenkins退出(http://host_ip/exit),然後將Tomcat停止。

    做完備份之後,我們還要設置Jenkins的環境變量

[-> ~#] vim /etc/profile
    # 文末添加如下內容:
        export JENKINS_HOME=/root/.jenkins    

[-> ~#] source /etc/profile

[-> ~#] vim /data/apache-tomcat-8.5.32/bin/catalina.sh
    # 在配置文件的“# OS specific support.  $var _must_ be set to either true or false.”的上面添加:
        export JENKINS_HOME=/root/.jenkins

    注意:如果沒有設置環境變量,有可能會造成Jenkins數據同步失敗、用戶同步失敗或者用戶權限同步失敗等問題。

  上述步驟完成後,啓動Tomcat,以及啓動Jenkins,如果無誤的話,備機服務器上,是和主機上的一致。如圖

   數據實時備份可以採用 "rsync+cron" 進行實現,附腳本:

[-> ~# data] vim rsync.sh
    #!/bin/bash
    rsync -az --delete /data root@host_ip:/data  
    rsync -az --delete /root/.jenkins root@host_ip:/root/.jenkins

[-> ~# data] crontab -e -u root
    0 0 * * * bash /data/rsync.sh

Jenkins主從節點配置

    因網上有許多Jenkins主從節點配置的文章,就不在這裏詳細闡述了,編者擇選了一篇較爲詳細的附上鍊接:https://blog.csdn.net/ruangong1203/article/details/78687450


 本文旨在提供參考,如有錯誤,歡迎大家指正。幫助編者不斷的改進!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章