你好,我是李逸皓,我的梦想是:运维,永不背锅!
放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
静态IP地址是指不会随着时间和网络拓扑变化而改变的IP地址。与之相对的是动态IP地址,动态IP地址通常由DHCP服务器分配,可能在不同的时间分配给不同的设备。在某些情况下,需要使用静态IP地址,例如需要对网络设备进行访问控制,需要进行端口转发,或需要对特定设备进行远程访问等。
下面是一个基于RHEL 9的单节点示例脚本:
# 设置静态IP地址的脚本
# 修改接口和连接名为ens160
interface=ens160
connection=ens160
# 修改IP地址、子网掩码、网关和DNS
ipaddr=192.168.1.181
netmask=255.255.255.0
gateway=192.168.1.1
dns=8.8.8.8
# 使用nmcli命令修改网络配置
sudo nmcli con modify "$connection" ifname "$interface" ipv4.method manual ipv4.addresses "$ipaddr"/24 gw4 "$gateway"
sudo nmcli con modify "$connection" ipv4.dns "$dns"
# 重启连接
sudo nmcli con down "$connection"
sudo nmcli con up "$connection"
# 显示结果
echo "静态IP地址已设置为:$ipaddr"
echo "子网掩码已设置为:$netmask"
echo "网关已设置为:$gateway"
echo "DNS已设置为:$dns"
在脚本中,首先定义了需要修改的网络接口和连接名,以及需要配置的IP地址、子网掩码、网关和DNS。然后使用nmcli命令来修改连接配置,包括设置网络连接的IP地址、子网掩码、网关和DNS。最后重启连接,以使新的配置生效。
基于上述思路,可以写出一个多节点的脚本:
# 定义多节点主机名和IP地址
nodes=(
node1:192.168.1.181
node2:192.168.1.182
node3:192.168.1.183
)
# 循环遍历每个节点,执行静态IP配置脚本
for node in "${nodes[@]}"; do
# 从节点信息中分离主机名和IP地址
hostname=$(echo "$node" | cut -d ':' -f1)
ipaddr=$(echo "$node" | cut -d ':' -f2)
# 在远程节点上执行静态IP配置脚本
ssh "$hostname" bash -s << EOF
# 配置静态IP地址
interface=enp0s3
connection=enp0s3
netmask=255.255.255.0
gateway=192.168.1.1
dns=4.2.2.2
sudo nmcli con modify "\$connection" ifname "\$interface" ipv4.method manual ipv4.addresses "\$ipaddr"/24 gw4 "\$gateway"
sudo nmcli con modify "\$connection" ipv4.dns "\$dns"
sudo nmcli con down "\$connection"
sudo nmcli con up "\$connection"
echo "静态IP地址已设置为:\$ipaddr"
echo "子网掩码已设置为:\$netmask"
echo "网关已设置为:\$gateway"
echo "DNS已设置为:\$dns"
EOF
done
粉丝进群方式如下图:
↓↓↓ 点个在看,无需赞赏!