Ansible簡介
目錄- Ansible簡介
- 一、什么是Ansible
- 二、Ansible無需代理
- 三、常用的自動化運維管理軟體
- Puppet
- SaltStackSalt
- Ansible
- 行云管家
- 部署ansible
一、什么是Ansible
Ansible是一款自動化運維工具,基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實作了批量系統配置、批量程式部署、批量運行命令等功能,
Ansible是基于模塊作業的,本身沒有批量部署的能力,真正具有批量部署的是Ansible所運行的模塊,Ansible只是提供一種框架,主要包括:
(1) 連接插件connection plugins:負責和被監控端實作通信;
(2) host inventory:指定操作的主機,是一個組態檔里面定義監控的主機;
(3) 各種模塊核心模塊、command模塊、自定義模塊;
(4) 借助于插件完成記錄日志郵件等功能;
(5) playbook:劇本執行多個任務時,非必需可以讓節點一次性運行多個任務,
Ansible架構圖:


二、Ansible無需代理
Ansible 圍繞無代理架構構建,通常而言,Ansible 通過 OpenSSH 或 WinRM 連接它所管理的主機并且運行任務,方法通常是將稱為 Ansible 模塊的小程式推送至這些主機,這些程式用于將系統置于需要的特定狀態,在 Ansible 運行完其任務后,推送的所有模塊都會被洗掉,
Ansible 不需要批準使用任何特殊代理,然后再部署到受管主機上,由于沒有代理,也不需要額外的自定義安全基礎架構,
Ansible 具有多個重要的優點:
- 跨平臺支持:Ansible 提供Linux、Windows、UNIX和網路設備的無代理支持,適用于物理、虛擬、云和容器環境,
- 人類可讀的自動化:Ansible Playbook采用YAML文本檔案撰寫,易于閱讀,有助于確保所有人都能理解它們的用途,
- 完美描述應用:可以通過 Ansible Playbook進行每種更改,并描述和記錄應用環境的每一個方面,
- 輕松管理版本控制:Ansible Playbook和專案是純文本,它們可以視作源代碼,放在現有版本控制系統中,
- 支持動態清單:可以從外部來源動態更新 Ansible 管理的計算機串列,隨時獲取所有受管服務器的當前正確串列,不受基礎架構或位置的影響,
- 編排可與其他系統輕松集成:能夠利用環境中現有的 HP SA、Puppet、Jenkins、紅帽衛星和其他系統,并且集成到 Ansible 作業流中,
三、常用的自動化運維管理軟體
Puppet
Puppet是早期的Linux自動化運維工具,是一種LINUX、WINDOWS、UNIX平臺的集中配置管理系統,到現在已經非常成熟,可以批量管理遠程服務器,模塊豐富,配置復雜,基于Ruby語言撰寫,是最典型的C/S結構,需要安裝服務端和客戶端 ,
Puppet采用C/S星狀的結構,所有的客戶端和一個或者多個服務器互動,每個客戶端周期地(默認半個小時)向服務器發送請求,獲得最新的配置資訊,保證和配置資訊同步,
每個Puppet客戶端周期地連接一次服務器,下載最新的組態檔,并且嚴格按照組態檔來配置客戶端,配置完成后,Puppet客戶端可以反饋給服務器端一個訊息,如果出錯也會給服務器端反饋一個訊息,Puppet適用于服務器管理的整個程序,比如初始安裝、配置、更新等,
SaltStackSalt
Stack和Puppet一樣,也是C/S模式,需要安裝服務端和客戶端,基于Python撰寫,加入了MQ訊息同步,可以使執行命令和執行結果高效回傳,但其執行程序需要等待客戶端全部回傳,如果客戶端沒有及時回傳或者沒有回應的話,可能會導致部分機器沒有執行結果,
Ansible
Ansible和SaltStack一樣是基于Python開發,Ansible只需要在一臺普通的服務器上運行即可,不需要在客戶端服務器上安裝客戶端,因為Ansible基于SSH遠程管理,而Linux服務器大部分都離不開SSH,所以Ansible不需要為配置添加額外的支持,
Ansible安裝使用都很簡單,而且基于上千個插件和模塊,實作各種軟體、平臺、版本的管理,支持虛擬容器多層級的部署,有時候會覺得Ansible比SaltStack執行效率慢,其實并不是軟體本身的問題,二是由于SSH服務慢,可以通過優化SSH連接速度和使用Ansible加速模塊提高效率,
行云管家
行云管家是國內唯一一家以SaaS形態提供的云計算運維管理平臺,目前已成功服務十萬家企業級用戶,包括政府、金融、證券、電信、教育、醫療、交通、制造業、互聯網等行業,行云管家既可管理各公有云平臺的云資源,也支持管理私有云資源,用戶只需要提供公有云/私有云平臺API憑證(如Access Key),即可把用戶在公有云/私有云上的所有云資源一鍵匯入到云管平臺中,
在自動化運維方面,行云管家支持業界知名的 SaltStack/ansible運維工具庫 ,并支持用戶新建各類自定義Shell/Python/PowerShell/CMD腳本,能夠批量對主機執行腳本、命令,以及將檔案批量分發至目標主機、批量從多臺主機采集檔案,實作對多臺主機的各種批量運維操作,同時,用戶可以根據業務要求編排運維任務,設定各種觸發條件,一旦觸發后,系統能夠自動執行相應的已編排好的任務,例如:云主機自動升級、應用自動部署等,極大的降低應用部署與管理成本,提高業務敏捷性,滿足企業用戶對自動化運維的需求,
部署ansible
//配置yum源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# rm -rf *
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@localhost yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@localhost yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
[root@localhost yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
[root@localhost yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
//安裝ansible
[root@localhost ~]# dnf -y module install python36
[root@localhost ~]# dnf -y install centos-release-ansible-29
[root@localhost ~]# dnf -y install ansible-2.9.6-2.el8
//查看ansible版本
[root@localhost ~]# ansible --version
ansible 2.9.6
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, Jan 19 2022, 23:28:49) [GCC 8.5.0 20210514 (Red Hat 8.5.0-7)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/518452.html
標籤:其他
