zoukankan      html  css  js  c++  java
  • Kickstart 安装centos7

    以前是怎么安装系统的

    • 光盘(ISO文件,光盘的镜像文件)===》每一台物理机都得给一个光驱,如果用外置光驱的话,是不是每台机器都需要插一下
    • U盘:ISO镜像刻录到U盘==》需要每台机器都需要插一下
    • 并行安装==》网络安装
    • 自动化安装

    备注:(WDS,需要安装在Windows Server 2008)

    Linux系统批量安装

    kickstart是RedHat公司开源的软件,所以对CentOS兼容性最好。

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

    kickstart是一个项目的名称。没有这个软件。使用者水平是高中以上

    cobbler是对kickstart的所有组件的封装。使用者水平是初中以上。本质上就是网页版本的kickstart

    kickstart的原理及组件

    安装DHCP服务

    环境准备

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

    CentOS Linux release 7.4.1708 (Core)

    [root@kickstart ~]# uname -r

    3.10.0-693.el7.x86_64

    [root@kickstart ~]# getenforce

    Disabled

    [root@kickstart ~]# 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@kickstart ~]# hostname -I

    10.0.0.201 172.16.1.201

    安装DHCP

    yum -y install dhcp

    配置DHCP

    cat >>/etc/dhcp/dhcpd.conf<<EOF

    subnet 172.16.1.0 netmask 255.255.255.0 {

    range 172.16.1.100 172.16.1.199;

    option subnet-mask 255.255.255.0;

    default-lease-time 21600;

    max-lease-time 43200;

    next-server 172.16.1.201;

    filename "/pxelinux.0";

    }

    EOF

    启动dhcp查看日志

    [root@kickstart ~]# systemctl start dhcpd

    [root@kickstart ~]# systemctl status dhcpd

    tailf /var/log/messages

    DHCP服务对kickstart系统的影响程度

    新建空白虚拟机,建完后做快照。

    TFTP没有最终报错

    安装TFTP服务

    安装

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

    启动

    systemctl start tftp.socket

    TFTP服务对kickstart系统的影响程度

    上面报错是在TFTP服务的根目录找不到启动文件pxelinux.0 下载

    [root@kickstart ~]# cd /var/lib/tftpboot/ # TFTP服务的根目录

    [root@kickstart tftpboot]# ls

    [root@kickstart tftpboot]#

    syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。如果没有找到pxelinux.0这个文件,可以安装一下。

    yum -y install syslinux

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

    首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭

    上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对

    如何找到这个配置文件

    第一步:挂载镜像

    第二步

    mkdir -p /var/www/html/CentOS7

    mount /dev/cdrom /var/www/html/CentOS7

    第三步:从镜像中找到相关的配置文件

    cp -a /var/www/html/CentOS7/isolinux/* /var/lib/tftpboot/

    mkdir -p /var/lib/tftpboot/pxelinux.cfg

    cp /var/www/html/CentOS7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

    启动软件安装报错

    这是因为centos 文件没有进行修改 跳过直接安装http

    安装HTTP服务

    作用1:提供自动应答文件下载

    作用2:提供安装系统所需的所有rpm包下载

    [root@kickstart ~]# yum -y install httpd

    [root@kickstart ~]# systemctl start httpd.service

    检查步骤

    http://10.0.0.201/CentOS7/

    curl http://172.16.1.201/CentOS7/

    default配置文件

    1. [root@kickstart tftpboot]# pwd
    2. /var/lib/tftpboot
    3. [root@kickstart tftpboot]# cd pxelinux.cfg/
    4. [root@kickstart pxelinux.cfg]# vim default
    5. efault ks
    6. prompt 0
    7. label ks
    8.   kernel vmlinuz
    9.   append initrd=initrd.img ks=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1
    10. 配置 网卡

    创建ks.cfg文件

    通常,我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。使用这种kickstart,只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。

    生成kickstart配置文件的三种方法:

    • 方法1、 每安装好一台Centos机器,Centos安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)
    • 方法2、Centos提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5).网上有很多用CentOS桌面版生成ks文件的文章,如果有现成的系统就没什么可说。但没有现成的,也没有必要去用桌面版,命令行也很简单。
    • 方法3、阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
    1. [root@CentOS-7 ks_config]# vim CentOS7-ks.cfg
    2.  
    3. # Kickstart Configurator for CentOS 7 by yao zhang
    4. Install 告知安装程序,这是一次全新安装,而不是升级upgrade。
    5. url --url=http://172.16.1.201/CentOS7/ 通过FTP或HTTP从远程服务器上的安装树中安装。
    6. text 使用文本模式安装。
    7. lang en_US.UTF-8 设置在安装过程中使用的语言以及系统的缺省语言
    8. keyboard us 设置系统键盘类型。keyboard us
    9. zerombr 清除mbr引导信息。系统引导相关配置。
    10. bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
    11.  --location=,指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition(在包含内核的分区的第一个扇区安装引导装载程序)或none(不安装引导装载程序)。
    12. --driveorder,指定在BIOS引导顺序中居首的驱动器。
    13.  --append=,指定内核参数.要指定多个参数,使用空格分隔它们。
    14. network --bootproto=static --device=eth1 --ip=172.16.1.202 --netmask=255.255.255.0 –activate
    15. --bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的
    16. --ip=,要安装的机器的IP地址. --netmask=,安装的系统的子网掩码.
    17. network --hostname=Cobbler --hostname=,安装的系统的主机名.
    18. #network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS7
    19. --bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。 --onboot=,是否在引导时启用该设备.
    20. timezone --utc Asia/Shanghai 设置系统时区。timezone --utc Asia/Shanghai
    21. authconfig --enableshadow --passalgo=sha512 系统认证信息。authconfig --enableshadow --passalgo=sha51设置密码加密方式为sha512?启用shadow文件
    22. clearpart --all –initlabel 清空分区。clearpart --all –initlabel --all 从系统中清除所有分区,--initlable 初始化磁盘标签 磁盘分区。
    23. part /boot --fstype xfs --size 1024 --size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。
    24. part swap --size 1024
    25. part / --fstype xfs --size 1 –grow --fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。
    26. firstboot –disable
    27. selinux --disabled
    28. firewall --disabled
    29. logging --level=info
    30. reboot
    31.  
    32. %packages
    33. @^minimal 指定安装的包组
    34. @compat-libraries
    35. @debugging
    36. @development
    37. tree
    38. nmap
    39. sysstat
    40. lrzsz
    41. dos2unix
    42. telnet
    43. wget
    44. vim
    45. bash-completion
    46. %end
    47.  
    48. %post
    49. systemctl disable postfix.service
    50. %end

    保存,启动安装虚拟机,就可以一件化安装。

    不该出现的错误

    报错原因:selinux没关

  • 相关阅读:
    Python-Image 基本的图像处理操作
    剪枝
    poj1182(食物链)续
    HLG2035广搜
    HLG2040二叉树遍历已知前中,求后
    先序,中序,后序,已知两者求第三者
    C++中new的解说
    僵尸进程
    HLG2062(make,heap问题)
    make_head,,,pop_head,,,push_head,,,sort_head..
  • 原文地址:https://www.cnblogs.com/jksbaduen/p/7832957.html
Copyright © 2011-2022 走看看