2020/06/10 Jenkins+Ansible+Gitlab自動化部署

2-1Gitlab介紹

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2-3 gitlab安裝配置管理

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
Omnibus綜合的意思,一鍵安裝包

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
啓動一臺虛擬機,用windowsgit連接

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
重啓再登錄
在這裏插入圖片描述

安裝gitlab依賴包
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
啓動postfix郵件服務,設置開機加載

在這裏插入圖片描述
在這裏插入圖片描述
使用openssl命令去創建證書
在這裏插入圖片描述
用私有密鑰去創建ssl證書,gitlab的域名
在這裏插入圖片描述
私有密鑰。csr證書都創建出來了
在這裏插入圖片描述
用私鑰和csr證書去簽發crt證書,x509 -req代表簽署證書的格式,-days 365證書有效時間,-in引入csr證書,-signkey 引入私有密鑰,-out輸出 證書路徑
在這裏插入圖片描述
現在證書就有了
在這裏插入圖片描述
現在需要輸出pem證書
在這裏插入圖片描述
輸出pem證書

在這裏插入圖片描述
、修改權限

在這裏插入圖片描述
將所有證書配置到gitlab配置文件中
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
初始化gitlab的所有相關服務配置
在這裏插入圖片描述

去找nginx代理工具
在這裏插入圖片描述
在這裏插入圖片描述
讓配置生效

在這裏插入圖片描述
可以在windows的hots文件設置一下gitlab的dns解析
在這裏插入圖片描述

在這裏插入圖片描述
需要寫一個密碼在這裏插入圖片描述

苦於創建一個新的倉庫在這裏插入圖片描述
在這裏插入圖片描述
複製地址

在這裏插入圖片描述
在這裏插入圖片描述
克隆倉庫到本地,需要輸入密碼

在這裏插入圖片描述
創建測試代碼
在這裏插入圖片描述
在這裏插入圖片描述
添加該文件到本地倉庫
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
push到遠程倉庫
在這裏插入圖片描述
在這裏插入圖片描述

2-4gitlab的應用

可以針對不同用戶和項目設定不同的權限。
有時候會提交master,合併主分支的申請,等待領導審覈

在這裏插入圖片描述

運維人員該如何去檢查gitlab健康狀況
在這裏插入圖片描述
進入到後臺管理界面,monitoring下面有很多實例
在這裏插入圖片描述
在這裏插入圖片描述
log實例下,application log記錄了很多相關gitlab的審計記錄操作
在這裏插入圖片描述
production log記錄了訪問日誌在這裏插入圖片描述
** health check 可以看到一個總的健康狀況**在這裏插入圖片描述
創建一個gitlab用戶給開發

在這裏插入圖片描述
在這裏插入圖片描述保證是一個普通賬號

在這裏插入圖片描述
創建一個項目管理的賬號
在這裏插入圖片描述
創建領導賬號

在這裏插入圖片描述
管理我們創建的倉庫

在這裏插入圖片描述
dev選擇developer權限加入項目

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
修改這兩個賬號的初始密碼
在這裏插入圖片描述
在這裏插入圖片描述
測試簡單點,可以輸入12345678

在這裏插入圖片描述
初始lead賬號的密碼
在這裏插入圖片描述
演示開發人員編寫好代碼後,如何將代碼提交到分支下,併合併到master主分支的申請

之前使用管理員創建的倉庫目錄,現在需要用dev來創建
在這裏插入圖片描述
創建一個開發人員維護的git分支
在這裏插入圖片描述
在這裏插入圖片描述
修改代碼
在這裏插入圖片描述
在這裏插入圖片描述
這樣就把本地的分支同步到了gitlab中

在這裏插入圖片描述
登錄dev賬號

在這裏插入圖片描述
可以把分支合併到主分支裏

在這裏插入圖片描述
在這裏插入圖片描述
寫lead賬號保證lead賬號可以收到申請
在這裏插入圖片描述
退出dev賬號,lead賬號
在這裏插入圖片描述
可以點擊到裏面

在這裏插入圖片描述
可以點擊merge確認操作

在這裏插入圖片描述
可以給dev回覆一句話
在這裏插入圖片描述
主分支下獲取到了最新代碼

在這裏插入圖片描述

3-1 ansible簡介

在這裏插入圖片描述
在這裏插入圖片描述

3-2 ansible的優勢和應用場景

在這裏插入圖片描述
在這裏插入圖片描述

3-3 ansible配合virtualenv安裝配置

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
開一臺虛擬機作爲ansible

在這裏插入圖片描述
ssh連接過去

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
安裝python3.6.5
在這裏插入圖片描述
**設定一些編譯參數的值
–prefix將python3.6.5安裝到/usr/local下
–with-ensurepip 安裝pip包管理工具
–enable-shared 配置python3.6.5當前系統的參數值
**

在這裏插入圖片描述
在這裏插入圖片描述
因爲是3.6版本python,所以pip是3.6,用pip包管理工具安裝virtualenv
在這裏插入圖片描述
切換到deploy用戶,創建python3.6用戶

在這裏插入圖片描述
在這裏插入圖片描述
安裝git
在這裏插入圖片描述
把ansible源代碼克隆到本地

在這裏插入圖片描述

在這裏插入圖片描述
安裝ansible依賴包
在這裏插入圖片描述
把ansible目錄移動到虛擬環境下,切換ansible版本是2。5版本
在這裏插入圖片描述
虛擬環境下加載2.5版本
在這裏插入圖片描述
完成在python虛擬環境下安裝2.5版本

在這裏插入圖片描述

ansible playbooks入門和編寫規範

UAT單元測試環境

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏有一個test主機

在這裏插入圖片描述
登錄ansible主機
在這裏插入圖片描述
加載python3.6的虛擬環境
在這裏插入圖片描述
同時加載ansible的2.5版本到當前的deploy用戶
在這裏插入圖片描述
在這裏插入圖片描述
創建若干子目錄,來搭建playbook框架
在這裏插入圖片描述
這樣就定有好了組列表和參數

在這裏插入圖片描述
main.yml作爲testbox的主任務文件
在這裏插入圖片描述
測試任務,在目標主機下輸出一行

在這裏插入圖片描述
現在需要給test-playbooks創建任務路口文件
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
對應test-playbooks下的inventory下的testenv下的標籤,定義主機

在這裏插入圖片描述
獲取目標主機的一些facts信息
在這裏插入圖片描述
告訴ansible在目標主機下用root用戶運行
在這裏插入圖片描述
進入到roles目錄下的testbox執行任務
在這裏插入圖片描述
這樣就創建好了一個playbooks的入口文件,下面就是目錄結構
在這裏插入圖片描述
返回到root
在這裏插入圖片描述
在這裏插入圖片描述
增加一條dns記錄

在這裏插入圖片描述
創建密鑰認證對
在這裏插入圖片描述
-i 指定公鑰
在這裏插入圖片描述
現在可以直接ssh
在這裏插入圖片描述
現在去執行ansible playbook入口文件,完成部署到testenv的操作,第一個task獲取到了一些基本信息,下面有一個總結
在這裏插入圖片描述
在這裏插入圖片描述
成功創建 了一個test文件
在這裏插入圖片描述

3-6 ansible playbooks常用模塊介紹

name定義任務名稱
file申明語句調用的是file模塊,權限,創建文件的路徑,創建,所有人,所屬組

在這裏插入圖片描述
remote_src=no申明將源ansible的主機文件,傳送到目標主機中
force=yes copy任務是強制執行的

在這裏插入圖片描述
任務名檢查文件是否存在
register:script_stat 用來將stat獲取到的文件狀態信息傳送給script_stat變量

在這裏插入圖片描述
debug:msg=語句輸出
when調用之前的stat變量信息

在這裏插入圖片描述

shell模塊會調用linux下的/bin/bash,所以就可以使用系統環境變量,就可以用管道。command就不能使用重定向符之類的
在這裏插入圖片描述
可以用template來寫jinja2配置參數,比如nginx,從而實現對不同環境下的管理
playbooks裏定義的資源配置裏的參數,生成最終的配置文件

在這裏插入圖片描述
package是廣義的模塊集
state=latest設定安裝的nginx是最新版本

在這裏插入圖片描述

service模塊是管理系統的init系統服務,service和systemctl命令

sate=started定義需要用到的nginx服務做一個啓動的操作

在這裏插入圖片描述

在這裏插入圖片描述

3-7 Ansible playbooks常用模塊案例操作

在這裏插入圖片描述
登錄到test.example.com,創建一些必要的,配置好yum源
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
測試跑

在這裏插入圖片描述
下面是copy模塊創建過程
創建一個 roles/testbox/files

在這裏插入圖片描述
編輯主任務文件
在這裏插入圖片描述
創建copy模塊任務,force=yes是任務強制執行
在這裏插入圖片描述

在這裏插入圖片描述
進入到主任務文件中,獲取遠程的文件狀態

在這裏插入圖片描述
在這裏插入圖片描述
創建debug任務,用來獲取stat任務的信息
在這裏插入圖片描述
在這裏插入圖片描述
測試是否成功
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
測試跑一下

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
創建一個template目錄
在這裏插入圖片描述
創建一個jinja2模板文件
在這裏插入圖片描述
user添加了user變量,worker_process添加了worker_process變量

在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
到主任務文件,添加template模塊任務
在這裏插入圖片描述
添加yum,安裝nginx
、
啓動nginx

在這裏插入圖片描述
在這裏插入圖片描述
執行成功
在這裏插入圖片描述
遠程主機現在就已經應用了
在這裏插入圖片描述
查看nginx是否啓動成功
在這裏插入圖片描述

4-1 Jenkins介紹

在這裏插入圖片描述

4-2 Jenkins的優勢和應用場景

在這裏插入圖片描述
在這裏插入圖片描述

4-3 Jenkins安裝配置管理

創建一個虛擬機

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
連接剛纔創建的jenkins虛擬主機
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
導入yum倉庫key
在這裏插入圖片描述
安裝java環境

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述

開始jenkins初始配置操作

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
修改jenkins家目錄和工作目錄的屬主屬組
在這裏插入圖片描述
jenkins正常啓動

在這裏插入圖片描述
在這裏插入圖片描述
查看密碼
在這裏插入圖片描述
安裝推薦插件

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
可以看到系統信息和插件列表

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

4-4 Jenkins job的介紹(Freestyle job 和 Pipeline job)

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

4-5 Jenkins job環境準備

在這裏插入圖片描述
進行後臺user和email的註冊
在這裏插入圖片描述
這樣註冊好了git client的user和 email

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

這樣添加了一個root管理員密碼到jenkins憑據中
在這裏插入圖片描述

4-6 Jenkins freestyle job的構建與配置

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
填寫描述信息

在這裏插入圖片描述
在這裏插入圖片描述
選擇選項參數
在這裏插入圖片描述

參數二選一傳到參數中
在這裏插入圖片描述

在這裏插入圖片描述
把代碼克隆到本地開始構建
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
添加腳本,把之前定義的參數傳入到shell腳本里
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這些都是參數傳參

在這裏插入圖片描述
在這裏插入圖片描述
工作區域路徑,當前所有的任務配置文件都會保存在這個路徑中,
在這裏插入圖片描述
git相關的輸出
在這裏插入圖片描述
執行腳本,有一個語法錯誤

在這裏插入圖片描述
少寫了一個空格

在這裏插入圖片描述
現在就成功了

在這裏插入圖片描述

4-7 Jenkins Pipeline job的編碼規範與構建配置

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
添加描述信息
在這裏插入圖片描述

在這裏插入圖片描述
#!申明 groovy腳本
在這裏插入圖片描述
在這裏插入圖片描述
關閉git全局ssl認證
在這裏插入圖片描述
添加stages區域
在這裏插入圖片描述

jenkins有憑據id

在這裏插入圖片描述
在這裏插入圖片描述
這樣就把jenkins源代碼,克隆到本地目錄內
在這裏插入圖片描述
將傳入的參數寫入到test.properties文件中
在這裏插入圖片描述
在這裏插入圖片描述
再新創建stage任務,檢查是否寫入成功
在這裏插入圖片描述
在這裏插入圖片描述
注意大小寫

在這裏插入圖片描述
在這裏插入圖片描述
第一次構建出現了錯誤。首次構建pipeline job的時候,我們的參數沒有引入到當前的pipelinejob 當中
在這裏插入圖片描述
可以添加如下參數

在這裏插入圖片描述
現在是一個比較穩定的狀態去執行
在這裏插入圖片描述

4-8 Jenkins Linux shell集成和Jenkins參數集成

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
編輯一個shell腳本
在這裏插入圖片描述
在這裏插入圖片描述
使用了shell腳本打印了若干信息

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
可以加一個選項參數
在這裏插入圖片描述
可以加一個文本參數
在這裏插入圖片描述
添加布爾值參數
在這裏插入圖片描述
在這裏插入圖片描述
再編輯一個shell腳本
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

4-9 Jenkins Git和Maven集成

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
保存

在這裏插入圖片描述
構建成功
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這樣就成功安裝了一個maven

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

這裏有一個事先寫好的源代碼
在這裏插入圖片描述
有pom.xml

在這裏插入圖片描述
在這裏插入圖片描述
複製倉庫地址

在這裏插入圖片描述
在這裏插入圖片描述
git的源代碼編譯並打包成war包

在這裏插入圖片描述

在這裏插入圖片描述
、這就是javahome路徑

在這裏插入圖片描述
在這裏插入圖片描述
maven路徑

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
點擊構建,maven就開始構建
在這裏插入圖片描述
war包保存到了這裏
在這裏插入圖片描述

4-10 Jenkins Ansible集成

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
試試是否配置了密鑰認證
在這裏插入圖片描述
testservers就是ansible server清單文件

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
輸入正確拼寫

在這裏插入圖片描述
在這裏插入圖片描述

5-1 Freestyle job實戰 - 三劍客環境搭建

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
有倉庫說明gitlab是搭建成功的

在這裏插入圖片描述
在這裏插入圖片描述
驗證ansible再jenkins主機中是否安裝成功,加載環境

在這裏插入圖片描述
在這裏插入圖片描述

5-2 Freestyle job實戰 - 環境配置

在這裏插入圖片描述
windows主機關閉git ssl認證
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述複製出一個目錄

在這裏插入圖片描述
deploy.yml作爲入口文件,inventory清單,roles詳細任務列表

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
把文件複製成2份

在這裏插入圖片描述
在這裏插入圖片描述
變量可以傳入到roles的子文件
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
修改目錄名稱
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
創建一個健康狀況檢查的文件,用來監控最後的網站是否部署成功
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏的變量就是清單中變量值
在這裏插入圖片描述

5-3 Freestyle job實戰 - 編寫playbook腳本實現靜態網頁遠程部署

在這裏插入圖片描述
編輯主任務操作

申明叫本地文件remote_src傳送到目標文件
在這裏插入圖片描述
將該任務在本地playbook下執行,而不是目標主機下執行

在這裏插入圖片描述
將腳本文件輸出的內容傳遞給一個參數 health_status
在這裏插入圖片描述
這個任務就是輸出上個任務註冊的參數值,這樣可以在playbook輸出中看到該腳本的返回值

5-4 Freestyle job實戰 - 將playbook部署腳本提交到Gitllab倉庫

在這裏插入圖片描述保證當前目錄是在編輯好 ,nginx-playbook下,所有的操作提交
在這裏插入圖片描述
在這裏插入圖片描述
推送到遠程倉庫master分支下
在這裏插入圖片描述

在這裏插入圖片描述

5-5 Freestyle job實戰 - Freestyle任務構建和自動化部署

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
set +x 關閉一些沒必要的環境變量輸出
在這裏插入圖片描述
在這裏插入圖片描述
添加一些選項參數
在這裏插入圖片描述
添加一個文本參數
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏提示路徑不存在

在這裏插入圖片描述
這裏更正路徑

在這裏插入圖片描述
繼續開始構建

在這裏插入圖片描述
這裏是git操作
相關g'h
set +x 禁止輸出無用的變量

在這裏插入圖片描述
這樣就完成了一鍵自動部署

在這裏插入圖片描述

5-6 Jenkins pipeline job實戰 - 三劍客環境搭建

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
jenkins和gitlab都登錄到了
在這裏插入圖片描述

5-7 Jenkins pipeline job實戰 - 環境配置

在這裏插入圖片描述
在這裏插入圖片描述
gather_facts true相當於在playbook的時候可以獲取主機相關信息,這樣入口文件就完成了
在這裏插入圖片描述
首先編輯dev環境

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
現在dev環境和prod環境一樣,加一個git配置,因爲要git clone

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
修改dev以便區別
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
根據端口來判斷

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
複製php.fpm的配置
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
清空文件再編輯

在這裏插入圖片描述
nginx模板文件就編輯好了

在這裏插入圖片描述

5-8 Jenkins pipeline job實戰 - 編寫playbook腳本實現WordPress遠程部署

在這裏插入圖片描述
清空主配置並編輯
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
安裝php-fpm相應模塊
在這裏插入圖片描述

在這裏插入圖片描述
創建health check任務,用來測試遠程的任務是否成功,delegate_to 用來定義當前shell腳本是在本機執行。register=health_status將shell腳本返回值傳入到這個變量裏

在這裏插入圖片描述
添加一行打印輸出
在這裏插入圖片描述

5-9 Jenkins pipeline job實戰 - 將源碼和腳本提交到Gitlab倉庫

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
這裏就添加了一個目錄

在這裏插入圖片描述

5-10 Jenkins pipeline job實戰 - pipeline任務構建腳本的編寫

在這裏插入圖片描述
選擇流水線
在這裏插入圖片描述
在這裏插入圖片描述
關閉ssl認證
在這裏插入圖片描述
找到憑據唯一ID

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
最後一個stage做ansible的部署操作
在這裏插入圖片描述

在這裏插入圖片描述

5-11 Jenkins pipeline job實戰 - pipeline任務構建以及自動化部署

控制檯輸出你是否要允許部署,proceed就是繼續
在這裏插入圖片描述
如果報錯沒有環境變量可以繼續,因爲第一次還沒有加載進去

在這裏插入圖片描述
在這裏插入圖片描述
set +x關閉環境變量的輸出

在這裏插入圖片描述首先需要把wordpress上傳到gitlab中

在這裏插入圖片描述
mysql進行初始化

在這裏插入圖片描述
進入到wordpress初始化界面

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
成功

在這裏插入圖片描述

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