ITPub博客

首页 > 数据库 > 数据库开发技术 > 静态IP自动配置脚本

静态IP自动配置脚本

原创 数据库开发技术 作者:运维book思议 时间:2023-05-08 18:15:00 0 删除 编辑

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

静态IP地址是指不会随着时间和网络拓扑变化而改变的IP地址。与之相对的是动态IP地址,动态IP地址通常由DHCP服务器分配,可能在不同的时间分配给不同的设备。在某些情况下,需要使用静态IP地址,例如需要对网络设备进行访问控制,需要进行端口转发,或需要对特定设备进行远程访问等。
在Linux系统中,通过手动编辑配置文件的方式来设置静态IP地址,但这种方式往往比较繁琐,容易出错。因此,编写一个静态IP配置脚本可以大大简化这个过程,提高效率,减少错误。

下面是一个基于RHEL 9的单节点示例脚本:

#!/bin/bash# 设置静态IP地址的脚本# 修改接口和连接名为ens160interface=ens160connection=ens160# 修改IP地址、子网掩码、网关和DNSipaddr=192.168.1.181netmask=255.255.255.0gateway=192.168.1.1dns=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。最后重启连接,以使新的配置生效。

基于上述思路,可以写出一个多节点的脚本:

#!/bin/bash# 定义多节点主机名和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"EOFdone
上述脚本可以实现在多个节点上配置静态IP地址的自动化部署。其具体工作流程如下:
1、首先,定义了一个包含多个节点信息的数组,其中每个元素都是一个由主机名和IP地址组成的字符串。这些信息被保存在 nodes 变量中。
2、接着,使用 for 循环遍历 nodes 数组中的每个元素。在循环体内部,使用 cut 命令从节点信息字符串中分离出主机名和IP地址,并将它们保存在 $hostname 和 $ipaddr 变量中。
3、然后,使用 ssh 命令远程连接到当前节点,并在远程节点上执行脚本。在脚本中,首先定义了一些需要用到的变量,包括接口名、连接名、子网掩码、网关和 DNS 服务器的 IP 地址。
4、使用 nmcli 命令修改网络配置,将静态 IP 地址、子网掩码、网关和 DNS 服务器的 IP 地址分别设置为变量 $ipaddr、$netmask、$gateway 和 $dns 中指定的值。这里采用了静态 IP 地址分配方式,即将 IP 地址和子网掩码合并成一个 CIDR 地址,例如:192.168.1.181/24。
5、使用 nmcli 命令使配置生效,并将网络连接断开并重新连接以更新 IP 地址。
6、最后,输出配置结果,包括设置的静态 IP 地址、子网掩码、网关和 DNS 服务器的 IP 地址。
通过以上步骤,该脚本可以自动遍历多个节点,远程连接到每个节点,并执行静态 IP 地址配置脚本。这样就可以实现在多个节点上快速、自动地配置静态 IP 地址,提高部署效率和减少手动操作的错误。

如有不足之处,欢迎指正!

我们的组织在这里:

欢迎大家加入,在这个大家可以与各路大神一起学习,共同进步!

原文作者:运维book思议;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-09-24

  • 博文量
    333
  • 访问量
    215209