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

[经验分享] kickstart无人值守安装CentOS7

[复制链接]

尚未签到

发表于 2018-4-20 07:29:43 | 显示全部楼层 |阅读模式
以前是怎么安装系统的
  
1.光盘(ISO文件,光盘的镜像文件) à每一台物理机都得给一个光驱,如果用外置光驱的话,每台机器都需要插一下

2.U盘:ISO镜像刻录到U盘à需要每台机器都需要插一下

3.并行安装à网络安装

批量自动安装

  

实现原理:将手动安装的所有的详细步骤记录到一个文件中,然后有一种软件通过读取这个文件就可以实现自动化安装系统

  

kickstart原理及组件

  

DSC0000.jpg

  

  

  

  

   DSC0001.jpg
  

  kickstart原理
  

  kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。
  PXEDHCP发送请求--DHCP服务器提供信息--PXE客户端请求下载启动文件--TFTP响应客户端请求并传送文件--PXE请求下载自动应答文件

  

  环境准备

[root@oldboylnb ~]# cat /etc/redhat-release

  CentOS Linux release 7.4.1708 (Core)
[root@oldboylnb ~]# uname -r

  3.10.0-693.el7.x86_64
[root@oldboylnb ~]# getenforce

  Disabled
[root@oldboylnb ~]# systemctl status firewalld.service

   firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  Active: inactive (dead)
  Docs: man:firewalld(1)
[root@oldboylnb ~]# hostname -I

  10.0.0.201 172.16.1.201
  
kickstart无人值守部署

  安装DHCP服务
  
  DHCPDynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。DHCP服务
  

[root@oldboylnb ~]# yum install -y dhcp

  Installed:
  dhcp.x86_64 12:4.2.5-58.el7.centos
  
修改dhcp配置文件
  cat >>/etc/dhcp/dhcpd.conf<<EOF
  subnet  172.16.1.0 netmask 255.255.255.0 {  #服务端本机IP
  range 172.16.1.100 172.16.1.199;   # 可分配的起始IP-结束IP
  option subnet-mask 255.255.255.0;  # 设定netmask
  default-lease-time 21600;          # 设置默认的IP租用期限
  max-lease-time 43200;            # 设置最大的IP租用期限
  next-server 172.16.1.201;          # 告知客户端TFTP服务器的ip
  filename &quot;/pxelinux.0&quot;;             # 告知客户端从TFTP根目录下载pxelinux.0文件
  }
  EOF
  启动服务

  

[root@oldboylnb ~]# systemctl start dhcpd

[root@oldboylnb ~]# systemctl status dhcpd

   dhcpd.service - DHCPv4 Server Daemon
  Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
  Active: active (running) since Mon 2018-01-08 09:35:15 CST; 11s ago
  Docs: man:dhcpd(8)
  man:dhcpd.conf(5)
  Main PID: 1398 (dhcpd)
  Status: &quot;Dispatching packets...&quot;
  CGroup: /system.slice/dhcpd.service
  └─1398 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
  Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on   LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
  Jan 08 09:35:15 oldboylnb dhcpd[1398]:
  Jan 08 09:35:15 oldboylnb dhcpd[1398]: No subnet declaration for eth0 (10.0.0.201).
  Jan 08 09:35:15 oldboylnb dhcpd[1398]: ** Ignoring requests on eth0.  If this is not what
  Jan 08 09:35:15 oldboylnb dhcpd[1398]:    you want, please write a subnet declaration
  Jan 08 09:35:15 oldboylnb dhcpd[1398]:    in your dhcpd.conf file for the network segment
  Jan 08 09:35:15 oldboylnb dhcpd[1398]:    to which interface eth0 is attached. **
  Jan 08 09:35:15 oldboylnb dhcpd[1398]:
  Jan 08 09:35:15 oldboylnb dhcpd[1398]: Sending on   Socket/fallback/fallback-net
  Jan 08 09:35:15 oldboylnb systemd[1]: Started DHCPv4 Server Daemon.
  

  查看日志
  

[root@oldboylnb ~]#  tail -20  /var/log/messages

  Jan  8 09:35:15 oldboylnb dhcpd: Listening on LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
  Jan  8 09:35:15 oldboylnb dhcpd: Sending on   LPF/eth1/00:0c:29:52:4d:f5/172.16.1.0/24
  Jan  8 09:35:15 oldboylnb dhcpd:
  Jan  8 09:35:15 oldboylnb dhcpd: No subnet declaration for eth0 (10.0.0.201).
  Jan  8 09:35:15 oldboylnb dhcpd: ** Ignoring requests on eth0.  If this is not what
  Jan  8 09:35:15 oldboylnb dhcpd:   you want, please write a subnet declaration
  Jan  8 09:35:15 oldboylnb dhcpd:   in your dhcpd.conf file for the network segment
  Jan  8 09:35:15 oldboylnb dhcpd:   to which interface eth0 is attached. **
  Jan  8 09:35:15 oldboylnb dhcpd:
  Jan  8 09:35:15 oldboylnb dhcpd: Sending on   Socket/fallback/fallback-net
  Jan  8 09:35:15 oldboylnb systemd: Started DHCPv4 Server Daemon.
  
安装TFTP服务
  TFTPTrivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69
  下载并启动tftp

[root@oldboylnb ~]# yum install -y tftp-server

  Installed:
  tftp-server.x86_64 0:5.2-13.el7
[root@oldboylnb ~]# systemctl start tftp.socket

[root@oldboylnb ~]# systemctl status tftp.socket

   tftp.socket - Tftp Server Activation Socket
  Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
  Active: active (listening) since Mon 2018-01-08 09:53:27 CST; 36s ago
  Listen: [::]:69 (Datagram)
  Jan 08 09:53:27 oldboylnb systemd[1]: Listening on Tftp Server Activation Socket.
  Jan 08 09:53:27 oldboylnb systemd[1]: Starting Tftp Server Activation Socket.
  请求下载启动文件syslinux

  syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
  

  
[root@oldboylnb tftpboot]# yum install -y syslinux

  Installed:
  syslinux.x86_64 0:4.05-13.el7
  Dependency Installed:
  mtools.x86_64 0:4.0.18-5.el7
  

[root@oldboylnb tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@oldboylnb tftpboot]# ll

  total 28
  -rw-r--r-- 1 root root 26764 Jan  8 10:14 pxelinux.0
  新建一个pxelinux.cfg目录,存放客户端的配置文件

[root@oldboylnb /]# mkdir -p /var/www/html/CentOS7

[root@oldboylnb /]# mount /dev/cdrom /var/www/html/CentOS7

  mount: /dev/sr0 is write-protected, mounting read-only
[root@oldboylnb CentOS7]# \cp -a isolinux/* /var/lib/tftpboot/[root@oldboylnb /]#mkdir -p /var/lib/tftpboot/pxelinux.cfg

[root@oldboylnb isolinux]# pwd

  /var/www/html/CentOS7/isolinux
[root@oldboylnb isolinux]# cp isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
  cp: overwrite ‘/var/lib/tftpboot/pxelinux.cfg/default’? y
  

  安装httpd服务
  

[root@oldboylnb isolinux]# yum -y install httpd

[root@oldboylnb isolinux]# systemctl start httpd.service

  
查看网页

DSC0002.jpg

  修改default文件
[root@oldboylnb isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default
append initrd=initrd.img method=http://172.16.1.201/CentOS7/
append initrd=initrd.img inst.repo=http://172.16.1.201/CentOS7/   2选1

DSC0003.jpg

  手动网络安装
  
  新建一台空白虚拟机,也不要挂载ISO镜像,创建2个网卡,打开电源。LAN区段172.16.1.0/24
  

   DSC0004.jpg
   DSC0005.jpg
   DSC0006.jpg
   DSC0007.jpg
  

  自动安装
  创建ks.cfg文件
  

  
[root@oldboyedu ks_config]# cat CentOS7-ks.cfg

  # Kickstart Configurator for CentOS 7 by yao zhang
  install                               告知安装程序,这是一次全新安装,而不是升级upgrade
  url --url=http://172.16.1.201/CentOS7/     通过FTPHTTP从远程服务器上的安装树中安装
  text                                 使用文本模式安装
  lang en_US.UTF-8                     设置在安装过程中使用的语言以及系统的缺省语言
  keyboard us                          设置系统键盘类型
  zerombr                             清除mbr引导信息
  bootloader --location=mbr --driveorder=sda --append=&quot;crashkernel=auto rhgb quiet&quot; 系统引导相关配置
  指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)none(不安装引导装载程序)
  --driveorder,指定在BIOS引导顺序中居首的驱动器
  --append=,指定内核参数.要指定多个参数,使用空格分隔它们
  network  --bootproto=static --device=eth0 --gateway=10.0.0.254 --ip=10.0.0.202 --nameserver=223.5.5.5 --netmask=255.255.255.0 –activate  为通过网络的kickstart安装以及所安装的系统配置联网信息
  --bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcpbootpdhcp被认为是相同的。
  static方法要求在kickstart文件里输入所有的网络信息。
  network  --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 --activate
  network  --hostname=Cobbler
  #network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
  --ip=,要安装的机器的IP地址
  --gateway=,IP地址格式的默认网关
  --netmask=,安装的系统的子网掩码
  --hostname=,安装的系统的主机名
  --onboot=,是否在引导时启用该设备
  --noipv6=,禁用此设备的IPv6
  --nameserver=,配置dns解析
  timezone --utc Asia/Shanghai                 设置系统时区
  authconfig --enableshadow --passalgo=sha512   系统认证信息
  rootpw  --iscrypted    root密码$6$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
  clearpart --all –initlabel   清空分区
  --all 从系统中清除所有分区,--initlable 初始化磁盘标签
  part /boot --fstype xfs --size 1024
  part swap --size 1024
  part / --fstype xfs --size 1 –grow
  --fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swapvfat
  --asprimary,强迫把分区分配为主分区,否则提示分区失败
  --size=,MB为单位的分区最小值.在此处指定一个整数值,500.不要在数字后面加MB
  --grow,告诉分区使用所有可用空间(若有),或使用设置的最大值
  firstboot –disable                 负责协助配置redhat一些重要的信息
  selinux –disabled                 关闭selinux
  firewall –disabled                 关闭防火墙
  logging --level=info                   设置日志级别
  reboot        设定安装完成后重启,此选项必须存在,不然kickstart显示一条消息,并等待用户按任意键后才重新引导,也可以选择halt关机
  %packages
  @^minimal
  @compat-libraries
  @debugging
  @development
  tree
  nmap
  sysstat
  lrzsz
  dos2unix
  telnet
  wget
  vim
  bash-completion
  %end
  

[root@oldboyedu ks_config]# cat  /var/lib/tftpboot/pxelinux.cfg/default

  default ks
  prompt 0
  label ks
  kernel vmlinuz
  append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
   DSC0008.jpg

运维网声明 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-449340-1-1.html 上篇帖子: centos搭建ssh 下篇帖子: centos7部署mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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