代碼上線流水發佈操做node
Pipeline中文意思爲流水線之意,公司可能有不少項目,若是使用Jenkins自動構建成功後,開發須要一項一項點擊,比較繁瑣,因此出現pipeline流水化做業的代碼測試管理,代碼質量測試完畢以後,咱們需將代碼部署到測試環境或線上環境進行測試。 git
項目需求:在任意普通用戶的家目錄先將代碼從gitlab中拉取下來,編寫腳本,實現將代碼自動拷貝至後端的Tomcat主機或其餘web服務器。web
新建項目後端
點擊新建-->構建一個自由風格的軟件項目-->點擊OK安全
點擊項目名稱-->設置-->構建中選擇執行遠程腳本服務器
重要提示:執行遠程命令主要涉及的是權限問題,咱們要搞明白Jenkins是以什麼權限來執行命令的,咱們如今在Jenkins服務器上,若是在www用戶上執行命令,須要怎麼作?ssh
使用Jenkins用戶將公鑰發送給www用戶工具
使用root用戶將公鑰發送給www用戶,若是使用管理員命令則需sudo提權執行,由於web上默認執行命令的Jenkins用戶gitlab
將Jenkins上的私鑰發送給www用戶,將root的私鑰發送給www,並使用sudo提權,使得各個用戶之間能夠互通。測試
[www@node2 ~]$ cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLS+HnuGeiI8xQ3duMoJgdF7y4hXRt6FcXNDsYcQ6LaLT8JHN0EajscuMxjrNNKD+2OtTIzMY9/hkxIfH7TvUQRYfbNro6WTefnjmzyHaluG2gWvtL9zEJczxZhTAPLUa0ILkPzGvoiCC5em6wHWnqvlq7f/1BYSv4FyPhsrSiT3VlqoXB2ZvKRMOhPH5gd38EJIpgDAIPGJZpgLnEHpWJGIRcQBKZk8iwKSE+p38P5kggfbxc+epialKd69r7JjdHuZS/osBWUlklovUdGznlcFI+/1fKoXxL852MCZc/cleG40JDb/kDw1jId00Guza4UoK4G+74QdumilQD+RuP www@node2.alren.com
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFGANCXHKFQbKqxSJCENMg41oMoFZmiwOUSUWfCucQzb6/KRgUdhOjKaUavUZBhx5f7XXbIfpr3CHLJLyRxH7DQgSawmleH0gAkx9n2BaSpe9lKfY8h5qTB9T2nSW012Dsz4hK4n0AeNUvMfqcUO4/V4fVs+hOZCh/S3a5MH1rDkeekbguEnGeUPf7/6BzGpz6LEfR3U3Q4X9hvc9gDWYH4pbwz4xOHyrWADZRiwn76NNuLGkgvcUjl8jnpN02ADwyTlFFIAkgcmuxGg5Zaik3THyoksYoyJ30CPC1sFhVRlSR3eiXijpnTrnfGRLX21JKDRCM2TFoGTPd/WS6iZ3F root@node2.alren.com
[www@node2 ~]$
#編輯/etc/sudoer,註釋tty和添加必要的權限
root ALL=(ALL) ALL
jenkins ALL=(ALL) NOPASSWD /usr/bin/ssh
在/home/www寫一個測試腳本,檢車腳本是否可執行成功
而後咱們點擊當即構建,查看構建結構
上訴腳本能自動執行,則可配置www用戶能夠遠程ssh到web服務器,將家目錄下的源碼文件拷貝至web服務器的站點根目錄實現自動部署。這會看的是你寫腳本的能力。。。。
項目需求:當本地Jenkins代碼測試成功以後自動聯動部署代碼至web服務器的站點根目錄。一系列的動做需自動完成則須要安裝Parameterized插件,系統管理-->管理插件-->可選插件 搜索Parameterized,若是插件在線安裝不成功你懂得,可將下載好的插件解壓至plugin目錄下,將目錄下的全部文件屬組屬主換成Jenkins,重啓服務便可。
點擊項目-->設置-->構建後操做-->trigger parameterized build on projects -->Add triggers-->點擊保存
點擊構建項目test-delpoy時自動聯動auto-deloy,進行構建,可見第一個球閃爍完後,第二個球接着閃爍,完成自動構建
下載Pipline,它是一個更爲方便觀察項目的自動構建的圖形化工具
系統管理-->插件管理-->搜索安裝插件pipline
點擊項目All後面的+號,新建一個視圖,給視圖取名,自定義一些選項。
pipeline視圖效果更加直觀: 紅色表明構建失敗,綠-藍表明項目沒有關聯,兩個都是綠的則代表項目相互關聯,依次執行,可清晰看到上下狀況和次數。
git提交操做觸發Jenkins自動構建
Jenkins與gitlab集成後,實現的功能是開發寫好代碼push到gitlab上,push完成以後,jenkins自動幫咱們當即構建,此方法通常使用在測試環境。
點擊此項目並可觸發項目聯動結合腳本可實現自動上線部署,而每每這個功能只用在測試部署,上線部署手動完成較安全。
需安裝GitlabHook Plugin插件
系統管理-->管理插件-->安裝GitlabHook Plugin
完成後,需配置gitlab hook插件,使用openssl rand -hex 14命令自動生成隨機碼
點擊項目-->設置-->構建後觸發器
配置完成後則需在gitlab中配置webhooks
點擊項目-->設置圖標
Build Authorization Token Root Plugin 插件使用說明
https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
示例:buildByToken/buildWithParameters?job=RevolutionTest&token=TacoTuesday&Type=Mexican
在gitlab上配置以下URL:格式以下:http://X.X.X.X:8080/buildByToken/build?job=項目名&token=隨機數
配置完後,可點擊Test按鈕進行測試
Jenkins控制檯輸出: