Ansible是一種自動化工具,基于Python寫的,原理什么的就不過多再說了,詳情參考:https://www.itwk.cc/post/403.html
https://blog.csdn.net/qq_34185638/article/details/131079320?spm=1001.2014.3001.5502
環(huán)境準備
HOSTNAME | IP | OS |
---|---|---|
master.example.com | 10.5.5.132 | CentOS Stream 8 Mini Install |
node1.example.com | 10.5.5.133 | CentOS Stream 8 Mini Install |
node2.example.com | 10.5.5.134 | CentOS Stream 8 Mini Install |
此次實驗將會用到三臺主機,一臺作為控制節(jié)點,兩臺作為被管理節(jié)點(受控主機)
配置主機名
關(guān)閉SELINUX
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
配置本地域名解析(管理節(jié)點執(zhí)行)
在
/etc/hosts
文件中添加被管理節(jié)點的 ip+fqdn,直接用IP也可以,但是不易于管理,使用fqdn可以使用這些名稱來標識和操作主機,而不必依賴于IP地址。
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.5.5.133 node1 node1.example.com
10.5.5.134 node2 node2.example.com
配置免密登錄
配置免密登錄,實現(xiàn)控制節(jié)點無需輸入密碼的情況下通過SSH協(xié)議連接到被管理節(jié)點。
生成RSA密鑰對
ssh-keygen -t rsa
將公鑰復(fù)制到遠程服務(wù)器
ssh-copy-id [username]@server
驗證
安裝Ansible
在控制節(jié)點安裝Ansible
安裝epel源,(官方倉庫沒有提供ansible相關(guān)rpm包)
yum -y install epel-release
安裝ansible
yum -y install ansible
安裝完成之后執(zhí)行ansible --version
判斷是否正常使用。
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-47p6DJr8-1691378563875)(C:\Users\22065\AppData\Roaming\Typora\typora-user-images\image-20230730225130690.png)]
配置Ansible
安裝完畢之后,默認的配置文件位置在/etc/ansible
目錄下,其中含有ansible.cfg
配置文件,hosts
默認主機清單,roles
角色目錄,接下來需要進行修改ansible,cfg
配置文件
使用文本編輯工具打開ansible.cfg
內(nèi)容如下:
意思就是說,從 Ansible 2.12 版本開始,你可以使用 ansible-config init
命令生成一個示例的配置文件。使用 --disabled
參數(shù)將生成一個包含所有默認設(shè)置的注釋文件,這意味著所有設(shè)置都被禁用并以注釋形式顯示。你可以將輸出重定向到 ansible.cfg
文件中,以便稍后進行編輯和使用,也可以在Ansible的GitHub倉庫中的stable
分支中查找示例。
以上僅供了解,推薦直使用GitHub的倉庫上的ansible.cfg
配置文件,因為ansible-config init
命令生成的配置文件是一個示例文件,包含了所有默認設(shè)置,并將這些設(shè)置以注釋的形式展示出來,生成的配置文件并不是一個完整的、可用的配置文件,因為它將所有的設(shè)置都禁用了(通過添加注釋)。這樣做是為了確保在生成的配置文件中沒有任何潛在的影響或沖突。
而在 GitHub 上的 Ansible 倉庫中的示例配置文件是一個更完整的配置文件,它包含了一些常用的配置選項和示例值。這個示例配置文件是為了給用戶提供一個起點,可以根據(jù)自己的需求進行修改和定制。
下載配置文件:
cd /etc/ansible
rm -rf ansible.cfg
wget https://github.com/ansible/ansible/blob/stable-2.9/examples/ansible.cfg
如果沒有wget命令的話使用yum -y install wget
安裝。
編輯示例配置文件,以下是我們要配置的地方;
inventory = /etc/ansible/hosts
#指定 Ansible 的主機清單文件的路徑。默認情況下,Ansible 使用 /etc/ansible/hosts 文件作為主機清單,其中包含了要管理的遠程主機的列表
sudo_user = root
#指定在執(zhí)行遠程命令時要使用的 sudo 用戶設(shè)置為 root,表示使用 root 用戶執(zhí)行命令
ask_pass = False
#指定是否詢問密碼,設(shè)置為 False,表示不詢問密碼,因為已經(jīng)做了免密登錄了
roles_path = /etc/ansible/roles
#指定 Ansible 角色的路徑,Ansible 角色是一種組織和重用任務(wù)和變量的機制,后面會講到,在這個示例中,默認為 /etc/ansible/roles
remote_user = root
#指定遠程主機的登錄用戶名,設(shè)置為 root,表示使用 root 用戶登錄遠程主機
become = True
#指定是否啟用特權(quán)升級(become),特權(quán)升級允許 Ansible 在遠程主機上以不同的用戶身份執(zhí)行命令。在這個示例中,設(shè)置為 True,表示啟用特權(quán)升級
become_method = sudo
#指定特權(quán)升級的方法。這里設(shè)置為 sudo,表示使用 sudo 命令進行特權(quán)升級
become_user = root
# 指定特權(quán)升級后要切換到的用戶,設(shè)置為 root,表示特權(quán)升級后切換到 root 用戶
become_ask_pass = False
#指定是否詢問特權(quán)升級密碼, False,表示不詢問特權(quán)升級密
配置文件修改完成之后,需要創(chuàng)建主機清單文件,Ansible inventory 主機清單寫法詳解請參考:https://www.itwk.cc/post/430.html
編輯主機文件/etc/ansible/hosts
[servers]
node1.example.com
node2.example.com
測試ansible是否可以與被管理節(jié)點通信
使用ping模塊檢查與被管理節(jié)點連通性
使用adhoc方式執(zhí)行臨時命令文章來源:http://www.zghlxwxcb.cn/news/detail-632656.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-632656.html
到了這里,關(guān)于Ansible環(huán)境搭建,CentOS 系列操作系統(tǒng)搭建Ansible集群環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!