自动化安装总结:
centos系统安装:
系统启动流程:bootloader --->kernel(initramfs)-->rootfs--->/sbin/init
anaconda:系统安装程序
gui:图形窗口
tui:基于图形库curses的文本窗口
MBR:isolinux/boot.cat
stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg
每个对应的菜单选项:
加载内核:isolinux/vmlinuz
向内核传递参数:append initrd=initrd.img
装载根文件系统,并启动anaconda
默认启动GUI接口
若是显式指定使用TUI接口:向内核传递text参数即可
(1)按tab键,在后面增加text
(2)按ESC键,boot:linux text
Anaconda安装分为三个阶段:
安装前配置阶段:
安装过程使用的语言
键盘类型
安装目标存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区及MBR的安装位置
创建一个普通用户
选定要安装的程序包
安装阶段:
在目标磁盘创建分区,执行格式化操作等
将选定的程序包安装至目标分区
安装bootloader和initramfs
图形模式首次启动
iptables
selinux
core dump
系统安装
启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自小面几种方式:
本地光盘
本地磁盘
NFS
URL:
ftp sever:yum repository
http sever:yum repostory
如果想手动指定安装源:
boot:linux askmethod
自动安装之kickstart文件的配置:
此文件的配置需要用到工具是:Xmanager Enterprise 5 我们可以利用此工具弹出图形化界面然后自动生成文件。此文件与/root/anaconda-ks.cfg相似,可以参照此文件做更改。
使用的程序包:system-config-kickstart
此工具在centos7上使用必须将yum中的[base]改为[development]才能正常使用。
语法检测:ksvalidator /path/file
使用方法:将此文件配置好后将其方在ftp或者http目录下然后再启动页面按tab键,在后面加上:ks=ftp://ip/pub/ks.cfg 然后启动即可实现自动化回答系统安装是的选项。
制作引导光盘:
(1)将六和七的光盘挂载到http的/var/www/html下的目录上,分别创建目录为6,7.
例如:
vim /etc/fstab /dev/sr0 /var/www/html/6 iso9660 defaults 0 0 /dev/sr1 /var/www/html/7 iso9660 defaults 0 0
(2)将在/app下创建一个目录/myiso并将六中的isolinux/ 目录拷到/app/myiso中
例如:cp -a /var/www/html/6/isolinux myiso/
(3)编辑/myiso/isolinux/isolinux.cfg文件
default vesamenu.c32 #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.9! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label centos6 menu label ^Install mini centos system kernel vmlinuz append initrd=initrd.img ks=ftp://172.18.254.97/pub/pb/ks.cfg label centos6-d menu label Install an ^Dodktop centos6 system kernel vmlinuz append initrd=initrd.img ks=ftp://172.18.254.97/pub/pb/ks6d.cfg label local menu default menu label ^Boot from local drive localboot 0xffff
(4)文件编辑完成后既可以制作镜像文件:
[root@centosliuhua ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.9 magedu boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/centos_mage.iso /app/myiso/ 完成后我们可以查看文件卷标:file centos_mage.iso
(5)将光盘导出安装到新的虚拟机上保持网段是通的就可以自动安装系统了。
制作完整的自动安装镜像:
(1)将/var/www/html/6/* 拷到/app/fulliso 目录下包括隐藏文件
[root@centosliuhua fulliso]# cp -r /var/www/html/6/* . [root@centosliuhua app]# cd /var/www/html/6 [root@centosliuhua 6]# cp .discinfo .treeinfo /app/fulliso/
(2)删除文件中的TRANS.TBL
[root@centosliuhua fulliso]# find -name TRANS.TBL -exec rm -rf {} \;
(3)删除repodata 文件并创建一个新的并拷贝包组信息到repodata目录中
[root@centosliuhua fulliso]# rm repodata/ -rf [root@centosliuhua fulliso]# mkdir repodata [root@centosliuhuafulliso]#cp/var/www/html/6/repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml repodata/
(4)创建包组:
[root@centosliuhua fulliso]# createrepo -g repodata/43d8fd068164b0f042845474d6a22262798b9f0d1f49ad1bf9f95b953089777d-c6-x86_64-comps.xml ./
(5)拷贝kickstart文件到当前目录即:/app/fulliso/isolinux并将网络安装源改为cdrom
[root@centosliuhua isolinux]# cp /var/ftp/pub/pb/ks.cfg /app/fulliso [root@centosliuhua isolinux]# cp /var/ftp/pub/pb/ks6d.cfg /app/fulliso
(6)编写isolinux.cfg文件
label centos6-mini menu label ^Install an centos6 mini system kernel vmlinuz append initrd=initrd.img ks=cdrom:/ks.cfp label centos6-disk menu label ^Install an centos6 disk system kernel vmlinuz append initrd=initrd.img ks=cdrom:/ks6d.cfg label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu default menu label Boot from ^local drive localboot 0xffff
(7)制作镜像包
[root@centosliuhua fulliso7]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7 Automatic Install DVD" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /app/centos_auto7dvd.iso /app/fulliso7/
dhcp实现:
首先要将虚拟机配置一块网卡并配置为静态IP地址关闭DHCP
vim /etc/udev/rules.d/70-persistent-net.rules [root@centosliuhua network-scripts]# cd /etc/sysconfig/network-scripts/ [root@centosliuhua network-scripts]# vim ifcfg-eth2
(1)安装DHCP服务
(2)查看配置文件:/etc/dhcp/dhcpd.conf
(3)将模板拷到配置文件中:
[root@centosliuhua network-scripts]# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
(4)编辑配置模板:
option domain-name "example.org"; option domain-name-servers 114.114.114.114,8.8.8.8; default-lease-time 6000; max-lease-time 72000; log-facility local7; subnet 172.21.0.0 netmask 255.255.0.0 { range 172.21.0.1 172.21.255.253; option routers 172.21.0.254; }
(5)启动dhcp服务:[root@centosliuhua network-scripts]# /etc/init.d/dhcpd restart
dhcp开机启动:chkconfig dhcp on
tftp安装:
两个包客户端和服务端的:tftp tftp-server
tftp是一个非独立的软件包/etc/xinetd.dz 中找到它
启动方式为:[root@centosliuhua xinetd.d]# chkconfig tftp on
或者:/etc/init.d/xinetd restart
让tftp开机启动须保证xinetd开机启动就行:chkconfig xinetd on
PXE制作过程:
centos7(内存必须大于1024才能启动)准备好6,7的镜像光盘
(1)关闭防火墙:
[root@pxe7 ~]# systemctl stop firewalld.service [root@pxe7 ~]# systemctl disable firewalld.service
(2)关闭selinux:[root@pxe7 ~]# vim /etc/selinux/config 进入文件改为disabled
(3)配置静态ip地址:
[root@pxe7 ~]# nmcli connection modify ens34 ipv4.method manual ipv4.addresses 192.168.88.254/24 [root@pxe7 ~]# nmcli connection down ens34 [root@pxe7 ~]# nmcli connection up ens34
(4)将光盘挂载特定位置在此之前要将httpd服务安装好:
/dev/sr0 /var/www/html/centos/6 iso9660 defaults 0 0 /dev/sr1 /var/www/html/centos/7 iso9660 defaults 0 0
(5)重启httpd服务并保证重启后有效:
[root@pxe7 ~]# systemctl start httpd [root@pxe7 ~]# systemctl enable httpd
(6)配置自己的yum仓库:
[base] name=Centos $releasever baseurl=http://192.168.88.254/centos/$releasever/ gpgcheck=0 [root@pxe7 ~]# cp /etc/yum.repos.d/magedu.repo /var/www/html/centos/
(7)准备kickstart文件(centos7在制作时要将yum库第一行[base]改为[development]),并将文件放在/var/www/html/ksdir 目录下
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$GFELZkfW$.2lOGr8X2xEa36HBb9DKW1 # Use network installation url --url="http://192.168.88.254/centos/7/" # System language lang en_US # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # SELinux configuration selinux --disabled # Network information network --bootproto=dhcp --device=ens33 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part / --fstype="xfs" --size=20480 part /boot --fstype="xfs" --size=10240 part /app --fstype="xfs" --size=10240 part swap --fstype="swap" --size=2048 %packages @development @^minimal @core autofs vim kexec-tools %end %post rm -rf /etc/yum.repos.d/* wget -P /etc/yum.repos.d/ http://192.168.88.254/centos/magedu.repo mkdir /root/.ssh chmod 700 /root/.ssh cat > /root/.ssh/authorized_keys << EOF ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoY4YWigEMihehVgClbidZF0fZmepMh1JVvMulPENN8+TwbMT5sOg1V1NHEVd0mrtmSQJSPjJGkLHr6syIkPk2tQ+F4Bmpkyi8dWgbUKPc8hbVq/ivvpPeDqTXU2KXbyyrB7e8WdS+V7FwOcANJPzOB3+tJebMEYJ7L8JOSs8sKuBW+6+Jv9p99dmBfQ/ERn8dfmunUKh988sqsDD1MblRALR5jxsp2mn5yrmOwhjjg2HboqFRu81spnh2KOUjRPDMGd8PelujhCWDPGhsFRI1V8WLUlpIMRInHkIjv6Px2KKrqn0eF8h94XSZtGVIvlBnQtBbiCiEY6MOHfTga1Bx root@pxe7.mage.com EOF echo 'PS1="\[\e[1;31m\][\u@\h \W]\\$ \[\e[0m\]"' >> /etc/profile %end
(8)配置tftp服务:
安装tftp安装包:[root@pxe7 ~]# yum -y install tftp-server [root@pxe7 xinetd.d]# systemctl status tftp.socket 查看tftp状态 [root@pxe7 xinetd.d]# systemctl start tftp.socket [root@pxe7 xinetd.d]# systemctl enable tftp.socket 启动 [root@pxe7 xinetd.d]# ss -unlp 查看端口监听状态
(9)配置DHCP服务器:
[root@pxe7 tftpboot]# yum -y install dhcp [root@pxe7 dhcp]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf [root@pxe7 ~]# vim /etc/dhcp/dhcpd.conf option domain-name "magedu.com"; option domain-name-servers 192.168.88.254; default-lease-time 6000; max-lease-time 7200; log-facility local7; subnet 192.168.88.0 netmask 255.255.255.0 { range 192.168.88.2 192.168.88.253; option routers 192.168.88.254; next-server 192.168.88.254; filename "pxelinux.0"; } host fantasia { hardware ethernet 08:00:07:26:c0:a5; fixed-address fantasia.fugue.com; } [root@pxe7 ~]# systemctl start dhcp [root@pxe7 ~]# systemctl enable dhcpd
(10)准备pxe相关的文件。
[root@pxe7 ~]# yum provides "*/pxelinux.0" [root@pxe7 ~]# yum -y install syslinux [root@pxe7 ~]# rpm -ql syslinux |grep "pxelinux.0" [root@pxe7 ~]# cd /var/lib/tftpboot/ [root@pxe7 tftpboot]# cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} . [root@pxe7 tftpboot]# cp /usr/share/syslinux/{pxelinux.0,menu.c32} . [root@pxe7 tftpboot]# mkdir pxelinux.cfg [root@pxe7 tftpboot]# cp /var/www/html/centos/7/isolinux/isolinux.cfg pxelinux.cfg/default
(11)制作启动菜单编辑default文件:
default menu.c32 timeout 600 menu title CentOS PXE label mini menu label Install an ^Mini CentOS 7 kernel vmlinuz append initrd=initrd.img ks=http://192.168.88.254/ksdir/ks7-mi.cfg label distop menu label Install an ^distop CentOS 7 kernel vmlinuz append initrd=initrd.img ks=http://192.168.88.254/ksdir/ks7-disk.cfg label liunx menu label Manual ^Install an CentOS 7 kernel vmlinuz append initrd=initrd.img label local menu default menu label Boot from ^local drive localboot 0xffff menu end