ansible的安裝和介紹

2021-10-05 09:53:40 字數 4139 閱讀 1339

一.單元ansible簡介和安裝

1.ansible是什麼?

關於ansible

ansible是一種it自動化工具。它可以幫助我們批量配置系統,部署軟體以及協調更高階的it任務,例如連續部署或零停機滾動更新。

ansible的主要目標是讓工作變得簡單和易操作,它同時也非常關注安全性和可靠性,傳輸過程是基於openssh來實現的,保證了傳輸的資料的安全性!大大降低安全風險!

2.ansible的特點

ansible採用無**方式(agentless)管理機器,因為ansible的通訊是通過openssh來實現的,所以你無需考慮如何遠端公升級受管機器的**程式!只要可以保證openssh可以正常通訊即可!因為現在幾乎所有的linux平台都自帶了openssh,ansible在部署階段無需考慮在遠端機器上安裝客戶端軟體!這樣極大的減少了前期部署的工作!

ansible有豐富的模組可以讓你直接使用,當然在ansible的社群也有很多優秀的開發者在貢獻新的模組,所以你總會找到適合自己的模組,當然你也可以自己開發模組!

ansible是使用python開發,所以關於ansible的二次開發和模組開發成本相對較低

3.ansible的工作流程

4.ansible的一些基本概念

控制節點

任何裝有ansible的機器都可以叫做控制節點。您可以從任何控制節點呼叫/usr/bin/ansible執行一條任務,或執行/usr/bin/ansible-playbook命令讀取劇本執行多個任務

託管節點

使用ansible管理的的網路裝置和伺服器,都可以叫做託管節點!託管節點有時也可以叫做「主機「,託管節點無需安裝ansible

清單( inventory )

託管節點的列表。ansible在管理某個節點前,需要先將節點新增到清單檔案中!清單檔案有時也稱為「主機清單檔案」。清單檔案可以為每個託管節點指定資訊,例如ip位址、埠等資訊!也可以把主機分成主機組管理!

模組(modules)

ansible執行的單位,可以使用臨時命令一次執行乙個任務

劇本(playbooks)

任務的有序列表檔案,所以我們可以重複讀取劇本檔案重複執行劇本內的任務!這個是我們執行任務的主要方式

5.ansible的安裝

環境要求

ansible要求主機上有python2.7或者python3.5以上的環境,在red hat,debian,centos,macos,任何bsd等系統上可以直接安裝。但是控制節點不支援windonws平台!

我們這裡準備3臺centos系統的虛擬機器,一台為centos7用來安裝ansible扮演我們的控制節點,另外兩台我們可以使用centos6,扮演託管節點

1.在centos上安裝控制節點

在centos6版本的系統上ansible安裝包還未被加入到yum的base源中,需要安裝epel源之後才可以安裝ansible

yum -y install epel-release

yum -y install ansible

在centos7上時,ansible安裝包已經被加入到了yum的base源中,所以可以直接使用yum安裝

yum -y install ansible

新版本安裝包可以去官方獲取:

當然安裝方式還支援原始碼安裝,我們可以去github上獲取原始碼或者使用python的pip安裝都是可以的:

大家可以參考官方的文件:

ansible安裝完畢後可以直接使用,無需啟動!

2.在託管節點要注意的事項

1、在託管節點上,您需要一種通訊方式,通常是ssh,還需要有python 2(2.6版或更高版本)或python 3(3.5版或更高版本)

2、這些環境在centos6以上版本的系統上都是預設滿足的!所以可以不用做任何配置!

3、但是如果託管節點上啟用了selinux,那麼需要安裝libselinux-python,這個我們可以直接使用yum安裝:yum -y install libselinux-python

3.ssh無密碼連線配置

1、控制節點在和託管節點在通訊時是通過openssh建立的,所以控制節點在和託管節點建立通訊時肯定需要賬號和密碼的認證!每次執行任務都需要輸入賬號和密碼在使用過程當中是很不方便的!所以我們這裡要建立起控制節點和託管節點的授信配置,通過公鑰認證來實現控制節點和託管節點ssh的無密碼連線!

2、在控制節點操作:

生成金鑰對

ssh-keygen -t rsa

拷貝公鑰到託管節點

ssh-copy-id 託管節點使用者@ip

首次拷貝需要再輸入一次密碼才可以將公鑰複製過去,輸入完畢後以後再連線就不需要輸入賬號密碼了!

4.編輯主機清單檔案(inventory)

我們需要將所有託管節點以主機名或者ip的形式新增的主機清單檔案中

主機清單檔案安裝後預設存放路徑:/etc/ansible/hosts

例如如下格式新增:

192.0.2.50

aserver.example.org

bserver.example.org

當然我們也可以分組:

[webservers]

192.0.2.50

aserver.example.org

bserver.example.org

中括號中的webservers就是定義的組名,下面3臺伺服器是這個組的成員主機

我們也可以按如下格式新增主機

[webservers]

192.0.2.[50:100]

web[a:f]server.example.org

組在呼叫時的通配表達方式

5.測試

ansible執行一條任務的語法格式:

ansible 主機/主機組 -m 模組 -a 『模組的引數『

我們使用ping模組ping清單檔案中所有節點,檢視是否可達

ansible all -m ping

有如下返回說明節點都可達,all代表所有主機

當然我們也可以指定組或者主機操作

ansible webservers -m ping

我們再來在託管節點執行一條命令,檢視託管節點的ip資訊

ansible all -a 『ifconfig』

發現我們這條命令沒有指定呼叫哪個模組,那麼他會使用預設模組,預設模組為command,作用是在託管節點執行普通命令

類似的模組還有很多,下面我們會列舉一些常用的模組講解!

6.ansible的配置檔案

ansible中的某些設定可以通過配置檔案(ansible.cfg)進行調整,對於大多數環境預設配置就足夠使用了,但是也可能會有一些特殊的原因我們需要修改這些配置引數!

配置檔案路徑

在centos上yum安裝的ansible,預設的配置檔案路徑如下:

配置檔案:/etc/ansible/ansible.cfg

7.臨時命令簡介(ad-hoc commands)

ansible ad-hoc命令使用/usr/bin/ansible命令列工具對乙個託管節點或多個託管節點一次執行乙個任務!臨時命令既快速又簡單,但不可重複使用!

為什麼要用臨時命令(ad-hoc commands)

臨時命令非常適合您很少重複執行的任務。例如,如果您想在聖誕節假期關閉實驗室中所有機器的電源,則可以在ansible中執行快速一線操作而無需編寫劇本。臨時命令如下所示:

$ ansible [pattern] -m [module] -a 「[module options]」

臨時任務可用於重新引導伺服器,複製檔案,管理程式包和使用者等。您可以在臨時任務中使用任何ansible模組。

8.使用劇本(playbook)

劇本是ansible的配置,部署和編排語言。與臨時任務(ad-hoc)執行模式相比,劇本是使用ansible的完全不同的方式,並且功能特別強大。

ansible介紹和安裝

ansible是由 python 編寫的強大的配置管理解決方案,ansible 的特點就在於它的簡潔與高效率 ansible與其他的配置管理工具不同點在於 不需要你在想要配置的每個節點上安裝自己的元件,也就是說,ansible管理各個節點不需要依賴於agent端 一 ansible 入門 官網 官方...

Ansible介紹與安裝

ansible是一款自動化運維工具,基於python開發,集合了眾多運維工具 puppet cfengine chef func fabric 的優點,實現了批量系統配置 批量程式部署 批量執行命令等功能。ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執...

ansible 安裝和使用

1 安裝 yum install epel release y yum install ansible y 2 ansible 配置檔案 ansible 配置檔案 etc ansible ansible.cfg 一般保持預設 defaults inventory etc ansible hosts ...