Ansible介紹與安裝

2022-06-13 08:48:06 字數 3532 閱讀 1919

ansible是一款自動化運維工具,基於python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程式部署、批量執行命令等功能。

ansible是基於模組工作的,本身沒有批量部署的能力。真正具有批量部署的是ansible所執行的模組,ansible只是提供一種框架。主要包括:

ansible架構圖:

ansible 圍繞無**架構構建。通常而言,ansible 通過 openssh 或 winrm 連線它所管理的主機並且執行任務,方法通常是將稱為 ansible 模組的小程式推送至這些主機。這些程式用於將系統置於需要的特定狀態。在 ansible 執行完其任務後,推送的所有模組都會被刪除。

ansible 不需要批准使用任何特殊**,然後再部署到受管主機上。由於沒有**,也不需要額外的自定義安全基礎架構,

ansible 具有多個重要的優點:

ansible 的設計宗旨是工具易用,自動化易寫易讀。所以在建立自動化時我們應追求簡單化。

ansible 自動化語言圍繞簡單易讀的宣告性文字檔案來構建。正確編寫的 ansible playbook可以清楚地記錄你的工作自動化。

ansible 是一種要求狀態引擎。它通過表達你所希望系統處於何種狀態來解決如何自動化it部署的問題。ansible 的目標是通過僅執行必要的更改,使系統處於所需的狀態。試圖將 ansible 視為指令碼語言並非正確的做法。

ansible 易於安裝。 ansible 軟體只需要安裝到要執行它的乙個(或多個)控制節點上。由 ansible管理的主機不需要安裝 ansible。

對控制節點的要求:

[root@localhost ~]# yum list installed platform-python

updating subscription management repositories.

unable to read consumer identity

this system is not registered to red hat subscription management. you can use subscription-manager to register.

installed packages

platform-python.x86_64 3.6.8-1.el8.0.1 @anaconda

ansible的一大優點是受管主機不需要安裝特殊**。ansible控制節點使用標準的網路協議連接受管主機,從而確保系統處於指定的狀態。

受管主機可能要滿足一些要求,具體取決於控制節點連線它們的方式以及它們要執行的模組。

linux和unix受管主機需要安裝有python2(版本2.6或以上)或python3(版本3.5或以上),這樣才能執行大部分的模組。

對於紅帽8,可以啟用並安裝python36應用流(或python27應用流)

yum module install python36
如果受管主機上啟用了selinux,還需要確保安裝python3-libselinux軟體包,然後才能使用與任何複製、檔案或模板功能相關的模組。所以在工作的時候,應當把selinux功能關閉。

ansible有許多專門為windows系統設計的模組。這些模組列在部分中。

大部分專門為windows受管主機設計的模組需要在受管主機上安裝powershell 3.0或更高版本,而不是安裝python。此外,受管主機也需要配置powershell遠端連線。ansible還要求至少將.net framework 4.0或更高版本安裝在windows受管主機上。

ansible還可以配置受管網路裝置,例如路由器和交換機。ansible包含大量專門為此目的而設計的模組。其中包括對cisco ios、ios xr和nx-os的支援;juniper junos;arsta eos;以及基於vyos的網路裝置等。

我們可以使用為伺服器編寫playbook時使用的相同基本技術為網路裝置編寫ansible playbook。由於大多數網路裝置無法執行python,因此ansible在控制節點上執行網路模組,而不是在受管主機上執行。特殊連線方法也用於與網路裝置通訊,通常使用ssh上的cli、ssh上的xml或http(s)上的api。

curl -o /etc/yum.repos.d/centos-base.repo  //配置阿里雲yum源

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/centos-base.repo //更改配置

rpm --reinstall //安裝阿里雲epel源

sed -i 's|^#baseurl=' /etc/yum.repos.d/epel* //更改配置

sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

sed -i 's|$releasever|8|g' /etc/yum.repos.d/*

yum makecache //建立快取

# 安裝ansible

yum -y install ansible

ansible --version //檢視本機資訊

[root@localhost ~]# ansible --version

ansible 2.9.16

config file = /etc/ansible/ansible.cfg

configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']

ansible python module location = /usr/lib/python3.6/site-packages/ansible

executable location = /usr/bin/ansible

python version = 3.6.8 (default, oct 11 2019, 15:04:54) [gcc 8.3.1 20190507 (red hat 8.3.1-4)]

# 通過使用setup模組驗證localhost上的ansible_python_version

ansible -m setup localhost|grep ansible_python_version //檢視是否安裝成功

[root@localhost ~]# ansible -m setup localhost|grep ansible_python_version

"ansible_python_version": "3.6.8",

ansible介紹和安裝

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

ansible的安裝和介紹

一.單元ansible簡介和安裝 1.ansible是什麼?關於ansible ansible是一種it自動化工具。它可以幫助我們批量配置系統,部署軟體以及協調更高階的it任務,例如連續部署或零停機滾動更新。ansible的主要目標是讓工作變得簡單和易操作,它同時也非常關注安全性和可靠性,傳輸過程是...

Ansible簡介與安裝

當我們在部署多台伺服器軟體環境的時候,10臺機器以內我們還可以自己每台都去布置一下,但是當需要部署的機器繼續增多的時候比如 30臺,40臺,甚至上百臺的時候。每台都去乙個乙個布置就不太現實了,而且這樣做也顯得很沒有技術含量。運維工程師一般會通過一寫自動化運維工具去做這些事情。一些 常用的自動化運維工...