Linux自动化批量部署安装系统
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自动化批量部署安装系统相关的知识,希望对你有一定的参考价值。
运维自动化之系统安装
系统启动流程(详情见之前文档):
bootloader-->kernel(initramfs)-->rootfs-->/sbin/init
anaconda:系统安装工具(安装操作系统向导)
gui:图形窗口
tui:curses安装;蓝色背景的文本方式窗口安装
MBR:isolinux/boot.cat
第二阶段:isolinux.bin
配置文件:isolinux/isolinux.cfg(光盘启动的安装菜单,文件当中的^代表了快捷键对应的按键)
timeout的倒计时是十分之一秒
menu default代表进入菜单后的默认选择
nomodeset:不修改模式设置,就会加载显卡的最基本驱动
rescue:救援模式
在光盘启动的菜单中按ESC后输入linux askMethod选择使用安装系统的方式
text字符界面安装
初级:
半自动安装:
系统安装完成后,root家目录会生成一个anaconda.cfg应答文件,当中拥有安装系统时候的一系列步骤
1 system-config-kickstart:用来制作无人值守的应答文件 #生成应答文件
2 制作完成后会保存为一个ks.cfg文件,最终需要安装什么包在文件中编辑即可,可参考anaconda.cfg文件; #修改应答文件
3 ksvalidator ks.cfg #检查文件语法是否有误
4 将ks.cfg文件存放在ftp的共享目录中
5 使用光盘启动,在菜单键入tap键,在initrd.img后面输入ks=ftp://172.18.0.6/pub/ks.cfg ip=172.18.0.123 netmask=255.255.0.0 #读取ks.cfg文件并配置ip地址
Centos7:
7上面的system-config-kickstart打开后Package位置可能没有包,要在yum源中将第一个仓库改为[development];
搭建PXE批量安装系统步骤
1 yum -y install dhcpd tftp-server httpd syslinux #安装后续所需的服务
2 DHCP服务:
静态指定
动态获取:bootp协议:MAC与IP一一静态对应
dhcp:动态分配地址
dhcp工作过程
UDP协议的67(服务端)68(客户端)端口
跨网段分配IP地址:
dhcp中继:dhcrelay(收到客户端的广播discover单播给跨路由的DHCP服务器)
DHCP Server:
yum -y install dhcpd #安装dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #将范例文件拷贝并覆盖到指定位置
vim /etc/dhcp/dhcpd.conf #编辑配置文件
option domain-name "kaikai.com"; #客户端获取的域名
option domain-name-servers 114.114.114.114,8.8.8.8; #客户端获取到的dns
option routers 192.168.27.1; #客户端获取到的网关
default-lease-time 86400; #指定默认租约时间
max-lease-time 864000; #最大租约时间
log-facility local7; #日志
subnet 192.168.27.0 netmask 255.255.255.0 { #指定网段与掩码
range 192.168.27.50 192.168.27.200; #指定IP地址池
option routers 192.168.27.1; #设置网关
option domain-name-servers 114.144.144.144; #设置dns
filename "pxelinux.0"; #启动文件名称
next-server 192.168.27.144; #存放后续启动文件IP地址
}
/var/lib/dhcpd/dhcpd.leases #客户端获取ip后的日志记录(服务端)
/var/lib/dhclient/dhclient.leases #客户端获取dhcp服务端的详细信息(客户端)
systemctl enable dhcpd #设置dhcpd服务器开机自动启动
systemctl start dhcpd #启动dhcpd服务
3 TFTP Server:轻量级的文件传输服务器(udp 69端口)
工作目录/var/lib/tftpboot;
1 yum -y install tftp-server #安装tftp服务
2 systemctl enable tftpd #设置tftpd服务开机启动
3 systemctl start tftp #启动tftpd服务
4 mkdir /var/www/html/centos/{6,7} -pv #在httpd服务的工作目录下创建两个文件夹用来存放分别挂载不同系统的光盘
mount /dev/sr0 /var/www/html/centos/7 #将第一块centos7磁盘挂载到后方目录
mount /dev/sr1 /var/www/html/centos/6 #将第二块centos6的系统挂载到后方目录
5 yum -y install system-config-kickstart #安装图形化的回应文件
system-config-kickstart #分别在centos6与centos7的图形界面键入此命令生成ks.cfg文件
案例采用的是最小化安装,配置界面是图形化的,没有难度,在此不再举例,按照实际情况配置,最后保存在root的家目录下名为ks.cfg文件
在centos 7的/var/www/html/下创建ksdir文件夹用来存放两个系统的ks.cfg文件
scp ~root/ks.cfg [email protected]:/var/www/html/ksdir 将ceonts 6上面生成的文件scp到服务端也就是centos 7上面
在图形化中选项的最后一项安装后脚本可以写如下内容:
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo <<EOF
[base]
name=xxxxxx
baseurl=http://172.18.0.1/centos/7
gpgcheck=0
enabled=1
EOF
cat > /root/.ssh/authorized_keys <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKxH6ZjOlmJadhQvZvc+ho1rdq2hNejdeY+VFBQqZxaFQ6W7fwvwCTQVeoFYVOmelkhByTJAQwg720j
Fvg5zPF8+UP7ms1yJXd4d220AAAiqJm1/Ql5wJiHIOTp+8biPDPkmQUqc4751ZumCB6hEtv9LblEA6jgLU9dDTxPrYFkKj8yd/2a3V38vtzj0tRIQZOco
xExvY2FC4v0P+jxcSrrXkv2u5AUb8ZxBYiIBZBmXNfbOKuNFoQOpr4w2JOmiOxpyhtLDYMcJxFoFjZe4Jb3KMPES6AK/3Rw0Kg8MyPZphy/nDandZyoxz
q+dpG0utY8Ttta6XFXEwmgEiZf517 [email protected]
EOF
chmod 664 /root/.ssh/authorized_keys
useradd fang
echo fang | --stdin fang &>/dev/null
systemctl set-default multi-user.target:安装完成后自动重启
6 cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot #将此文件拷贝到tftp的工作目录
menu.c32:菜单风格
cp /var/www/html/centos/7/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot #将启动文件和内核拷到tftp的工作目录
mkdir /var/lib/tftpboot/pxelinux.cfg #创建pxelinux.cfg目录,用于存放isolinux.cfg
cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #将文件拷贝并改名为default
注意:如果装6和7还要单独复制6的内核一系列文件
7 vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600
menu title PXE INSTALL CentOS
label desktop
menu label ^Install Desktop CentOS 7
kernel 7/vmlinuz
append initrd=7/initrd.img ks=http://192.168.27.7/ksdir/ks7-pxe.cfg
label mini
menu label Install ^Destkop CentOS 6
kernel 6/vmlinuz
append initrd=6/initrd.img ks=http://192.168.27.7/ksdir/ks6-desktop.cfg
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
以上是关于Linux自动化批量部署安装系统的主要内容,如果未能解决你的问题,请参考以下文章