ansible自動化運維(1) 基本架構的介紹

2021-09-28 16:32:21 字數 3440 閱讀 4033

ansible是一種自動化運維工具,基於paramiko開發的,並且基於模組化工作

ansible是一種整合it系統的配置管理、應用部署、執行特定任務的開源平台

它是基於python語言,由paramiko和pyyaml兩個關鍵模組構建

集合了眾多運維工具的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能

ansible是基於模組工作的,本身沒有批量部署的能力,真正具有批量部署的是ansible所執行的模組

ansible只是提供一種框架.ansible不需要在遠端主機上安裝client/agents,因為它們是基於ssh來和遠端主機通訊的

ansible被定義為配置管理工具,配置管理工具通常具有以下功能:

確保所依賴的軟體包已經被安裝

配置檔案包含正確的內容和正確的許可權

相關服務被正確執行

常用的自動化運維工具技術特性比較:

自動化管理配置項

自動化持續交付

自動化(aws)雲服務管理

活躍度(社群) ----看用的人多不多

學習成本—簡單易學

使用成本----節約大量時間和經歷

編碼語言------內建python

效能:使用是否廣泛

ansible優點只需要ssh和python即可使用

無客戶端

ansible功能強大,模組豐富

上手容易,門檻低

基於python 開發,做二次開發更容易

使用公司較多,社群活躍

ansible 特性模組化設計,呼叫特定的模組完成特定任務

基於python語言實現

pyyaml(半結構化語言)

jinja2

其模組支援json(基於文字的輕量級資料交換格式)等標準輸出格式,可以採用任何程式語言重寫

ansible系統由控制主機和被管理主機組成,控制主機不支援windows平台

核心

: ansible

core modules: ansible自帶的模組

custom modules: 核心模組功能不足時,使用者可以新增擴充套件模組

plugins

: 通過外掛程式來實現記錄日誌,傳送郵件或其他功能

playbooks

: 劇本,yaml格式檔案,多個任務定義在乙個檔案中,定義主機需要呼叫哪些模組來完成的功能

connectior plugins: ansible基於連線外掛程式連線到各個主機上,預設是使用ssh

host inventory: 記錄由ansible管理的主機資訊,包括埠、密碼、ip等

部署簡單, 只需要在控制主機上部署ansible環境,被控制端上只要求安裝ssh和python 2.5以上版本,這個對於類unix系統來說相當與無需配置.

no angents: 被管控節點無需安裝agent

no server: 無服務端,使用是直接呼叫命名

modules in any languages: 基於模組工作, 可以使用任意語言開發模組

易讀的語法

: 基於yaml語法編寫playbook

基於推送模式

: 不同於puppet的拉取模式,直接由呼叫者控制變更在伺服器上發生的時間

模組是冪等性的:定義的任務已存在則不會做任何事情,意味著在同一臺伺服器上多次執行同乙個playbook是安全的

配置檔案

: /etc/ansible/

執行檔案目錄

: /usr/bin/

lib依賴庫

: /usr/lib/python2.7/site-packages/ansible/

help檔案

: /usr/lib/python2.7/site-packages/ansible

(1)ansible工作原理:

playbooks:任務劇本(任務集),編排定義ansible任務集的配置檔案,由ansible順序依次執行,通常是json格式的yml檔案

inventory:ansible管理主機的清單/etc/anaible/hosts

modules:ansible執行命令的功能模組,多數為內建的核心模組,也可自定義,ansible-doc –l 可檢視模組

plugins:模組功能的補充,如連線型別外掛程式、迴圈外掛程式、變數外掛程式、過濾外掛程式等,該功能不常用

api: 供第三方程式呼叫的應用程式程式設計介面

ansible:組合inventory、 api、 modules、plugins的綠框,可以理解為是ansible命令工具,其為核心執行工具

(3)ansible注意事項:

執行ansible的主機一般稱為主控端,中控,master或堡壘機

主控端python版本需要2.6或以上

被控端python版本小於2.4需要安裝python-******json

被控端如開啟selinux需要安裝libselinux-python

windows不能做為主控端

(4)ansible任務執行模式

ansible任務執行模式分為以下兩種:

ad-hoc模式(點對點模組)

使用單個模組,支援批量執行單條命令,相當與在bash中執行一句shell命令

playbook模式(劇本模式)

ansible主要的管理方式,通過多個task的集合完成一類功能,可以理解為多個ad-hoc的配置檔案

(5)ansible執行流程:

自動化運維ansible

sever1 172.25.60.1 server2 172.25.60.2 server3 172.25.60.3 etc ansible ansible.cfg 主配置檔案,配置ansible工作特性 etc ansible hosts 主機清單 etc ansible roles 存放角色的目...

ansible 自動化運維工具

ansible 自動化運維工具 批量管理 python開發 無客戶端 基於ssh服務 22 安裝 1.ansible包在擴充套件源,epel release yum y install epel release yum repolist 2.安裝,ansible yum y install ansi...

自動化運維ansible解析

name version capacity centos 7 3.10.0 693.el7.x86 64 1 smp tue aug 22 21 09 27 utc 2017 x86 64 x86 64 x86 64 gnu linux ansible 不需要安裝客戶端,通過sshd去通訊 基於模組...