自动化安装linux系统

自动化安装centos7 centos6
实验:实现基于PXE的系统自动化安装centos

初始化:iptables|firewalld 关闭,selinux 关闭, ntp|chrony时间同步
环境:两台主机
一台主机A:DHCP,TFTP,HTTP,ks,yum 源 vmnet 192.168.38.100 可以连接互联网
一台主机B:客户端pxe

1 在A上实现

实现http服务
yum install httpd 
systemctl start httpd 
systemctl enable httpd 

2 yum源(centos7,6) 把需要安装的镜像文件挂载到http网页上
ls /root/CentOS-6.10-x86_64-bin-DVD1.iso CentOS-7-x86_64-Everything-1810.iso

mkdir /var/www/html/centos{7,6}/os/x86_64/ -pv
vim /etc/fstab
/root/CentOS-6.10-x86_64-bin-DVD1.iso   /var/www/html/centos/6/os/x86_64   iso9660      defaults 0 0
/root/CentOS-7-x86_64-Everything-1810.iso /var/www/html/centos/7/os/x86_64   iso9660      defaults 0 0
mount -a 

3 应答文件

system-config-kickstart          基于图形化界面创造应答文件
vim /root/anaconda-ks.cfg

ls /var/www/html/ksdir/     准备centos6  和  centos7 应答文件
ks6_desktop.cfg  ks7_mini.cfg

下面是我写的centos7应答文件 仅供参考

url --url="http://192.168.38.100/centos/7/os/x86_64/"
text
reboot
selinux --disabled
firewall --disabled
zerombr
clearpart --all --initlabel
rootpw --plaintext magedu
bootloader --append="net.ifnames=0" --location=mbr
part / --fstype="xfs" --size=100000
part /boot --fstype="xfs" --size=1000
part swap --fstype="swap" --size=2048
%packages
@^minimal
autofs
%end
%post
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/test.repo <<EOF
[base]
Baseurl=file:///misc/cd
gpgcheck=0
EOF
%end

ks7_mini.cfg
url --url=“http://192.168.38.100/centos/7/os/x86_64/”
ks6_desktop.cfg
url --url=“http://192.168.38.100/centos/6/os/x86_64/”

4 dhcp

yum install dhcp 
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
subnet 192.168.38.0 netmask 255.255.255.0 {
    range 192.168.38.101    192.168.38.254;
    option routers    192.168.38.1;
    option domain-name-servers 180.76.76.76;
    next-server 192.168.38.100;     
    filename "pxelinux.0";
}

systemctl start dhcpd 
systemctl enable dhcpd

在这里插入图片描述

5 tftp

yum install tftp-server
systemctl start tftp
systemctl enable tftp

6 相关PXE相关文件

yum install syslinux 
cp /usr/share/syslinux/{pxelinux.0,menu.c32}  /var/lib/tftpboot/
mkdir /var/lib/tftpboot/centos{6,7}cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinux,initrd.img} /var/lib/tftpboot/centos7
cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinux,initrd.img} /var/lib/tftpboot/centos6

7 准备安装菜单

mkdir  /var/lib/tftpboot/pxelinux.cfg/
cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
这里必须把isolinux.cfg改名为default  不然客户端找不到  安装菜单不会显示 会报错
vim /var/lib/tftpboot/pxelinux.cfg/default     注意文件严格按照自己的对应
default menu.c32
timeout 600

menu title Auto Install CentOS for M38

label linux7
  menu label Install ^Mini CentOS 7
  menu default
  kernel centos7/vmlinuz                                                                                                                                                    
  append initrd=centos7/initrd.img ks=http://192.168.38.100 /ksdir/ks7_mini.cfg

label linux6
  menu label Install ^Desktop CentOS 6
  kernel centos6/vmlinuz
  append initrd=centos6/initrd.img ks=http://192.168.38.100/ksdir/ks6_desktop.cfg

label local
  menu label Boot from ^local drive
  localboot 0xffff

在这里插入图片描述
在这里插入图片描述
在机器b上开启自动使用dhcp获取地址 然后是以下界面
在这里插入图片描述
tree /var/lib/tftpboot/ 我的文件树状图 经供参考
/var/lib/tftpboot/
├── centos6
│ ├── initrd.img
│ └── vmlinuz
├── centos7
│ ├── initrd.img
│ └── vmlinuz
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
└── default

3 directories, 7 files

8 在B上测试安装 注意B机器如果安装centos7 必须最小内存为1.5G 不然会报错 和服务器A机器必须在同一模式 不然获取不了dhcp地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值