功能选项 | 功能名称 | 说明 |
---|---|---|
[1] | 配置PXE环境 | 自动化安装(Redhat和Centos)操作系统,目前测试版本6和版本7均支持 |
[2] | 批量双网卡绑定Bond模式配置 | 可以做一组或者多组Bond模式的双网卡绑定 |
[3] | 时区和时间配置 | 同步配置所有服务器时间和时区 |
[4] | 批量配置RAID | 可以批量配置RAID0和RAID1和RAID5等 |
[5] | 收集硬件配置信息,检查网络连通性 | 可以测试网络连通性,收集cpucore、内存、磁盘数、和磁盘大小的信息 |
[6] | 批量配置YUM源 | 配置所有服务器的Yum仓库 |
[7] | 批量拷贝文件 | 将本地文件拷贝所有服务器 |
[8] | 批量执行命令 | 在所有服务器上执行命令 |
[9] | 批量拷贝文件到本地 | 将所有服务器上的莫个文件拷贝到本地服务器上,作为收集信息功能。 |
[a] | 解决重装操作系统无法引导 | 解决二次安装操作系统无法引导问题。 |
[b] | 批量双网卡绑定Team模式配置 | 可以做一组或者多组Team模式的双网卡绑定 |
[c] | 本机免密钥通信 | 本机免密钥访问其他机器 |
[d] | 批量更换IP地址 | 可以更换旧IP地址为新IP地址 |
[e] | 批量配置BMC地址 | 可以批量配置所有服务器的BMC地址 |
[f] | 本地Yum仓库源配置 | 配置本地服务器的Yum仓库 |
[g] | 批量修改文件内容 | 修改、替换和删除内容(包括配置文件中的值或任意文本) |
[h] | 批量更换Root密码 | 批量更换ROOT密码 |
[i] | 检查文件权限及属组 | 检查某个文件夹下的所有文件权限和属组是否满足 |
[m] | 更多 | 更多(查询dhcp已经分配的地址信息) |
[q] | 退出 | 退出脚本 |
修复的Bug情况:
1、配置文件空行问题 2、修改RAID卡驱动导致安装操作系统无法识别硬盘的问题
- 暂无
1)主要集成了redhat和centos两种操作系统的批量安装操作系统的方法,集成的版本包括redhat和centos 6和7所有版本,同样支持UEFI启动模式。
2)PXE的配置文件
PXE相关的配置项主要在conf/itennis.conf和conf/partitions.conf两个文件中,首先介绍一下主配置文件itennis.conf相关的配置项:
conf/itennis.conf配置说明
#PXE配置参数
SERVER_IP=10.9.9.9 #pxe服务器地址(dhcp,tftp)
SERVER_NETMASK=255.0.0.0 #pxe服务器的掩码
BIND_INTERFACE=eth1 #IP地址配置在eth1的网卡上
DHCP_SUBNET=10.0.0.0 #DHCP服务器的子网
DHCP_START_ADDRESS=10.0.0.1 #DHCP服务器分发的起始地址
DHCP_END_ADDRESS=10.0.250.250 #DHCP服务器分发的结束地址
#批量安装的操作系统信息配置
SUPPORT_OS="centos redhat" #支持的操作系统类型
SUPPORT_VERSION="··· 6.6 6.7 6.8 6.9 7.0 7.1 7.2 7.3 7.4 7.5 7.6 ···" #支持的操作系统版本
INSTALL_OS=redhat #安装的操作系统类型
OS_VERSION=6.6 #安装的操作系统版本
ROOT_PWD=123456 #安装的操作系统ROOT密码
INSTALL_INTERFACE=eth0 #批量安装操作系统使用eth0作为获取地址的网卡
TMPDIR="/tmp/itennis_tmp" #后续操作的临时目录
#远程执行命令和拷贝文件参数
REMOTE_TIMEOUT=5 #批量执行脚本超时时间
REMOTE_PORT=22 #批量执行脚本的SSH端口号
conf/partitions.conf配置说明
挂载目录 分区格式 分区大小
/ ext4 30720
/tmp ext4 10240
/var ext4 10240
/var/log ext4 102400
/srv/BigData ext4 61440
/opt ext4 1 (分区大小为“1”不要改动,最后一栏默认为给剩余空间)
以上是关于两个文件的全部说明,如果作为批量安装,一般只要修改如下值即可
参数 | 说明 | 可选 |
---|---|---|
INSTALL_OS | 操作系统类型 | 可选 |
OS_VERSION | 操作系统版本 | 可选 |
INSTALL_INTERFACE | 接口名称 | 必选 |
ROOT_PWD | 密码 | 可选 |
INSTALL_INTERFACE | 获取DHCP地址接口 | 必选 |
partitions.conf | 分区 | 必选 |
3)使用方法
a、修改配置文件(如上)
b、上传母机的操作系统(PXE操作系统)镜像到from_iso下,如果需要批量安装的操作系统版本和此PXE的操作系统一致,则不需要再次上传到to_iso文件,如果不一致,上传对应的操作系统镜像放到to_iso文件夹下。
c、执行启动脚本,选择功能选项:1,按照操作提示执行,完成接下来的安装。如果出现ERROR,查看相应日志解决处理即可。效果如下:
Please input [0-9,a-j,q,r]: 1
配置PXE环境
[INFO] 2019-01-07 17:49:57 ----------------Start check your configuration---------------- (script:config_pxe.sh function: main line:8)
[WARN] 2019-01-07 17:49:57 server ip :10.9.9.9 (script:config_pxe.sh function: main line:9)
[WARN] 2019-01-07 17:49:58 server netmask :255.0.0.0 (script:config_pxe.sh function: main line:10)
[WARN] 2019-01-07 17:49:58 server interface :ens34 (script:config_pxe.sh function: main line:11)
[WARN] 2019-01-07 17:49:58 DHCP start addr :10.0.0.1 (script:config_pxe.sh function: main line:12)
[WARN] 2019-01-07 17:49:58 DHCP end address :10.0.250.250 (script:config_pxe.sh function: main line:13)
[WARN] 2019-01-07 17:49:58 Batch install os :redhat6.6 (script:config_pxe.sh function: main line:14)
[WARN] 2019-01-07 17:49:58 Batch install pwd :123456 (script:config_pxe.sh function: main line:15)
[INFO] 2019-01-07 17:49:58 ----------------End check your configuration---------------- (script:config_pxe.sh function: main line:16)
Confirm whether to continue?[y/n]y
‘/etc/sysconfig/network-scripts/ifcfg-ens34’ -> ‘/tmp/ifcfg-ens34-bak’
[INFO] 2019-01-07 17:49:59 Interface ens34 configuration success (script:config_pxe.sh function: main line:32)
umount: /media: not mounted
mount: /dev/loop0 is write-protected, mounting read-only
[INFO] 2019-01-07 17:49:59 mount system iso configuration success (script:config_pxe.sh function: main line:42)
mkdir: cannot create directory ‘/etc/yum.repos.d/bak’: File exists
[INFO] 2019-01-07 17:50:06 yum install tftp-server Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:07 yum install dhcp Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:08 yum install xinetd Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:12 yum install httpd Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:25 yum install redhat-lsb Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:27 yum install expect Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:29 yum install syslinux Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:30 yum install tree Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:31 yum install vsftpd Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:33 yum install ipmitool Successful (script:config_pxe.sh function: i_packets main line:6)
[INFO] 2019-01-07 17:50:33 yum install expect Successful (script:config_pxe.sh function: i_packets main line:6)
‘/etc/dhcp/dhcpd.conf’ -> ‘/tmp/dhcpd.conf.bak’
‘boot/pxelinux/menu.c32’ -> ‘/var/lib/tftpboot/pxelinux/menu.c32’
‘boot/pxelinux/pxelinux.0’ -> ‘/var/lib/tftpboot/pxelinux/pxelinux.0’
‘boot/pxelinux/pxelinux.cfg/default’ -> ‘/var/lib/tftpboot/pxelinux/pxelinux.cfg/default’
‘boot/uefi/grub.cfg’ -> ‘/var/lib/tftpboot/uefi/grub.cfg’
‘boot/uefi/grubx64.efi’ -> ‘/var/lib/tftpboot/uefi/grubx64.efi’
‘boot/uefi/memdisk’ -> ‘/var/lib/tftpboot/uefi/memdisk’
‘boot/uefi/shim.efi’ -> ‘/var/lib/tftpboot/uefi/shim.efi’
‘boot/efi’ -> ‘/var/lib/tftpboot/efi’
‘boot/efi/BOOTX64.conf’ -> ‘/var/lib/tftpboot/efi/BOOTX64.conf’
‘boot/efi/BOOTX64.efi’ -> ‘/var/lib/tftpboot/efi/BOOTX64.efi’
‘boot/efi/efidefault’ -> ‘/var/lib/tftpboot/efi/efidefault’
‘boot/efi/splash.xpm.gz’ -> ‘/var/lib/tftpboot/efi/splash.xpm.gz’
‘boot/kickstarts/ks.cfg’ -> ‘/var/www/html/kickstarts/ks.cfg’
ks.cfg is create Successful
/var/lib/tftpboot/pxelinux/pxelinux.cfg/default is create Successful
/var/lib/tftpboot/uefi/grub.cfg is create Successful
/var/lib/tftpboot/efi/efidefault is create Successful
[INFO] 2019-01-07 17:50:37 check need to install os file (script:config_pxe.sh function: main line:145)
ls: cannot access to_iso/*.iso: No such file or directory
**************************************************
from_iso/CentOS-7-x86_64-DVD-1810.iso
**************************************************
Confirm whether to continue?[y/n]y
umount: /var/www/html/os/redhat/6.6: not mounted
mount: /dev/loop1 is write-protected, mounting read-only
Redirecting to /bin/systemctl stop iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.
error reading information on service iptables: No such file or directory
[INFO] 2019-01-07 17:50:41 Iptables closed successfully (script:config_pxe.sh function: main line:187)
Restarting network (via systemctl): [ OK ]
[INFO] 2019-01-07 17:50:43 network restart success (script:config_pxe.sh function: main line:192)
[INFO] 2019-01-07 17:50:43 allow service tftp boot enabled and start (script:config_pxe.sh function: main line:199)
[INFO] 2019-01-07 17:50:44 allow service dhcp boot enabled and start (script:config_pxe.sh function: main line:202)
[INFO] 2019-01-07 17:50:44 allow service xinetd boot enabled and start (script:config_pxe.sh function: main line:205)
[INFO] 2019-01-07 17:50:44 allow service http boot enabled and start (script:config_pxe.sh function: main line:208)
1)修改配置文件:conf/bond_and_team.conf
例如:本配置写了两个绑定接口bond0和bond1,可以配置多个绑定接口
#临时IP地址 用户名 密码 [绑定接口 模式 绑定地址 掩码 网关 子接口1 子接口2] ... [绑定接口 模式 绑定地址 掩码 网关 子接口1 子接口2]
10.0.128.113 root root bond0 1 10.9.9.10 255.0.0.0 10.0.0.1 eth0 eth1 bond1 1 11.9.9.10 255.0.0.0 11.0.0.1 eth2 eth3
说明:通过ssh连接到10.0.128.113,配置该服务器上bond0:eth0和eth1,bond1:eth2和eth3,做两组bond网卡,每一行表示一台服务器,每组“【】”表示为一组Bond信息,可以为多组,每一行Bond个数不需要一致。
2)运行sh start_itennis.sh脚本,选择功能4,完成双网卡绑定
配置上海时区,如果直接回车不输入时间,配置远端为当前操作系统时间,如果后面手动输入时间,配置以后面输入为主。主要解决时间不同步问题。
Please input [0-9,a-j,q,r]: b
时区和时间配置
[INFO] 2019-01-07 18:20:06 **********************************START************************************** (script:start_itennis.sh function: config_time_zero display main line:85)
please input current time[2019-01-07 18:20:07]:
配置文件使用conf/raid.conf,可以批量配置服务器的raid模式及对应模式下有多少块盘作为一组raid。
#IP地址(提供SSH连接) 用户名 密码 RAID模式 单组RAID盘数
10.9.9.9 root 123456 5 4
说明:10.9.9.9服务器通过root用户连接后,配置4块盘一组做RAID5模式。
主要批量检查网络的连通性和收集硬件信息,其中 包括CPU的core、内存、磁盘数、磁盘详细情况。
1)配置文件conf/hosts.list
#管理地址 业务地址 用户名 密码
10.0.128.108 10.0.128.108 root 123456
说明:如果为单平面,管理地址和业务地址写一样即可。
2)运行sh start_itennis.sh脚本,选择功能6,完成配置信息收集,收集的信息存放datas/lld.conf和datas/lld.txt文件中,其中N/A表示没有ping通,网络连通性存在问题。
[root@localhost iTennis-Lopt]# cat datas/lld.conf
#管理地址 CPU虚拟核数 内存(G) 主机逻辑磁盘数量 磁盘情况
10.0.128.108 N/A N/A N/A N/A
配置远端操作系统Yum源为http源,默认仓库为pxe的服务器地址。配置文件为conf/hosts.list,可以采用#注释。
改操作主要是建立本机和其他机器之间的免密钥通信,本操作系统连接其他服务器不需要输入密码,配置文件使用的是conf/hosts.list,“#”可以注解。
说明:网卡名称不写,默认为当前IP所在网卡,如果存在,则修改配置的网卡名的ip地址为新IP,旧IP地址不更新。没一行代表一台服务器,每个“【】”为一组,可以修改一台服务器的n组地址,每台服务器可以修改的数量不一致。
#用户名 密码 [旧IP 新IP 新掩码 新网关] ... [旧IP 新IP 新掩码 新网关]
root 123456 10.0.128.108 10.0.129.109 255.0.0.0 10.0.0.1 10.0.128.111 10.0.129.111 255.0.0.0 11.0.0.1
说明:运行脚本后,ssh到10.0.128.108地址,然后将10.0.128.108修改为10.0.0.1,以此类推。
配置文件使用conf/bmc_ip.conf,
#临时IP(提供SSH) 用户名 密码 BMC地址 BMC掩码 BMC网关
10.0.128.108 root 123456 11.0.0.128 255.0.0.0 11.0.0.1
说明:脚本会通过ssh连接到10.0.128.108地址的服务器上,然后配置BMC的地址为11.0.0.128及掩码和网关。
该功能主要是为了修改配置文件中的某些不符合配置项。可以使用该功能注解配置、替换内容、删除内容。
输入功能选项:3
Please input [0-9,a-j,q,r]: 3
批量修改文件内容
[INFO] 2019-01-07 18:02:30 **********************************START************************************** (script:start_itennis.sh function: remote_exe_changeconfig display display display main line:19)
please input old value: old #输入旧值
please input new value: new #输入新值
please input modify file: /file.txt #输入修改的文件
例如:该错误是当前节点的“/etc/sudoers”文件中“Defaults requiretty”配置错误。
输入功能选项:3
Please input [0-9,a-j,q,r]: 3
批量修改文件内容
[INFO] 2019-01-07 18:02:30 **********************************START************************************** (script:start_itennis.sh function: remote_exe_changeconfig display display display main line:19)
please input old value: Defaults requiretty
please input new value:
please input modify file: /etc/sudoers
可以删除所有节点上的“Defaults requiretty”的值,如果new value写“# Defaults requiretty”,则会注解该值。
如果有问题请联系邮箱:xiehuisheng@hotmail.com