iTennis-Lopt
1、功能列表
| 功能选项 |
功能名称 |
说明 |
| [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卡驱动导致安装操作系统无法识别硬盘的问题
2、推荐流程
3、使用介绍
3.1、功能选项【1】:配置PXE环境
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]
提示:代码过长已自动截断
3.2、功能选项【2】:批量双网卡绑定Bond模式配置
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,完成双网卡绑定
3.3、功能选项【3】:时区和时间配置
配置上海时区,如果直接回车不输入时间,配置远端为当前操作系统时间,如果后面手动输入时间,配置以后面输入为主。主要解决时间不同步问题。
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]:
3.4、功能选项【4】:批量配置RAID
配置文件使用conf/raid.conf,可以批量配置服务器的raid模式及对应模式下有多少块盘作为一组raid。
#IP地址(提供SSH连接) 用户名 密码 RAID模式 单组RAID盘数
10.9.9.9 root 123456 5 4
说明:10.9.9.9服务器通过root用户连接后,配置4块盘一组做RAID5模式。
3.5、功能选项【5】:收集LLD配置信息,检查网络连通性
主要批量检查网络的连通性和收集硬件信息,其中 包括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
3.6、功能选项【6】:批量配置YUM源
配置远端操作系统Yum源为http源,默认仓库为pxe的服务器地址。配置文件为conf/hosts.list,可以采用#注释。
3.7、功能选项【c】:本机免密钥通信
改操作主要是建立本机和其他机器之间的免密钥通信,本操作系统连接其他服务器不需要输入密码,配置文件使用的是conf/hosts.list,“#”可以注解。
3.8、功能选项【d】:批量更换IP地址
说明:网卡名称不写,默认为当前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,以此类推。
3.9、功能选项【e】:批量配置BMC地址
配置文件使用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及掩码和网关。
2.10、功能选项【g】:批量修改文件内容
该功能主要是为了修改配置文件中的某些不符合配置项。可以使用该功能注解配置、替换内容、删除内容。
输入功能选项: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”,则会注解该值。
如果有问题请联系邮箱:[email protected]
评论