環境準備: 1.至少倆台linux主機,一臺是控制節點,一臺是受控節點 2.控制節點和受控節點都需要安裝Python36 3.控制節點需要安裝ansible 4.控制節點需要獲得受控節點的普通用戶或root用戶的許可權,控制節點需要ssh客戶端,受控節點需要ssh服務端 5.控制節點和受控節點之間網路 ...
環境準備:
1.至少倆台linux主機,一臺是控制節點,一臺是受控節點
2.控制節點和受控節點都需要安裝Python36
3.控制節點需要安裝ansible
4.控制節點需要獲得受控節點的普通用戶或root用戶的許可權,控制節點需要ssh客戶端,受控節點需要ssh服務端
5.控制節點和受控節點之間網路聯通,配置靜態ip
環境安裝:
主機名 | IP地址 | 角色 |
---|---|---|
master | 172.25.250.132 | 控制節點 |
node01 | 172.25.250.128 | 受控節點 |
node02 | 172.25.250.129 | 受控節點 |
按照以上要求準備3台機器,最小化安裝CentOS8,可以先安裝一臺master,配置主機名,IP,yum源等等,其他的2台機器直接使用master克隆,更改主機名和IP
1、master虛擬機配置(其他虛擬機以此為例:配置ip修改主機名配置yum源)
[root@master ~]# hostnamectl set-hostname master
[root@master ~]# nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.4.253/24 connection.autoconnect yes
# 可以把dns加上,註意子網掩碼
# 重新激活網卡使其生效
[root@master ~]# nmcli connection up ens33
# 查看修改後的地址
[root@master ~]# ip a
# 設置為開機自啟動
[root@master ~]# vim /ect/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
# 掛載
[root@contorl ~]# mount -a
# 也可以換阿裡源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/Rocky-*.repo
dnf makecache
# 本地光碟鏡像源
[root@Control ~]# vim /etc/yum.repos.d/dvd.repo
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
# 清理緩存
[root@Control ~]# yum clean all
[root@Control ~]# yum repolist
# 安裝常用軟體:
[root@Control ~]# yum install -y bash-completion tree lrzsz vim net-tools.x86_64 unzip lsof wget
# 關機
[root@Control ~]# poweroff
可以給master主機做個快照,方便還原,克隆其餘2台主機,修改主機名和IP即可,所有主機記憶體調成512M
2、修改hosts文件
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.250.132 master
172.25.250.128 node01
172.25.250.129 node02
3、配置ssh免密登錄
[root@master ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
[root@master ~]# for i in node{1,2}
do
ssh-copy-id $i
done
[root@master ~]# ssh node01 #以node01為例,測試ssh免密登錄
4、時間同步設置
這裡我使用的是僅主機模式,所以受控節點的主機沒有互聯網,但是三台主機的時間一樣的,我就不做配置
1、安裝時間同步軟體包:
[root@master ~]# yum install chrony
2、修改配置文件:
[root@master ~]# vim /etc/chrony.conf
pool 2.rocky.pool.ntp.org iburst
pool ntp1.aliyun.com iburst
pool ntp2.aliyun.com iburst
3、設置為開機自啟:
[root@master ~]# systemctl enable --now chronyd
4、寫計劃任務同步:
[root@master ~]# vim /etc/crontab
0 10 * * * root chronyc sources &>/dev/null
5、安裝Python36,三台伺服器都裝同一個版本Python
1、每台機器都裝:接下來的操作都在master上
yum install python36 -y
2、不用root許可權,許可權太高了;在master主機上創建student 密碼redhat;在node節點上用的redhat用戶,密碼redhat
[root@node01 ~]# vim /etc/sudoers
root ALL=(ALL) ALL
redhat ALL=(ALL) NOPASSWD: ALL
強制保存退出
如果用的visudo打開就不用,正常退出就行
3、測試:
[root@master ~]# visudo
[root@master ~]#
[root@master ~]#
[root@master ~]# su - student
Last login: Tue Dec 13 12:17:40 CST 2022 on pts/0
[student@master ~]$ sudo ls /root
anaconda-ks.cfg
6、安裝ansible[僅master安裝即可,其餘受控節點安裝Python]
1、阿裡雲下載擴展源:epel
[student@master ~]$ sudo yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
也可以自己寫源:
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/
gpgcheck=0
2、安裝ansible:
[student@master ~]$ yum install ansible -y
3、查看ansible版本信息:
[student@master ~]$ ansible --version
ansible [core 2.13.3]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/student/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /home/student/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.13 (main, Nov 16 2022, 15:31:39) [GCC 8.5.0 20210514 (Red Hat 8.5.0-15)]
jinja version = 3.1.2
libyaml = True
7、安裝完成,做一個初始化快照,以便後期直接恢復乾凈的ansible環境。
作者:ChAn 出處:http://www.cnblogs.com/sre-chan/-------------------------------------------
個性簽名:今天做了別人不想做的事,明天你就做得到別人做不到的事,嘗試你都不敢,你拿什麼贏!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!