Linux系统批量安装
系统安装介绍
安装系统的方法:
光盘---需要有外置驱动器
U盘安装
网络安装---自动化的安装,无人值守、批量安装
PXE,全名Pre-boot Execution Environment,预启动执行环境;
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
由Intel和Systemsoft公司于1999年9月20日公布的技术;
Client/Server的工作模式;
PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;
PXE客户端(客户端)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)
网络安装软件:
kickstart
cobbler
使用 Cobbler 批量安装
Cobbler 介绍
cobbler概念
Cobbler是一个Linux服务器快速网络安装的服务,由python开发,小巧轻便(15k行python代码),可以通过PXE的方式来快速安装、重装物理服务器和虚拟机,同时还可以管理DHCP,DNS,TFTP、RSYNC以及yum仓库、构造系统ISO镜像。
Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用。
Cobbler集成的服务
PXE服务支持
DHCP服务管理
DNS服务管理(可选bind,dnsmasq)
电源管理
Kickstart服务支持
YUM仓库管理
TFTP(PXE启动时需要)
Apache(提供kickstart的安装源,并提供定制化的kickstart配置)
配置文件目录:
/etc/cobbler
/etc/cobbler/settings #cobbler 主配置文件
/etc/cobbler/iso/ #iso模板配置文件
/etc/cobbler/pxe #pxe模板文件
/etc/cobbler/power #电源配置文件
/etc/cobbler/user.conf #web服务授权配置文件
/etc/cobbler/users.digest #web访问的用户名密码配置文件
/etc/cobbler/dhcp.template #dhcp服务器的的配置末班
/etc/cobbler/dnsmasq.template #dns服务器的配置模板
/etc/cobbler/tftpd.template #tftp服务的配置模板
/etc/cobbler/modules.conf #模块的配置文件
数据目录:
/var/lib/cobbler/config/ #用于存放distros,system,profiles 等信
息配置文件:
/var/lib/cobbler/triggers/ #用于存放用户定义的cobbler命令
/var/lib/cobbler/kickstart/ #默认存放kickstart文件
/var/lib/cobbler/loaders/ #存放各种引导程序 镜像目录
/var/www/cobbler/ks_mirror/ #导入的发行版系统的所有数据
/var/www/cobbler/images/ #导入发行版的kernel和initrd镜像用于
远程网络启动:
/var/www/cobbler/repo_mirror/ #yum 仓库存储目录
日志目录:
/var/log/cobbler/installing #客户端安装日志
/var/log/cobbler/cobbler.log #cobbler日志
命令介绍
cobbler commands介绍
cobbler check #核对当前设置是否有问题
cobbler list #列出所有的cobbler元素
cobbler report #列出元素的详细信息
cobbler sync #同步配置到数据目录,更改配置最好都要执行下
cobbler reposync #同步yum仓库
cobbler distro #查看导入的发行版系统信息
cobbler system #查看添加的系统信息
cobbler profile #查看配置信息
Cobbler 安装
命令行配置
#关闭防火墙、selinux
#安装cobbler等基础软件
[root@cobbler ~]# yum -y install cobbler cobbler-web dhcp tftp-server httpd pykickstart python-django
#启动 cobbler、httpd 服务
[root@cobbler ~]# systemctl start httpd cobblerd
#使用命令进行检查会发现8个需要修改的地方
[root@cobbler ~]# cobbler check
1、cobbler配置文件中server参数信息要改为相应的指定信息,不能使用默认localhosts
vim +390 /etc/cobbler/settings
server: 172.16.1.90
2、cobbler配置文件中next_server参数信息要改为相应指定的tftp服务器地址信息,不能使用默认的127.0.0.1
vim +278 /etc/cobbler/settings
next_server: 172.16.1.90
3、让tftp服务可以被xinetd服务管理
vim +8 /etc/xinetd.d/tftp
disable = no
4、使用cobbler get-loaders这个命令下载一些软件
[root@cobbler ~]# cobbler get-loaders
[root@cobbler ~]# ll /var/lib/cobbler/loaders/
total 1128
-rw-r--r-- 1 root root 631 2020-03-09 21:27 COPYING.elilo
-rw-r--r-- 1 root root 18007 2020-03-09 21:27 COPYING.syslinux
-rw-r--r-- 1 root root 626 2020-03-09 21:27 COPYING.yaboot
-rw-r--r-- 1 root root 356493 2020-03-09 21:27 elilo-ia64.efi
-rw-r--r-- 1 root root 243679 2020-03-09 21:27 grub-x86_64.efi
-rw-r--r-- 1 root root 237224 2020-03-09 21:27 grub-x86.efi
-rw-r--r-- 1 root root 54964 2020-03-09 21:27 menu.c32
-rw-r--r-- 1 root root 16794 2020-03-09 21:27 pxelinux.0
-rw-r--r-- 1 root root 1054 2020-03-09 21:27 README
-rw-r--r-- 1 root root 198236 2020-03-09 21:27 yaboot
5、rsync服务需要启动和加入开机自启动
systemctl start rsyncd
systemctl enable rsyncd
6、Debian系统需要安装一些软件【忽略】
7、不能使用默认的密码,
[root@cobbler ~]# openssl passwd -1 -salt 'qls' '123456'
$1$qls$TH9CU3PjIQ3sSDmk9ATyW0
[root@cobbler ~]# vim +101 /etc/cobbler/settings
default_password_crypted: "$1$qls$TH9CU3PjIQ3sSDmk9ATyW0"
#配置文件修改后重启服务
systemctl restart cobblerd.service
8、智能电源管理工具没有找到【因为是虚拟机,忽略】
9、配置DHCP【将21-29行改为下面的样式】,注意按实际的环境修改IP
[root@cobbler ~]# vim +30 /etc/cobbler/dhcp.template
subnet 172.16.1.0 netmask 255.255.255.0 {
# option routers 172.16.1.5;
# option domain-name-servers 172.16.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 172.16.1.100 172.16.1.200;
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
[root@cobbler ~]# vim +242 /etc/cobbler/settings
manage_dhcp: 1
#重启服务
systemctl restart httpd.service tftp.socket cobblerd.service
#同步配置到数据目录
[root@cobbler ~]# cobbler sync
*** TASK COMPLETE *** #这样结尾表示配置成功
#挂载镜像
[root@cobbler ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@cobbler ~]# du -sh /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64
4.3G /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64
页面安装系统
访问 web 页面
https://10.0.0.90/cobbler_web
用户名:cobbler 密码:cobbler
导入镜像
#命令行检查导入的镜像文件
[root@cobbler ~]# du -sh /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64
4.3G /var/www/cobbler/ks_mirror/CentOS-7.6-x86_64
查看日志
日志=Events 查看导入情况【State=状态:running=运行中 complete=完成】
修改配置
创建应答文件
应答文件内容
# Cobbler for Kickstart Configurator for CentOS 7 by yao zhang
install
url --url=$tree
text
lang en_US.UTF-8
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $default_password_crypted
clearpart --all --initlabel
part /boot --fstype xfs --size 1024
part swap --size 1024
part / --fstype xfs --size 1 --grow
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
bash-completion
chrony
net-tools
lrzsz
nmap
sysstat
telnet
tree
vim
wget
%end
%post
systemctl disable postfix.service
%end
应答文件内容说明
install #告知安装程序,这是一次全新安装,而不是升级
url --url="http://172.16.1.201/Centos-7/" #通过http下载安装镜像
text #以文本格式安装
lang en_US.UTF-8 #设置字符集格式
keyboard us #设置键盘类型
zerombr #清除mbr引导
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" #指定引导记录被写入的位置
#Network information
$SNIPPET('network_config') #配置网卡
#network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
timezone --utc Asia/Shanghai #可以使用dhcp方式设置网络
authconfig --enableshadow --passalgo=sha512 #设置密码格式
rootpw --iscrypted $default_password_crypted #密文密码
clearpart --all --initlabel #清空分区
part /boot --fstype xfs --size 1024 #/boot分区
part swap --size 1024 #swap分区
part / --fstype xfs --size 1 --grow #/分区
firstboot --disable #负责协助配置redhat一些重要的信息
selinux --disabled #关闭selinux
firewall --disabled #关闭防火墙
logging --level=info #设置日志级别
reboot #安装完成重启
%packages #包组段 @表示包组
@^minimal
@compat-libraries
@debugging
@development
tree
bash-completion
%end
%post #脚本段,可以放脚本或命令
%end
配置应答文件
配置新系统信息
配置完成后点 Save
准备一台主机2G内存,2个网卡
需要安装系统的主机开机,如果是虚拟机就点 是
注意:安装系统的过程中如果失败了,就检测以上步骤
1. 应答文件问题
2. 网络问题 内网
3. 内存问题
命令行安装系统
#添加eth0网卡信息
cobbler system add --name=cobbler02 --mac=00:50:56:3B:8B:00 --profile=Centos-7.6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos-7.6.cfg --ip-address=10.0.0.102 --subnet=255.255.255.0 --gateway=10.0.0.254 --interface=eth0 --static=1 --hostname=cobbler02 --name-servers="223.5.5.5"
##添加eth0网卡信息
cobbler system edit --name=cobbler02 --mac=00:50:56:32:FA:E8 --profile=Centos-7.6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/Centos-7.6.cfg --ip-address=172.16.1.102 --subnet=255.255.255.0 --interface=eth1 --static=1
#同步数据
cobbler sync
#以上3个步骤可以用shell脚本批量操作,接下来打开需要安装的主机进行安装系统