设为首页 收藏本站
查看: 1061|回复: 0

[经验分享] Centos7.2 kickstart批量装机

[复制链接]

尚未签到

发表于 2018-4-22 10:39:14 | 显示全部楼层 |阅读模式
     本次试用Centos7.2作为PXE服务端批量安装操作系统。之前尝试过使用centos6.x做为服务端批量安装操作系统。本人表示Centos7.2批量装机“坑”不少最终百度无果无奈去google最终完成此实验。故此做此博客来Mark下本次实验过程。

  查看操作系统版本并且确定selinux和iptables已经关闭
[root@controller01 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@controller01 ~]# getenforce
Disabled
[root@controller01 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Chain nova-api-FORWARD (0 references)
target     prot opt source               destination         
Chain nova-api-INPUT (0 references)
target     prot opt source               destination         
Chain nova-api-OUTPUT (0 references)
target     prot opt source               destination         
Chain nova-api-local (0 references)
target     prot opt source               destination         
Chain nova-filter-top (0 references)
target     prot opt source               destination         
[root@controller01 ~]#  安装相关法服务

[root@controller01 ~]# yum install dhcp tftp tftp-server syslinux httpd xinetd -y

1、首先配置dhcpd服务器
[root@controller01 ~]# egrep -v "^$|^#" /etc/dhcp/dhcpd.conf
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.1.1.0  netmask 255.255.255.0 {
}
subnet 10.1.1.0 netmask 255.255.255.0 {
  range 10.1.1.26 10.1.1.200;
  option domain-name-servers ns1.internal.example.org;
  option domain-name "internal.example.org";
  option routers 10.1.1.100;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 10.1.1.100;   ##tftp的ip地址
  filename "/pxelinux.0";   ##tftp的应答文件
}
指定dhcp服务监听到哪块网卡
[root@controller01 ~]# grep ^[^#] /etc/sysconfig/dhcpd
DHCPDARGS=eth1  # 指定监听网卡
启动dhcpd服务
[root@controller01 ~]# systemctl start dhcpd
[root@controller01 ~]#
2、配置tftpfp服务
[root@controller01 ~]# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#protocol.  The tftp protocol is often used to boot diskless \
#workstations, download configuration files to network-aware printers, \
#and to start the installation process for some operating systems.
service tftp
{
socket_type= dgram
protocol= udp
wait= yes
user= root
server= /usr/sbin/in.tftpd
server_args= -s /var/lib/tftpboot   ##默认的放置配置文件的位置
disable= no   ##把yes改为no
per_source= 11
cps= 100 2
flags= IPv4
}
[root@controller01 ~]#  拷贝必须的网络引导文件到tftp的目录

[root@controller01 ~]# cp -v /usr/share/syslinux/controller01linux.0 /var/lib/tftpboot
[root@controller01 ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot
[root@controller01 ~]# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot
[root@controller01 ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot
[root@controller01 ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot
[root@controller01 ~]#
[root@controller01 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@controller01 ~]# mkdir /var/lib/tftpboot/networkboot
root@controller01 ~]#  3、挂载光盘到httpd的默认路径下

[root@controller01 ~]# mount /dev/cdrom  /var/www/html/Centos7.2  4、配置tftp的配置
[root@controller01 pxelinux.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg
[root@controller01 pxelinux.cfg]# cat   default
default menu.c32    ##展示风格
prompt 0
timeout 150   ##扽等该用户选择的超时时间
MENU TITLE LinuxTechi.com PXE Menu
#LABEL lcoal
MENU LABEL lolcal    ##设置第一项为本地引导防止被勿安装了操作系统当然这是个可选项
LABEL local
    MENU LABEL  ^1) Boot Local Hard Drive
    LOCALBOOT 0
#
LABEL centos7_x64             ###安装Centos7.2 的操作系统
MENU LABEL CentOS 7_X65
menu label ^2) Install CentOS7x64
KERNEL /networkboot/vmlinuz
append initrd=/networkboot/initrd.img ks=http://10.1.1.100/centos7-ks.cfg quiet  ###安装操作系统的应答文件位置
#
LABEL centos6_x64
MENU LABEL CentOS 6_X65
menu label ^3) Install CentOS6x64
kernel centos6/vmlinuz   ###这的相对位置为/var/lib/tftpboot/即 kernal的位置为/var/lib/tftpboot/centos6
append initrd=initrd.img ks=http://10.1.1.100/centos6-ks.cfg  4、拷贝vmlimz和initrd.img到/var/lib/tftpboot/networkboot/下
[root@controller01 tftpboot]# cp /var/www/html/Centos7.2/isolinux/vmlinuz networkboot/
cp /var/www/html/Centos7.2/isolinux/initrd.img networkboot/  5、生成pxe的应答文件可以安装[root@controller01 ~]# yum -y install system-config-kickstart.noarch此过程省略下面直接看我们已经做好的应答文件
[root@controller01 ~]# cat /var/www/html/centos7-ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use FTP installation media
url --url=" ##文件下载的位置
# Root password
rootpw --iscrypted $1$lgzpzCCE$Y6xpvPBLom/J4zAipUjfr.  ##此密码为123.com
# System authorization information
auth useshadow passalgo=sha512
# Use graphical install
graphical
firstboot disable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux disabled
# Installation logging level
logging level=info
# System timezone
timezone Europe/Amsterdam
# System bootloader configuration
# Reboot afer installing
reboot  ##一定要有此 选项否则操作系统安装完后不会自动重启。
######
bootloader location=mbr
clearpart --all --initlabel
part swap --asprimary --fstype="swap" --size=1024
part /boot --fstype xfs --size=300
part pv.01 --size=1 --grow
volgroup root_vg01 pv.01
logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow
%packages    ###要安装的包
@^minimal
@core
acpid
iputils
man
net-tools
ntp
ntpdate
parted
vim-enhanced
wget
%end   ###以%end结尾
#%addon com_redhat_kdump --disable --reserve-mb='auto'
#%end
%post #--nochroot --log=/mnt/sysimage/var/log/ks.post01.log
mkdir /root/test
%end
[root@controller01 ~]#  下面说下pxe应答文件没一项的意义
##软件包段###
%packages
@groupname指定安装的包组
package_name指定安装的包
-package_name指定不安装的包
###脚本段(可选)#####
%pre:安装系统前执行的命令或脚本(由于只依赖于启动镜像支持的命令很少)
%post:安装系统后执行的命令或脚本(基本支持所有命令)
##
关键字含义
install    告知安装程序这是一次全新安装而不是升级upgrade。   
url --url=" "    通过FTP或HTTP从远程服务器上的安装树中安装。
url --url="http://10.0.0.7/CentOS-6.7/"
url --url ftp://<username>:<password>@<server>/<dir>   
nfs    从指定的NFS服务器安装。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree   
text    使用文本模式安装。   
lang    设置在安装过程中使用的语言以及系统的缺省语言。lang en_US.UTF-8   
keyboard    设置系统键盘类型。keyboard us   
zerombr    清除mbr引导信息。   
bootloader    系统引导相关配置。
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
--location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。
--driveorder,指定在BIOS引导顺序中居首的驱动器。
--append=,指定内核参数.要指定多个参数,使用空格分隔它们。   
network    为通过网络的kickstart安装以及所安装的系统配置联网信息。
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
--bootproto=[dhcp/bootp/static]中的一种缺省值是dhcp。bootp和dhcp被认为是相同的。
static方法要求在kickstart文件里输入所有的网络信息。
network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2
请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。
--ip=,要安装的机器的IP地址.
--gateway=,IP地址格式的默认网关.
--netmask=,安装的系统的子网掩码.
--hostname=,安装的系统的主机名.
--onboot=,是否在引导时启用该设备.
--noipv6=,禁用此设备的IPv6.
--nameserver=,配置dns解析.   
timezone    设置系统时区。timezone --utc Asia/Shanghai   
authconfig    系统认证信息。authconfig --enableshadow --passalgo=sha512
设置密码加密方式为sha512 启用shadow文件。   
rootpw    root密码   
clearpart    清空分区。clearpart --all --initlabel
--all 从系统中清除所有分区--initlable 初始化磁盘标签   
part    磁盘分区。
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。
--asprimary,强迫把分区分配为主分区,否则提示分区失败。
--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。
--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。   
firstboot    负责协助配置redhat一些重要的信息。
firstboot --disable   
selinux    关闭selinux。selinux --disabled   
firewall    关闭防火墙。firewall --disabled   
logging    设置日志级别。logging --level=info   
reboot    设定安装完成后重启,此选项必须存在不然kickstart显示一条消息并等待用户按任意键后才重新引导也可以选择halt关机。  5、重启xinetd、httpd服务
[root@controller01 ~]# systemctl restart xinetd
[root@controller01 ~]# systemctl restart httpd  6、下面用客户端PXE启动
DSC0000.png

DSC0001.png

  当安装完后会自动重启并且默认启动项是从本地内核引导
DSC0002.png

  进入系统后查看是否创建了/root/test
DSC0003.png

  至此完成本次实验。
  注 若在安装过程中报
DSC0004.png

  此时把 内存调成2G 方可解决

  参考文档
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-kickstart-syntax.html#sect-kickstart-postinstall
https://www.linuxtechi.com/configure-pxe-installation-server-centos-7/  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450335-1-1.html 上篇帖子: CentOS 6.6 sudo日志配置 下篇帖子: centos7.x搭建gitlab9.2.2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表