Ansible-安裝
第一步:安裝我們的epel擴展源
yum -y install epel-release
我這里會報/var/run/yum.pid 已被鎖定,如果沒有直接進行下一步
[root@master home]# yum -y install epel-release 已加載插件:fastestmirror, langpacks /var/run/yum.pid 已被鎖定,PID 為 22410 的另一個程序正在運行。 Another app is currently holding the yum lock; waiting for it to exit... 另一個應(yīng)用程序是:PackageKit 內(nèi)存: 30 M RSS (449 MB VSZ) 已啟動: Thu May 4 20:06:59 2023 - 00:23之前 狀態(tài) :睡眠中,進程ID:22410
解決方法:刪除/var/run/yum.pid,即 rm -rf?/var/run/yum.pid ,重新執(zhí)行第一步
第二步:安裝 ansible
yum -y install ansible
如果還報/var/run/yum.pid 已被鎖定,還是直接進行刪除,然后重新執(zhí)行?yum -y install ansible
第三步,驗證是否安裝成功?ansible --version?
[root@master home]# ansible --version ansible 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
此時?ansible 已成功安裝
常用的自動化運維工具
Puppet?—基于 Ruby 開發(fā),采用 C/S 架構(gòu),擴展性強,基于 SSL,遠程命令執(zhí)行相對較弱
SaltStack?—基于 Python 開發(fā),采用 C/S 架構(gòu),相對 puppet 更輕量級,配置語法使用 YMAL,使得配置 腳本更簡單 Ansible —基于 Pythonparamiko 開發(fā),分布式,無需客戶端,輕量級,配置語法使用 YMAL 及 Jinja2 模板語言,更強的遠程命令執(zhí)行操作 其他?DevOps?請參看:https://github.com/geekwolf/sa-scripts/blob/master/devops.md
Ansible?是一個簡單的自動化運維管理工具,可以用來自動化部署應(yīng)用、配置、編排 task(持續(xù) 交付、無宕機更新等),采用 paramiko 協(xié)議庫(fabric 也使用這個),通過 SSH 或者 ZeroMQ 等連 接主機,大概每 2 個月發(fā)布一個主版
Ansible 工作機制
Ansible 在管理節(jié)點將 Ansible 模塊通過 SSH 協(xié)議(或者 Kerberos、LDAP)推送到被管理端執(zhí) 行,執(zhí)行完之后自動刪除,可以使用 SVN 等來管理自定義模塊及編排
由上面的圖可以看到 Ansible 的組成由?5?個部分組成:
Ansible:核心引擎
Modules:包括 Ansible 自帶的核心模塊(core modules)及自定義模塊 (custom modules);
? ? ? ? ? ? ? ? 核心模塊:ansible模塊資源分發(fā)到遠程節(jié)點使其執(zhí)行特定任務(wù)或匹配一個特定的狀態(tài)。
? ? ? ? ? ? ? ? 自定義模塊:如果核心模塊不足以完成某種功能,可以添加自定義模塊。
Plugins:完成模塊功能的補充,包括連接插件、郵件插件等
Playbooks:網(wǎng)上很多翻譯為劇本,個人覺得理解為編排更為合理;定義ansible任務(wù)的配置文件,可以將多個任務(wù)定義在一個劇本中,由ansible自動執(zhí)行,劇本執(zhí)行支持多個任務(wù),可以由控制主機運行多個任務(wù),同時對多臺遠程主機進行管理。
Inventory:定義 Ansible 管理主機的清單
ansible功能特性
- 應(yīng)用代碼自動化部署。
- 系統(tǒng)管理配置自動化。
- 支持持續(xù)交付自動化。
- 支持云計算、大數(shù)據(jù)平臺(如AWS、OpenStack、VMWare等)環(huán)境。
- 輕量級,無需在客戶端安裝agent,更新時只需在控制機上進行一次更新即可。
- 批量任務(wù)執(zhí)行可以寫成腳本,不用分發(fā)到遠程就可以執(zhí)行。
- 使用Python編寫,維護更簡單,Ruby語法過于復(fù)雜。
- 支持非root用戶管理操作,支持sudo。
二.安裝ansible
安裝前準備:
1.因為ansible是基于python的,所以先檢查是否有python,如果沒有需要安裝(注意版本,版本過低,也可能導(dǎo)致安裝失?。?/p>
2.安裝ansible前需要安裝依賴包
yum -y install epel-release
......
ansible安裝:
?yum -y install ansible
.......
?安裝完成后需要配置機組:
vim /etc/ansible/hosts
這里我的機組名為[ccdoop],以下是我的另外2臺機子的配置(本機為:test1:192.168.254.130)
test2 192.168.254.131
test3 192.168.254.132
到這里ansible就安裝完成了。
測試:
ansible all -m ping?
結(jié)果:成功!
注:由于本機只有一個組[ccdoop],故用all,如果有多個機組,而你只想測試一個組的話可以把all替換為組名,如:文章來源:http://www.zghlxwxcb.cn/news/detail-637753.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-637753.html
到了這里,關(guān)于K8S系列文章之 自動化運維利器 Ansible的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!