CentOS7.3下Jenkins+docker自動化部署solo站點

  在互聯網時代,對於每一家公司,軟件開發和發佈的重要性不言而喻,目前已經形成一套標準的流程,最重要的組成部分就是持續集成(CI)及持續部署、交付(CD)。

  持續集成(CI)表示由開發對項目代碼進行確認修改並推送到git,svn,ftp等應用的持續更新發版操作。

  持續部署(CD)表示根據jenkins在應用中拉取的代碼可以對目標服務器進行持續部署到任何環境下。

  將代碼更新後,提交到指定的存儲庫中,如git,svn以及ftp等應用中,再由運維通過jenkins拉取存儲在應用中的項目代碼,打包成war包的形式部署到對應的測試環境以及生產環境中。docker的參與就在於,通過執行shell語句拉取遠程鏡像倉庫的鏡像,以及git,svn,ftp中的項目代碼,在本地docker環境下,通過Dockerfile的形式再改遠程鏡像中構建出一套存在項目代碼的新的基礎鏡像,並將鏡像上傳到遠程registry中,再通過jenkins中ssh協議對想要部署的docker主機進行鏡像拉取,容器創建等遠程部署操作,這樣服務就能正常運行了。

  Jenkins與Docker的自動化CI/CD實戰

工作流程:

  1. 開發人員提交代碼到Git版本倉庫;

  2. Jenkins人工/定時觸發項目構建;

  3. Jenkins拉取代碼、代碼編碼、打包鏡像、推送到鏡像倉庫;

  4. Jenkins在Docker主機創建容器併發布。

環境規劃如下:

  node-1:192.168.175.128 jenkins/docker

  node-2:192.168.175.130 docker/部署主機

  node-3:192.168.175.131 git/registry 倉庫


1.部署Git倉庫

主機node-3


  1.安裝git

    #yum install -y git


  2.創建git用戶、

    #useradd git

    #passwd git


  3.以git用戶的身份在其家目錄下創建git倉庫

    #su - git

   ~]mkdir solo.git  //該倉庫絕對路徑爲/home/git/solo.git

  

  4.嘗試拉取遠程git倉庫中的代碼

    #git clone [email protected]:/home/git/solo.git


2.部署私人registry

主機 node-3


  1.安裝docker

  # yum install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm  -y
  # yum install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm  -y

 

  2.啓動docker

  # systemctl start docker && systemctl enable docker


  3.創建registry,並在後臺運行

  # docker pull registry

  # docker run -itd --name registry -p 5000:5000 --restart=always registry

 

3.部署jenkins

  1.安裝jdk,maven

    # tar -xf  jdk-8u181-linux-x64.tar.gz -C /usr/local

    # mv /usr/local/jdk-8u181-linux-x64 /usr/local/jdk1.8

    # tar -xf apache-maven-3.5.0-bin.tar.gz -C /usr/local

    # mv /usr/local/apache-maven-3.5.0-bin /usr/local/maven

    # cat > /etc/profile.d/java.sh << EOF

       export JAVA_HOME=/usr/local/jdk1.8
       export MAVEN_HOME=/usr/local/maven
       export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

       EOF

    # source /etc/profile.d/java.sh


  2.安裝tomcat環境(源碼安裝)

    # tar -xf apache-tomcat-8.5.33.tar.gz -C /usr/local

    # mv /usr/local/apache-tomcat-8.5.33 /usr/local/tomcat

 

  3.導入jenkins的war包

  https://jenkins.io/download/  

  如圖點擊下載最後一個Generic Java package(war):
Jenkins與Docker的自動化CI/CD實戰


     # rm -rf /usr/local/tomcat/webapps/ROOT/*

     # unzip jenkins -d /usr/local/tomcat/webapps/ROOT/

     # cd /usr/local/tomcat/bin

     # ./startup //啓動tomcat

   

    安裝的jenkins默認家目錄在/root/.jenkins


    瀏覽器訪問:http://192.168.175.128:8080

    輸入密碼,進行初始化


    選擇右邊的選擇安裝引擎

    圖片描述 

圖片.png

    爲了保證jenkins主機能夠在docker主機遠程執行shell腳本,能夠對git倉庫進行代碼拉取

    讓jenkins主機能夠無密登錄130,以及131兩臺機器

    192.168.175.128下執行

    # ssh-keygen -t rsa

    # ssh-copy-id -i /root/.ssh/id_rsa.pud [email protected]

    # ssh-copy-id -i /root/.ssh/id_rsa.pud [email protected]


4.導入代碼到git倉庫

    # git clone https://github.com/b3log/solo
    # cd solo
    移除舊的推送地址,添加新的:
    # git remote remove origin
    # git remote add origin [email protected]:/home/git/solo.git  
    提交代碼到Git倉庫並創建tag:
    # touch src/main/webapp/a.html
    # git add .
    # git commit -m “a”
    創建標籤:
    # git tag 1.0.0
    推送到Git服務器:
    # git push origin 1.0.0


5.創建Tomcat基礎鏡像並導入registry

    1.tomcat Dockerfile

    [root@node-3 ~]# cat docker/tomcat/Dockerfile2
    FROM centos:7
    MAINTAINER   wjq

    RUN yum install unzip iproute -y

    ENV JAVA_HOME /usr/local/jdk

    ADD apache-tomcat-8.0.46.tar.gz /usr/local
    RUN mv /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat

    WORKDIR /usr/local/tomcat
    EXPOSE 8080
    ENTRYPOINT ["./bin/catalina.sh", "run"]


    2.創建鏡像

    # docker build -t 192.168.175.128:5000/tomcat-9 -f Dockerfile2 .

  

    3.上傳到私有鏡像倉庫

    # docker push 192.168.175.128:5000/tomcat-9


6.jenkins配置定義

    1.系統管理 --> 憑據

     配置遠程docker主機的身份,讓jenkins能夠在該docker主機上進行鏡像拉取,容器構建操作,可以使用密鑰,密碼的方式

     圖片.png


   

    2.系統管理 --> 系統設置 配置遠程主機信息,主機IP,使用的憑據,訪問端口

  圖片.png



   


    3.系統管理 --> 全局工具設置 設置jdk,maven,git的全局配置,如路徑,名稱

    圖片.png


    圖片.png


    4.系統管理 --> 管理插件 安裝插件SSH,Git Parameter,Maven Integration plugin

   

    5.創建Maven項目,進行配置

   圖片.png

 

  設置在git倉庫拉取代碼,需要設置無密連接

   圖片.png

  圖片.png

 

  在本地jenkins執行shell命令,並在遠程docker操作主機將封裝好的鏡像拉渠道docker主機,刪除之前部署過的鏡像和容器,並啓動封裝了最新代碼的鏡像容器

  圖片.png


  進行部署

  1.保存配置

  2.Build with Parameters:根據Tag選擇版本號

  圖片.png

  3.進入控制檯查看輸出

  圖片.png


    4.訪問博客

    圖片.png

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