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操作
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初始化界面
成功