[原]Linux環境-Jenkins實戰-分佈式構建-自動化持續集成-自動化部署-gitlab-svn-shell啓動tomcat

[原]Linux環境-Jenkins實戰-分佈式構建-自動化持續集成-自動化部署-gitlab-svn-shell啓動tomcat

廢話很少說,開始實施... 一些基本知識須要本身實踐完,進行自我補充和提升。在下一節會介紹原理。html

文中所涉及到的linux命令,請按步驟執行!建立的文件夾,權限設置爲最大(可讀寫);sudo chmod 777 folder-name;java

一.Jenkins安裝linux

    1.安裝環境 jdk+maven+git+tomcatgit

      在這裏我要提醒一下,這些安裝環境是基於依賴於git管理的項目部署必備的(SVN管理也能夠),適用於本人所處開發環境及大多數開發環境。github

      1.jdk安裝 v1.8web

        jdk版本1.7或者1.8均可以,linux 上jdk安裝步驟:shell

        1.新建文件夾               apache

sudo su;//提高root權限
mkdir /usr/lib/jvm;

        2.下載 jdk-8u101-linux-x64.tar.gz 官網中下載,而後上傳到linux服務器。上傳命令:sudo rz -y;                api

           上傳完成後,解壓縮文件:瀏覽器

sudo tar -zxvf jdk-8u101-linux-x64.tar.gz    -C   /usr/lib/jvm;

  3.設置環境變量

sudo  vi  /etc/profile;

    打開文件後,在文件的末尾加上如下這些:

#java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

        4.設置系統默認的jdk

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_101/bin/java 300;
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0_101/bin/javac 300;

        5.檢查是否安裝成功:

java  -version;

     2.安裝maven

        1.下載 maven包上傳到服務器:

        2.建立文件夾:

sudo mkdir /usr/lib/maven;

        3.解壓文件:

sudo tar -zxvf maven-3.9.tar.gz -C /usr/lib/maven;

        4.設置環境變量:/etc/profile 爲系統變量;~/.bashrc 爲用戶變量 

sudo vi /etc/profile;

           在末尾加入:

#maven environment
export    MAVEN_HOME=/usr/lib/maven/apache-maven-3.9
export    PATH=$MAVEN_HOME/bin:$PATH

         5.使文件生效:

sudo source /etc/profile

         6.查看是否安裝成功

mvn -v

      3.安裝git

         1.下載git

            能夠直接下載git包解壓安裝,具體詳細git各類環境操做能夠點擊:https://git-scm.com/downloads 

            這種安裝方式能夠參考:http://jingyan.baidu.com/article/e9fb46e16698687521f766ec.html  

            在centOS5中的yum源中沒有git.就須要用以前的方式,在centOS6以上中的yum源有git:           

sudo yum update;
sudo yum -y install git;

        2.查看是否成功

git --version;

        3.設置git

git config --global user.name "your login name";
git config --global user.email "your email@163.com";

         設置完,能夠經過 cat ~/.gitconfig   查看;

        4.設置ssh-key;

        以公鑰認證方式訪問SSH協議的Git服務器時無需輸入口令,並且更安全。(訪問HTTP協議的Git服務器時,好比提交修改,每次都須要輸入口令)

        注意:必定是在root權限下進行獲得的ssh公鑰:       

sudo su;
ssh-keygen -t rsa -C "your email@163.com";

        直接默認,按回車就能夠了;系統會提示ssh-key的保存位置(通常是~/.ssh目錄)和指定口令。

cd ~/.ssh
ll
cat id_rsa.pub

        複製裏面的內容;

       5.登陸gitlab;

        點擊 設置 選擇ssh key;

        將公鑰複製到sshkey中;

       6.測試是否成功:

        在服務器上:

ssh -T git@github.com

    4.安裝tomcat

        1.將tomcat包上傳服務器,解壓。

        這裏須要注意的是:

            第一,若是咱們是利用tomcat啓動Jenkins,咱們須要將 web項目與Jenkins服務 的tomcat分開進行部署。這是由於 當咱們再從新啓動部署web項目時,不影響Jenkins的服務。

            注意 修改各個tomcat中的端口號,避免衝突;

            第二,若是咱們使用 java -jar  jenkins.war;則能夠不分開部署Jenkins;

     5.安裝Jenkins

        1.咱們下載 Jenkins.war包(版本:2.7.3),上傳到服務器。

        2.將 Jenkins.war 移動到Jenkins 所使用的 tomcat中的webapps的目錄下。

sudo mv jenkins.war  /apache-jenkins-tomcat/apache-tomcat7/webapps

        3.啓動 tomcat:

sudo sh startup.sh

        4.訪問:

        在瀏覽器中 訪問 : 服務器ip:port/jenkins

           例如:192.168.1.1:8080/jenkins

        5.進入以後,會提示你輸入 訪問Jenkins的初始化密碼,而且告訴你了 密碼存放位置,若是沒有找到,就在如下命令中進行查找:

           訪問開始:如圖 

           此密碼 在tomcat啓動日誌裏存在,或者 到 sudo cat /root/.jenkins/secrets/initialAdminPassword中 查看。

        6.進行代理服務器設置,由於須要鏈接外網 進行接下來的插件下載與安裝。

            輸入遠程代理服務器ip 及 端口號便可,不用密碼;

        7.點擊下一步,會出現兩個選擇,一個就是 進行推薦的插件下載,一個就是自主選擇插件下載安裝。此時選擇第一個推薦的插件下載安裝。

        8.等待插件安裝完成後,下一步就會 進行 用戶登陸的設置,註冊 用戶名 及密碼。

        9.而後下一步,就完成了。進入到Jenkins頁面中。

2、Jenkins系統管理

    1.接下來,咱們須要進行給Jenkins系統設置相關的參數及構建項目時所須要的配置。我會 附上 圖,而後解釋 具體某個選項什麼意思;

           1.首先,咱們要進行插件管理,安裝好咱們所須要的插件。

                  所須要的插件列表:

                  除了,初始化配置時候,推薦安裝的插件外,還須要 進入到

                  系統管理-->管理插件-->可選插件  :查找  1.gitlab相關插件並安裝; 2.maven相關插件並安裝; 3.Deploy to container Plugin(此插件 用於 構建後部署到  tomcat時候 使用);4.publish-over-ssh (此插件用於 構建部署成功後,在相應的服務器上 進行 shell腳本 自動化啓動)。

               注意 點擊 直接安裝 publish-over-ssh插件,可能會失敗,報錯信息:

          這是 由於 訪問限制,所以改成手動安裝便可:

          解決辦法:

          點擊 插件超連接 進入到 下載界面,

                       

                    下載 hpi 文件到本地,而後 在系統管理--管理插件--高級--瀏覽-上傳插件便可,如圖:

                       

                    而後它自動上傳並安裝。

                    完成後,重啓jenkins。

           2.系統管理-->系統設置:

                   1.下圖中主目錄 是 默認的,也能夠進行配置更改,我不介紹了。     

                  2.

 全局屬性中的參數是解決 構建中 出現 的 ‘ssl認證失敗’ bug。

Exception Log:SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:
SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/...

解決方法---參數:GIT_SSL_NO_VERIFY   = true

          3.                      

        gitlab api token的密碼所在位置 

          4. 

           5.若是有多個機器,能夠選擇增長,配置多個機器。方法 同樣。         

           3.全局配置:

             系統管理-->Global Tool Configuration :               

      
           4.安全配置:    

                    系統管理-->Configure Global Security . 默認配置就行。

           5.用戶配置:

                    可進行對 用戶 的 增刪改。

           6.節點配置:用於分佈式多平臺測試、構建項目。

                    系統管理-->管理節點:

                    1.

                   

                    2.

                   

                    3.

                    點擊 launch 按鈕,此時 服務器 會下載 一個 slave.jar 文件,到 遠程工做目錄。該文件 是用來 master-slave  之間 進行通訊的。

       在研究配置的過程當中,處理時間最長的問題,就是gitlab配置問題。

       在構建項目的時候,老是提示如下異常:

       出現異常的緣由就是 用戶認證證書權限不正確,因此咱們要設置最高權限的Jenkins認證證書。這樣才能保證不出錯誤。

       以上就是一個本身總結出來的配置說明。

    2.以上所有配置完成之後,咱們開始構建一個項目。

        1.設置一個project_name;

        2.選擇構建 maven 項目;

        3.點擊ok,進行構建項目配置:

            如下是構建過程當中的各個選項說明:

            1.除特別說明標記的,畫圓圈的爲重點配置介紹,其他可不配置或者默認便可。

             2.

             3.構建觸發器:

               4.咱們在構建以前須要執行shell腳本,將原來web項目的war和文件夾刪除。

                  如下爲shell腳本內容以及如何使用:

               5.構建後:由於咱們須要把git下來的war包部署到各個不一樣服務器的tomcat中,全部咱們用到這個插件 Deploy ....

                  咱們須要在各個服務器中 進行tomcat的修改,修改內容爲:

                  咱們將 修改 tomcat底下的 用戶角色 配置,‘

sudo vi  /tomcat/conf/tomcat-user.xml

                  修改成:                  

<tomcat-users>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="admin" />
<user username="tomcat" password="123456" roles="admin,manager,manager-gui,manager-script,manager-jmx" />
</tomcat-users>

                而後,從新啓動tomcat;

                以上配置完成後,咱們須要輸入,tomcat 用戶名 密碼,及host

                如圖:

        4.構建成功後:

           Jenkins在構建成功後,會把項目生成在Jenkins的workspace中,注意 生成位置是 系統配置中 的 主目錄路徑下,如圖:

            是在這個路徑下。

           咱們知道了這個路徑,接下來會有用,和咱們能夠了解怎麼改變此路徑。能夠查閱相關資料。搜索  ‘修改Jenkins 工做空間 路徑’。

    到此爲止,咱們構建完成,而且部署完成,以上這些步驟,能夠完成這些操做:

            1.當構建觸發器中設定的規則 被觸發,咱們將進行構建。

            2.構建開始時,先將tomcat中的war文件及web項目文件夾刪除。

            3.而後將 git clone 項目 到Jenkins的workspace中,把打好的war包 Deploying到 相應的tomcat 服務器的webapps目錄下。

       若是不須要 自動化執行 重啓tomcat命令的話,到此,咱們就能夠結束了,接下來咱們就能夠手動重啓tomcat服務器。而後跳過第5步驟,看第6步驟。

      若是你想實現,部署完成後,須要自動化執行啓動,那麼咱們須要以下操做:看第5步驟:

    5.點擊 增長構建後的步驟按鈕,選擇  send build artifacts over ssh:

        以下圖:咱們進行配置:

        執行shell腳本的內容爲:

javapid=`ps aux|grep java|grep -v grep|grep apache-datax-7.0.70|awk '{print $2}'` 
  echo $javapid
  if [ ! -n "$javapid" ];then  
      echo "no java process "  
      sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh   
      echo "Tomcat start success"  
 else  
      echo "has a java process"  
      sudo kill -9 $javapid  
      sleep 5  
      sudo /bin/sh /app/apache-datax-7.0.70/bin/startup.sh  
      echo "Tomcat restart success"  
fi

        執行的思路就是:查看web項目的tomcat進程是否存在,不存在,直接重啓。存在,kill掉,而後在重啓。

    6.保存項目。

        1.點擊當即構建,查看日誌,會進行git clone,而後下載pom文件中所須要的 jar包。

        這時候 咱們要注意 maven所須要的 setting.xml配置文件,要和你本地eclipse中使用 的setting文件一致,由於通常公司都會有 本身 maven倉庫。這樣才能依賴到各個jar包。

        2.若是在構建過程當中,報了 執行 shell腳本異常,錯誤緣由是:

        那麼,咱們須要 修改 tomcat的 catalina.sh文件。       

sudo vi /tomcat/bin/catalina.sh 
將 JAVA_HOME=/jdk_path

        加入到這個文件中,而後保存,重啓tomcat。

        3.到此,咱們就成功完成Jenkins所有部署了。

        4.異常信息:

            若是出現這個錯誤,就是 tomcat-user.xml配置文件的角色問題,查看前面配置說明。

固然還有許多Jenkins的功能沒有進行說明,先不作一一介紹。若是有問題,能夠直接留言。

這些是真實實踐出來的結果,但願你們支持,共同反饋,共同進步。轉載請說明出處。

 

附加資料:

文件權限配置說明:

http://blog.chinaunix.net/uid-25052030-id-174343.html 

linux添加用戶,修改用戶權限說明:

http://www.cnblogs.com/daizhuacai/archive/2013/01/17/2865132.html 

做者:powerman91   時間:2016.9.1

相關文章
相關標籤/搜索