ansible是乙個自動化運維的工具優點:基於python語言編寫,因此機器需要具備python環境。
通過ssh的連線方式進行自動化部署,ansible優先使用openssh,在使用python模組裡的paramiko作為ssh工具
1.入門快速,簡單上手缺點:2.基於python語言
3.無**(基於ssh,無需安裝客戶端,如zabbix的客戶端要安裝agent)
4.可讀性強(採用yaml格式)
1.對windows系統的排斥(服務端無法安裝在windows)安裝的是基於python2.7的ansible2.執行效率較低(task任務是序列執行;多台裝置同時執行乙個task,有併發數限制)
在ubuntu上的安裝
#在centos7上的安裝1.增加ppa源,並安裝ansible
sudo apt-get unpdate
sudo apt-get install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt-get install ansible
#2.檢視版本,結果無報錯
ansible --version
#此文件為各個版本如何遷移到2.7版本,遷移有風險,操作需謹慎1.安裝epel擴充套件軟體倉庫
sudo yum -y install epel-release
#2.安裝ansible
sudo yum -y install ansible
#3. 檢查ansible的版本和執行環境
ansible --version
5.1 框架圖
5.2 各元件功能
ansible.cfg #5.3 inventory介紹ansible的配置檔案,包含各種ansible全域性性質的引數,可在不同專案下或者不同使用者下建立一樣的ansible.cfg檔案,作為區域性配置檔案,檢索順序:區域性-->全域性
inventory #
裝置列表,當跑指令碼時,需要告訴ansible針對哪些裝置或裝置組
variable #
變數module #
模組,通過其他語言編寫而成,能實現某個特定的功能的工具,例如思科配置介面的模組,修改ip位址的模組等等
jinja2 #
模板系統,ansible可實現批量配置網路裝置
role #
角色,一套資料夾,裡面定義了例如變數,具體任務task。role裡面定義的內容可以實現某些特殊功能,而你在使用不通的指令碼過程中可以匯入role來實現某乙個功能。而不用重複寫
#以上的元件,會由以下的「客戶」來使用
ad-hoc #
即插即用,簡易模式,一條命令,一次使用
playbook #
劇本,基於yaml檔案格式書寫,可以包含ansible任意功能,無論是裝置列表,變數,jinja2模板,條件迴圈,模組等等
預設路徑是/etc/ansible/hosts檔案,預設配置如下圖,此hosts為全域性檔案,可根據不通使用者或者不通專案設定區域性檔案,即在配件檔案裡指定ansible.cfg裡的inventory=my_hosts
方式一:直接定義ip
192.168.1.254
#方式二:直接定義域名,此方法本機的dns伺服器需要能解析出此網域名稱對應的ip位址,或者在自己的/etc/hosts檔案裡新增本地網域名稱解析
pc1.test.com
#方式二:定義特殊名稱,前提dns伺服器或者/etc/hosts檔案沒辦法解析此自定義名稱
#書寫格式:自定義名稱[空格]ansible_host=[主機ip]
如定義個r1
r1 ansible_host=192.168.1.254
示例:
需求:需求:測試主機是否存活(存活的意思是主機開了ssh埠)定義一台網路交換機192.168.1.254主機名為sw1,屬於network組,也屬於cisco組
定義一台pc,192.168.1.5,主機名pc1
定義一台pc,192.168.1.6
#實現:
#步驟一:開啟ansible檢索inventory功能
inventory = /etc/ansible/hosts #
將注釋#去掉
#pc1 ansible_host=192.168.1.5
192.168.1.6[network]
sw1 ansible_host=192.168.1.254[cisco]
192.168.1.254:wq #儲存
ps:關於組的分割,ansible是通過匹配來判斷是否進入了下乙個組,因此,未有分組的主機,只能放在組的上頭
實現:ansible localhost -m ping
此處的ping模組,並非傳統的ic'm'p ping原理,而是它嘗試使用預設的設定去ssh登陸遠端裝置,如果登陸成功,就反饋:pong
#ping模組的使用:
ping-module
需求:執行乙個linux命令,檢視磁碟空間
實現:ansible localhost -m command -a "df -h"
HOOK API入門篇 一
windows系統是建立在事件驅動的機制上的,說穿了就是整個系統都是通過訊息的傳遞來實現的。而鉤子是windows系統中非常重要的系統介面,用它可以截獲並處理送給其他應用程式的訊息,來完成普通應用程式難以實現的功能。鉤子可以監視系統或程序中的各種事件訊息,截獲發往目標視窗的訊息並進行處理。這樣,我們...
Python入門篇(一)
對了,入門篇都是python3.6的,其實只要有其它物件導向的經驗,看一遍就ok了,如果沒有基礎的朋友,可就得多寫幾遍嘍,理解物件的用法,未完待續 一 概念 類 用來描述具有 相同屬性和方法的物件的集合 二 命名方式 1 類名大駝峰 2 方法名小駝峰 3 嚴格區分大小寫 三 類的定義 class c...
Canvas入門篇(一)
html5的核心功能canvas 一 使用canvas畫圖的前提是先在html5網頁中使用canvas定義乙個 畫布 瀏覽器不支援canvas提示語id為canvas標識id,canvas畫布寬度高度,單位px 二 在js中呼叫canvas api,在定義的畫布中繪畫要先用js獲取canvas物件 ...