注:學習本篇博文之前最好将Jenkins + Ansible + Gitlab 之gitlab學習最少一遍
注:關于Ansible的詳細内容請看我的另一篇博文自動化運維之ansible
Ansible介紹
什麼是Ansible?
Ansible是一個開源部署工具
開發語言:Python
特點:SSH協定通訊,全平台,無需編譯,子產品化部署管理
作用:推送Playbook進行遠端節點快速部署
Ansible與Chef,Saltstack的不同
Chef
Ruby語言編寫,C/S架構,配置需要Git依賴
Recipe腳本編寫規範,需要程式設計經驗
Saltstack
Python語言編寫,C/S架構,子產品化配置管理
YAML腳本編寫規範,适合大規模叢集部署
Ansible
Python語言編寫,無Client,子產品化配置管理
Playbook腳本編寫規範,易于上手,适合中小規模快速部署
Ansible的優勢和應用場景
輕量級無用戶端(Agentless)
開源免費,學習成本低,快速上手
使用Playbook作為核心配置架構,統一的腳本格式批量化部署
完善的子產品化擴充,支援目前主流的開發場景
強大的穩定性和相容性
活躍的官方社群問題讨論,友善Trubleshooting與DEBUG問題
Ansible配合virtualenv安裝配置
Ansible的兩種安裝模式(Centos7)
1.Yum包管理安裝
yum -y install ansible
2.Git源代碼安裝【推薦】
git clone https://github.com/ansible/ansible.git
Ansible 2.5 + Python3.6 安裝步驟【Centos7】
1.預先安裝Python3.6版本
2.安裝virtualenv
pip install virtualenv
3.建立Ansible賬戶并安裝python3.6版本virtualenv執行個體
useradd deploy && su - deploy
virtualenv -p /usr/local/bin/python3.6 .py3-a2.5-env
4. Git源代碼安裝ansible2.5
cd /home/deploy/.py3-a2.5-env
git clone https://github.com/ansible/ansible.git
cd ansible && git checkout stable-2.5
5. 加載python3.6 virtualenv 環境
source /home/deploy/.py3-a2.5-env/bin/activate
6.安裝ansible依賴包
pip install paramiko PyYAML jinja2
7.在python3.6虛拟環境下加載ansible2.5
source /hone/deploy/.py3-a2.5-env/ansible/hacking/env-setup -q
8.驗證ansible2.5
ansible --version
示範
前提工作
安裝Python3.6和Virtualenv
建立ansible系統賬戶并在該系統賬戶下安裝python3.6版本的Virtualenv執行個體
安裝git
出現的一個錯誤
加載vintualenv環境
完成
Ansible playbooks入門和編寫規範
Playbooks架構與格式
Test Playbooks
詳細目錄testenv
主任務檔案main.yml
任務入口檔案deploy.yml
Playbooks編寫規範
示範
寫劇本
免密鑰登陸
完成并驗證
Ansible Playbboks常用子產品
Ansible Playbook 常用子產品介紹
File子產品
在目标主機建立檔案或目錄,并賦予其系統權限
Copy子產品
實作Ansible伺服器到目标主機的檔案傳送
Stat子產品
擷取遠端檔案狀态資訊
Debug子產品
列印語句到Ansible執行輸出
Command/Shell子產品
用來執行Linux目錄主機指令行
Template子產品
實作Ansible服務端到目标主機的jinja2子產品傳送
Packaging子產品
調用目标主機系統包管理工具(yum , apt)進行安裝
Service子產品
管理目标主機系統服務
Ansible Playbooks常用子產品應用
示範
目标主機預配置工作
注:如需筆記原稿請評論留言,我私發
注:如需視訊資源請評論留言,我免費私發