快捷搜索:
来自 67677新澳门手机版 2019-08-11 10:43 的文章
当前位置: 67677新澳门手机版 > 67677新澳门手机版 > 正文

67677新澳门手机版运维自动化之系统安装,无人值

 

  • DHCP服务
  • DHCP实现
  • PXE(Preboot Excution Environment) 预启动执行环境
  • Cobbler

环境准备

  • 准备两台主机,如centos6和centos7
  • centos7当作server服务器
  • 关闭selinux
  • 关闭防火墙

一、DHCP服务

  • DHCP (Dynamic Host Configuration Protocol)
    动态主机配置协议,是一种局域网协议,属于UDP协议

  • 应用:为局域网内的主机分配ip地址,同时也作为内网的管理手段

  • 使用场景:自动化安装系统,解决ipv4地址不足的问题

  • DHCP报文:共有八种报文

    • DHCP DISCOVER:客户端到服务器
    • DHCP OFFER :服务器到客户端
    • DHCP REQUEST:客户端到服务器
    • DHCP ACK :服务器到客户端
    • DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
    • DHCP DECLINE :客户端到服务器,指示地址已被使用
    • DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
    • DHCP INFORM:客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到
  • 续租:

    • 50% :租赁时间达到50%时续租,向DHCP服务器发送新的DHCP REQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCP ACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
    • 87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求

*DHCP服务必须基于本地,

  • DHCP服务器一般来说应该与需要DHCP服务的客户端处于同一个网段中

  • 这是因为DHCP服务过程基于广播,而广播只能在同一个网段内传送

  • 实现跨网段的DHCP服务

    • 需要在客户机网段指定一台代理(dhcrelay:中继)负责客户机与另一个网段的DHCP服务器的通信,实现IP地址的分配
    • 符合RFC 1542 Compliant Routers标准的路由器可以直接实现中继的功能

安装

cobbler包光盘里是没有的,要配置epel源,这里就说怎么配置epel源了,在yum.repos.d/目录下照葫芦画瓢就可,配置好后执行如下命令安装

yum install –y cobbler
#
#

 

安装成功后,我们发现它还安装了其他的服务

67677新澳门手机版 1

备注:我们搭建cobbler-系统部署需要用到httpd、tftp-server、dhcp服务,从图上可以看出它没有安装dhcp服务,所以我们要安装下dhcp服务

yum install –y dhcp
#
#

二、DHCP实现

  • Linux DHCP协议的实现程序:dhcp, dnsmasq(包含dhcp, dns功能)

  • 端口:
    dhcp_server: 67/udp
    dhcp_client: 68/udp

  • 配置DHCP服务器端

    • DHCP服务的配置文件位于:/etc/dhcp/dhcpd.conf,打开文件后如下图:

    67677新澳门手机版 2

    • 提示模板文件/usr/share/doc/dhcp*/dhcpd.conf.sample和帮助参考位置:man 5 dhcpd.conf

    • 直接赋值模板文件覆盖配置文件,在模板基础上修改配置
      cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

    67677新澳门手机版 3

    • 修改配置文件:vim /etc/dhcp/dhcpd.conf
      核心配置内容包含在subnet条目中,这里的配置属于全局配置
      基本格式如下:
    subnet SUBNET_IP netmask NETMASK_IP {
      range START_IP END_START;
      其余设置项
    }
    
    • 例如:DHCP服务器本机IP为192.168.136.229,子网掩码:225.225.225.0,分配的地址库范围:192.168.136.10-192.168.136.30,则配置文件格式如下:
    subnet 192.168.136.0 netmask 225.225.225.0 {
      range 192.168.136.10 192.136.136.30
    }
    

    67677新澳门手机版 4

    • 配置好后,启动dhcp服务service dhcpd start,在另一台同网段主机上可以看到被分配的ip地址,从192.168.136.10/24开始分配

    67677新澳门手机版 5

    • 可以查看/var/lib/dhcpd/dhcpd.leases文件内容,查询DHCP服务器地址分配记录

    67677新澳门手机版 6

  • 其它配置选项:
    filename:指明引导文件名称(用于网络安装系统)
    next-server:提供引导文件的服务器IP地址(用于网络安装系统)

  • 检查配置文件语法
    service dhcpd configtest

  • DHCP客户端(dhclient)
    自动获取的IP信息文件:/var/lib/dhclient目录下,可以看到被分配的地址、DHCP服务器、分配的租期时间等信息

67677新澳门手机版 7

开启服务

三、PXE(Preboot Excution Environment) 预启动执行环境

http服务

systemctl start httpd
#开启服务
systemctl enable httpd
#设置开机自启动

(一)简介

  • 基于C/S架构设计
  • 支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统

tftp-server服务

systemctl start tftp
#开启服务
systemctl enable tftp
#开机自启动

(二)工作原理

  • Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
  • Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
  • Client执行接收到的pxelinux.0文件
  • Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
  • Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
  • Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
  • Client启动Linux内核
  • Client下载安装源文件,读取自动化安装脚本

cobbler服务

systemctl start cobblerd
#开启服务
systemctl enable cobblerd
#开机自启动

(三)PXE自动化安装CentOS 7(CentOS7作为HTTP、DHCP、TFTP服务器)

  • (1)安装前准备关闭SELinux和防火墙,DHCP服务器设置为静态IP

  • (2)安装相关软件包httpd, tftp-server, dhcp, syslinux

    • httpd服务提供yum源服务,
    • tftp服务器为客户机提供安装系统所需的启动文件、启动菜单、内核文件、伪文件系统
    • dhcp服务器为客户机提供IP地址,并将tftp服务器的地址提供给客户机
    • 启动文件、启动菜单需要安装syslinux软件包后获得
    • 执行命令:yum install httpd tftp-server dhcp syslinux

    67677新澳门手机版 8

  • (3)配置yum源服务

    • 将httpd服务设置为开机自启动:systemctl enable httpd
    • 打开httpd服务:systemctl start httpd
    • 配置yum源1:建立centos7目录mkdir -p /var/www/html/centos/7
    • 配置yum源2:复制centos7光盘文件内容至centos7目录下,这里将光盘挂载至目录下,效果与前者相同,实际中应该复制至硬盘,保证系统安装执行效率
      mount /dev/sr0 /var/www/html/centos/7

67677新澳门手机版 9

  • (4)准备kickstart文件

    • 准备桌面和最小化安装两份文件,可以根据/root/anaconda-ks.cfg文件修改
      注意:使用system-config-kickstart时,CentOS7环境下可能出现无法选择软件包的情况,此时需要将yum源配置文件的首个源配置信息的源标识符改名为"development",即可正常选择软件包

    67677新澳门手机版 10

    • 准备的kickstart文件:ks7.cfg为桌面安装使用,ks7-mini为最小化安装使用
      mkdir /var/www/html/ksdir 建立kickstart文件目录
      cp /root/anaconda-ks.cfg /var/www/html/ksdir/ks7.cfg 复制模板
      cp /root/anaconda-ks.cfg /var/www/html/ksdir/ks7-mini.cfg 复制模板

    • 两份kickstart文件示例如下:

    vim /var/www/html/ksdir/ks7.cfg
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Install OS instead of upgrade
    install
    # X Window System configuration information
    xconfig  --startxonboot
    # Keyboard layouts
    # old format: keyboard us
    # new format:
    keyboard --vckeymap=us --xlayouts='us'
    # Root password
    rootpw --iscrypted $1$B2Ve3zbv$S2d5TSE.8Iwbo4o3BoRxM1
    # Use network installation
    url --url="http://192.168.136.230/centos/7"
    # System language
    lang en_US
    user --name=hellopeiyang --password=$6$vFs7gFIqwNrxjVEx$UwrqEc4BanhssQpLa./g/ySepGSRLNll65NvI/PSJuavDVQJvVXukrUmHPHDX7tVyWb4uXlyEXBTYmVD0KxLK/ --iscrypted
    # Firewall configuration
    firewall --disabled
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use text mode install
    text
    # Run the Setup Agent on first boot
    firstboot --enable
    # SELinux configuration
    selinux --disabled
    # System services
    services --disabled="chronyd"
    ignoredisk --only-use=sda
    # Network information
    network  --bootproto=dhcp --device=ens33 --onboot=on
    # Reboot after installation
    reboot
    # System timezone
    timezone Asia/Shanghai --nontp
    # System bootloader configuration
    bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all
    # Disk partitioning information
    part /app --fstype="xfs" --ondisk=sda --size=51200
    part / --fstype="xfs" --ondisk=sda --size=51200
    part swap --fstype="swap" --ondisk=sda --size=2048
    part /boot --fstype="xfs" --ondisk=sda --size=1024
    
    %post
    systemctl enable autofs
    rm -rf /etc/yum.repos.d/*
    cat > /etc/yum.repos.d/base.repo <<eof
    [base]
    name=base
    baseurl=file:///misc/cd
    gpgcheck=0
    eof
    %end
    
    %packages
    @^graphical-server-environment
    @base
    @core
    @desktop-debugging
    @dial-up
    @fonts
    @gnome-desktop
    @guest-agents
    @guest-desktop-agents
    @hardware-monitoring
    @input-methods
    @internet-browser
    @multimedia
    @print-client
    @x11
    wodim
    autofs
    %end
    
    vim /var/www/html/ksdir/ks7-mini.cfg
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Install OS instead of upgrade
    install
    # Keyboard layouts
    # old format: keyboard us
    # new format:
    keyboard --vckeymap=us --xlayouts='us'
    # Root password
    rootpw --iscrypted $1$C8HufR6L$JuAxRzQnv7dGxVw.xDNLc0
    # Use network installation
    url --url="http://192.168.136.230/centos/7"
    # System language
    lang en_US
    user --name=hellopeiyang --password=$6$hbPuvZcl0TRrYyFG$Vb0pNhuS/uBLMpq6nbDzruRtZr0K1qGmCey6.PL3dyKA.iUvZds4JRgQ8LpzTJ.6STbuFD2Tu5xgXt68KIjrc/ --iscrypted 
    --gecos="hellopeiyang"
    # Firewall configuration
    firewall --disabled
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use text mode install
    text
    # Run the Setup Agent on first boot
    firstboot --enable
    # SELinux configuration
    selinux --disabled
    
    # System services
    services --disabled="chronyd"
    ignoredisk --only-use=sda
    # Network information
    network  --bootproto=dhcp --device=ens33 --onboot=on
    # Reboot after installation
    reboot
    # System timezone
    timezone Asia/Shanghai --nontp
    # System bootloader configuration
    bootloader --append="crashkernel=auto" --location=mbr --boot-drive=sda
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all
    # Disk partitioning information
    part /app --fstype="xfs" --ondisk=sda --size=51200
    part / --fstype="xfs" --ondisk=sda --size=51200
    part swap --fstype="swap" --ondisk=sda --size=2048
    part /boot --fstype="xfs" --ondisk=sda --size=1024
    
    %post
    systemctl enable autofs
    rm -rf /etc/yum.repos.d/*
    cat > /etc/yum.repos.d/base.repo <<eof
    [base]
    name=base
    baseurl=file:///misc/cd
    gpgcheck=0
    eof
    %end
    
    %packages
    @^minimal
    @core
    autofs
    %end
    
    • kickstart文件的权限可能不合适,为文件的所有用户增加读权限
      chmod r /var/www/html/ksdir/{rs7.cfg,rs7-mini.cfg}

    67677新澳门手机版 11

  • (5)配置TFTP服务

    • 设置tftp服务开机自启动:systemctl enable tftp.socket
    • 开启tftp服务:systemctl start tftp.socket

    67677新澳门手机版 12

  • (6)配置DHCP服务

    • 复制dhcp配置模板文件
      cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

    • 编辑/etc/dhcp/dhcpd.conf文件,subnet字段修改后如下:

    subnet 192.168.136.0 netmask 255.255.255.0 {
            range 192.168.136.10    192.168.136.30;
            next-server 192.168.136.230;
            filename "pxelinux.0";
    }
    
    • 将dhcp服务设置为自启动:systemctl enable dhcpd
    • 启动dhcp服务:systemctl start dhcpd

    67677新澳门手机版 13

  • (7)准备PXE相关文件

    • 建立PXE启动配置文件存放目录:mkdir /var/lib/tftpboot/pxelinux.cfg
    • 复制启动相关文件:
      cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
    • 复制内核, initrd文件:
      cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
    • 复制启动项设置文件(必须重命名为default):
      cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

    67677新澳门手机版 14

    • 文件目录结构如下:

    67677新澳门手机版 15

  • (8)修改启动菜单文件

vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32     //启动菜单风格
timeout 600 

menu title CentOS Linux 7 PXE Install

label desktop     //桌面自动安装 
  menu label Install CentOS Linux 7 ^Desktop
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.136.230/ksdir/ks7.cfg

label mini     //最小化自动安装
  menu label Install CentOS Linux 7 M^ini
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.136.230/ksdir/ks7-mini.cfg

label manual     //手动安装
  menu label Install CentOS Linux 7 ^Manual
  kernel vmlinuz
  append initrd=initrd.img inst.repo=http://192.168.136.230/centos/7

label local     //本地硬盘启动
  menu default
  menu label Boot from ^local drive
  localboot 0xffff
menu end 
  • (9)从网卡启动主机,正确进入PXE安装的启动项

    67677新澳门手机版 16

cobbler环境检查

执行

cobbler check
#

会出现如下提示,配置缺少的东西

1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.  This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
4 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
5 : enable and start rsyncd.service with systemctl
6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
8 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

OK 根据提示一步一步来解决

 

(四)PXE自动化安装CentOS 6 (CentOS 6作为FTP、DHCP、TFTP服务器)

  • (1)安装前准备:关闭SELinux和防火墙,DHCP服务器设置为静态IP

  • 67677新澳门手机版 ,(2)安装相关软件包vsftpd, tftp-server, dhcp, syslinux

    • 安装软件包:yum install vsftpd tftp-server dhcp syslinux
  • (3)配置yum源服务

    • 建立centos6目录:mkdir -p /var/ftp/pub/centos/6
    • 配置yum源:mount /dev/sr0 /var/ftp/pub/centos/6
    • 设置vsftpd服务为自启动:chkconfig vsftpd on
    • 启动vsftpd服务:service vsftpd start

    67677新澳门手机版 17

  • (4)准备kickstart文件

    • 与自动安装CentOS7相似,准备桌面和最小化安装两份文件

    • ks6.cfg为桌面安装使用,ks7-mini为最小化安装使用
      mkdir /var/ftp/pub/ksdir 建立kickstart文件目录
      cp /root/ananconda-ks.cfg /var/ftp/pub/ksdir/ks6.cfg 复制模板
      cp /root/ananconda-ks.cfg /var/ftp/pub/ksdir/ks6-mini.cfg 复制模板

    • 两份kickstart文件示例如下:

    vim /var/ftp/pub/ksdir/ks6.cfg
    
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Firewall configuration
    firewall --disabled
    # Install OS instead of upgrade
    install
    # Use network installation
    url --url="ftp://192.168.136.229/pub/centos/6"
    #repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
    # Root password
    rootpw --iscrypted $1$QmHn/VZt$YE/c30khjQ1i1hSHeMN8h/
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use text mode install
    text
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang en_US
    # SELinux configuration
    selinux --disabled
    # Installation logging level
    logging --level=info
    # Reboot after installation
    reboot
    # System timezone
    timezone  Asia/Shanghai
    # Network information
    network  --bootproto=dhcp --device=eth0 --onboot=on
    # System bootloader configuration
    bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all
    # Disk partitioning information
    part /boot --fstype="ext4" --size=1000
    part / --fstype="ext4" --size=50000
    part swap --fstype="swap" --size=2000
    part /app --fstype="ext4" --size=20000
    
    %post
    rm -rf /etc/yum.repos.d/*
    cat > /etc/yum.repos.d/base.repo <<eof
    [base]
    name=base
    baseurl=file:///misc/cd
    gpgcheck=0
    eof
    %end
    
    %packages
    @base
    @basic-desktop
    @core
    @debugging
    @desktop-debugging
    @desktop-platform
    @directory-client
    @fonts
    @general-desktop
    @graphical-admin-tools
    @input-methods
    @internet-applications
    @internet-browser
    @java-platform
    @legacy-x
    @network-file-system-client
    @office-suite
    @print-client
    @remote-desktop-clients
    @server-platform
    @server-policy
    @workstation-policy
    @x11
    abrt-gui
    certmonger
    device-mapper-persistent-data
    genisoimage
    krb5-workstation
    libXmu
    mtools
    oddjob
    pam_krb5
    pax
    python-dmidecode
    samba-winbind
    sgpio
    wodim
    %end
    
    vim /var/ftp/pub/ksdir/ks6-mini.cfg
    
    #platform=x86, AMD64, or Intel EM64T
    #version=DEVEL
    # Firewall configuration
    firewall --disabled
    # Install OS instead of upgrade
    install
    # Use network installation
    url --url="ftp://192.168.136.229/pub/centos/6"
    # Root password
    rootpw --iscrypted $1$H3QsWt7L$uezUXA.OuYFONmwP027tS.
    # System authorization information
    auth  --useshadow  --passalgo=sha512
    # Use text mode install
    text
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang en_US
    # SELinux configuration
    selinux --disabled
    # Installation logging level
    logging --level=info
    # Reboot after installation
    reboot
    # System timezone
    timezone  Asia/Shanghai
    # Network information
    network  --bootproto=dhcp --device=eth0 --onboot=on
    # System bootloader configuration
    bootloader --append="crashkernel=auto rhgb quiet" --location=mbr --driveorder="sda"
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all
    # Disk partitioning information
    part /boot --fstype="ext4" --size=1000
    part / --fstype="ext4" --size=50000
    part swap --fstype="swap" --size=2000
    part /app --fstype="ext4" --size=20000
    
    %post
    rm -rf /etc/yum.repos.d/*
    cat > /etc/yum.repos.d/base.repo <<eof
    [base]
    name=base
    baseurl=file:///misc/cd
    gpgcheck=0
    eof
    %end
    
    %packages
    @core
    @server-policy
    @workstation-policy
    autofs
    %end
    
    • kickstart文件的权限可能不合适,统一增加写权限
      chmod r /var/ftp/pub/ksdir/*

    67677新澳门手机版 18

  • (5)配置TFTP服务

    • 启动tftp服务:
    chkconfig tftp on     //tftp服务自启动
    service xinetd restart     //xinetd服务重启服务,为tftp服务监听端口
    

    67677新澳门手机版 19

  • (6)配置DHCP服务

    • 复制dhcp配置模板文件
      cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

    • 编辑/etc/dhcp/dhcpd.conf文件,subnet字段修改后入下:

subnet 192.168.136.0 netmask 255.255.255.0 {
        range 192.168.136.10    192.168.136.30;
        next-server 192.168.136.229;
        filename "pxelinux.0";
}
  • dhcpd服务自启动:chkconfig dhcpd on
  • 启动dhcp服务:service dhcpd start

67677新澳门手机版 20

  • (7)准备PXE相关文件

    • 建立PXE启动配置文件存放目录:mkdir /var/lib/tftpboot/pxelinux.cfg
    • 复制启动相关文件:cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot
    • 复制内核,initrd文件:
      cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
    • 复制启动项设置文件(必须重命名为default):
      cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

    67677新澳门手机版 21

    • 文件目录结构如下:

67677新澳门手机版 22

  • (8)修改启动菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
timeout 600 

menu title CentOS Linux 6 PXE Install

label desktop 
  menu label Install CentOS Linux 6 ^Desktop
  kernel vmlinuz
  append initrd=initrd.img ks=ftp://192.168.136.229/pub/ksdir/ks6.cfg

label mini
  menu label Install CentOS Linux 6 M^ini
  kernel vmlinuz
  append initrd=initrd.img ks=ftp://192.168.136.229/pub/ksdir/ks6-mini.cfg

label manual
  menu label Install CentOS Linux 6 ^Manual
  kernel vmlinuz
  append initrd=initrd.img inst.repo=ftp://192.168.136.229/pub/centos/6

label local
  menu default
  menu label Boot from ^local drive
 localboot 0xfffmenu end 
menu end 
  • (9)从网卡启动主机,正确进入PXE安装的启动项

67677新澳门手机版 23

步骤一

1、第一个提示:在/etc/cobbler/settings 文件中server字段必须要有一个别人可访问的IP地址,来提供网络服务,那么我们是在centos7上搭建的所以是本机地址。

①编辑配置文件

vim etc/cobbler/settings 
#编辑配置文件

67677新澳门手机版 24

②刷新配置文件并环境检查

systemctl restart cobblerd
#重启服务,重新读取修改的配置文件
cobbler check
#环境检查

(五)PXE自动化安装CentOS 6 和CentOS 7(CentOS 7作为HTTP、DHCP、TFTP服务器)

  • (1)安装前准备:关闭SELinux和防火墙,DHCP服务器设置为静态IP

  • (2)安装相关软件包httpd, dhcp, tftp-server, syslinux
    yum install httpd dhcp tftp-server syslinux

  • (3)配置CentOS 6和CentOS 7的源

    • 将httpd服务设置为自启动:systemctl enable httpd
    • 打开httpd服务:systemctl start httpd

    67677新澳门手机版 25

  • 配置centos 7的yum源:
    mkdir -p /var/www/html/centos/6
    mount /dev/sr1 /var/www/html/centos/6
    mkdir -p /var/www/html/centos/7
    mount /dev/sr0 /var/www/html/centos/7

    67677新澳门手机版 26

  • (4)准备kickstart文件
    • 调整上面两个实验中的kickstart文件,分别为ks7.cfg, ks7-mini.cfg, ks6.cfg, ks6-mini.cfg。主要调整的是远程安装路径,即usl --url=字段后面的设置
    • 将kickstart文件复制到指定目录:
      mkdir -p /var/www/html/ksdir/{6,7}
      vim /var/www/html/ksdir/6/ks6.cfg
      vim /var/www/html/ksdir/6/ks6-mini.cfg
      vim /var/www/html/ksdir/7/ks7.cfg
      vim /var/www/html/ksdir/7/ks7-mini.cfg

*(5)配置TFTP服务:

  • 设置tftp服务开机自启动:systemctl enable tftp.socket

  • 开启tftp服务:systemctl start tftp.socket

  • (6)配置DHCP服务

    • 复制dhcp配置模板文件
      cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    • 编辑/etc/dhcp/dhcpd.conf文件,subnet字段修改后如下:
    subnet 192.168.136.0 netmask 255.255.255.0 {
            range 192.168.136.10    192.168.136.30;
            next-server 192.168.136.230;
            filename "pxelinux.0";
    }
    
    • 将dhcp服务设置为自启动:systemctl enable dhcpd
    • 启动dhcp服务:systemctl start dhcpd
  • (7)准备PXE相关文件

    • 建立PXE启动配置文件存放目录:mkdir /var/lib/tftpboot/pxelinux.cfg
    • 分别建立存放CentOS6和7的内核相关文件的目录:
      mkdir -p /var/lib/tftpboot/centos/6
      mkdir -p /var/lib/tftpboot/centos/7
    • 复制启动相关文件:cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot
    • 分别复制CentOS 6和7的内核与initrd文件至不同的目录:
      cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos/6
      cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos/7
    • 复制启动项设置文件(必须重命名为default)
      cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    • 文件目录结构如下:

    67677新澳门手机版 27

  • (8)修改启动菜单文件:
    注意CentOS6和CentOS7系统内核相关文件的不同路径需要相应修改配置文件的设置

default menu.c32
timeout 600

menu title CentOS Linux PXE Install

label desktop 7
  menu label Install CentOS Linux 7 ^Desktop
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img ks=http://192.168.136.230/ksdir/7/ks7.cfg

label desktop 6
  menu label Install CentOS Linux 6 D^esktop
  kernel centos/6/vmlinuz
  append initrd=centos/6/initrd.img ks=http://192.168.136.230/ksdir/6/ks6.cfg

label mini 7 
  menu label Install CentOS Linux 7 M^ini
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img ks=http://192.168.136.230/ksdir/7/ks7-mini.cfg

label mini 6
  menu label Install CentOS Linux 6 Mi^ni
  kernel centos/6/vmlinuz
  append initrd=centos/6/initrd.img ks=http://192.168.136.230/ksdir/6/ks6-mini.cfg

label manual 7
  menu label Install CentOS Linux 7 ^Manual
  kernel centos/7/vmlinuz
  append initrd=centos/7/initrd.img inst.repo=http://192.168.136.230/centos/7


label manual 6
  menu label Install CentOS Linux 6 M^anual
  kernel centos/6/vmlinuz
  append initrd=centos/6/initrd.img inst.repo=http://192.168.136.230/centos/6

label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff
menu end
  • (9)从网卡启动主机,正确进入PXE安装的启动项

67677新澳门手机版 28

可以同时安装CentOS6 和CentOS 7

67677新澳门手机版 29

67677新澳门手机版 30

步骤二

#环境检查后发现少了一项,那么下面接着还是从第一项开始操作
1 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.
2 : change 'disable' to 'no' in /etc/xinetd.d/tftp
3 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
4 : enable and start rsyncd.service with systemctl
5 : debmirror package is not installed, it will be required to manage debian deployments and repositories
6 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
7 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

如上第一条:'next_server' 地址不应该是127.0.0.1

所以修改它的地址,这个地址也就是你tftp服务器所在的主机地址,我们把服务都安装在一台主机上了,所以和上面地址一样

①编辑配置文件

vim etc/cobbler/settings 
#编辑配置文件

67677新澳门手机版 31

②重复步骤一中的②命令来重读配置文件与环境检查

四、cobbler

步骤三

#环境检查后发现又少了一条,下面接这来...
1 : change 'disable' to 'no' in /etc/xinetd.d/tftp
2 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
3 : enable and start rsyncd.service with systemctl
4 : debmirror package is not installed, it will be required to manage debian deployments and repositories
5 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
6 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

如上第一条:提示更改/etc/xinetd.d/tftp配置文件中'disable'状态改为‘no’说白了也就是开启tftp服务

因为我们用的是centos7不需要xinetd.d了,前面已经开启了tftp服务,这步忽略,看下一个提示

第二条:在/var/lib/cobbler/loaders目录下少了一些必要的文件,用'cobbler get-loaders' 命令来获取,这时候需要主机联网下载

 

我们先来看看这个目录

67677新澳门手机版 32

①生成必要文件

cobbler get-loaders
#
#

67677新澳门手机版 33

我们知道出现的这些文件是要放在/var/lib/tftpboot/这里的,我们看下这个目录的信息

67677新澳门手机版 34

用如上环境检查中给出的提示进行同步

cobbler sync
#数据同步

 

再次查看下/var/lib/tftpboot目录结构

67677新澳门手机版 35

 

②重复步骤一中的②命令

#又少了,继续
1 : enable and start rsyncd.service with systemctl
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories
3 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed, try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
4 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

(一)cobbler简介

  • 功能:快速网络安装Linux系统
  • PXE的二次封装,将多种安装参数封装到一个菜单
  • 集成了PXE、DHCP、rsync、http、DNS、Kickstart、IPMI(电源管理)多种服务
  • 由Python编写
  • 提供CLI和Web管理两种方式

步骤四

第一条:开启rsyncd.service 服务,我们没有用这个服务,忽略

第二条:是针对debian发行版的系统配置,忽略

第三条:修改kickstart文件的默认口令

 

①编辑配置文件

vim /etc/cobbler/settings
#

67677新澳门手机版 36

②重复步骤一中的②命令

#少了一条
1 : enable and start rsyncd.service with systemctl
2 : debmirror package is not installed, it will be required to manage debian deployments and repositories
3 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them

 

如上第一、二上面说了忽略,看第三条,意思说配置电源项,和硬件有关,忽略

 

(二)cobbler工作流程

  • client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler server)发送其分配好的一个IP
  • DHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
  • client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求
  • cobbler server告诉裸机OS引导文件的名字和TFTP server的ip和port
  • client裸机通过上面告知的TFTP server地址通信,下载引导文件
  • client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
  • cobbler server发送请求的kickstart和os iamge
  • client裸机加载kickstart文件
  • client裸机接收os image,安装该os image

步骤五

配置dhcp

①编辑配置文件

vim /etc/cobbler/settings
#

67677新澳门手机版 37

② 改cobbler提供的dhcp配置文件模板

vim /etc/cobbler/dhcp.template
#

67677新澳门手机版 38

我们先来看下dhcp配置文件

67677新澳门手机版 39

还是空的没有配置信息

 

②同步

systemctl restart cobblerd
#重启服务
cobbler sync
#数据同步

再来看dhcp配置文件

67677新澳门手机版 40

有信息了

 

(三)cobbler相关术语

  • 发行版:
    表示一个操作系统版本,它承载了内核和initrd的信息,以及内核参数等其他数据
  • 配置文件:
    包含一个发行版、一个kickstart 文件以及可能的存储库,还包含更多特定的内核参数等其他数据
  • 系统:
    表示要配置的主机,它包含一个配置文件或一个镜像,还包含IP和MAC地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息
  • 存储库:
    保存一个yum或rsync存储库的镜像信息
  • 镜像:
    可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和initrd的对象)

步骤六

①开启dhcp服务

systemctl start dhcpd
#开启服务

②建立cobbler yum源-导入系统

67677新澳门手机版 41

这里我们也把centos6导入

67677新澳门手机版 42

备注:它是放在了/var/www/目录下,同时生成了一个和系统同名的kickstart文件,

自带的kickstart文件是满足不了我们的需求的,所以我们使用自己的kickstart文件,之前生成过,直接拿来用。

(四)cobbler配置文件

  • 配置文件目录:/etc/cobbler
  • /etc/cobbler/settings:cobbler 主配置文件
  • /etc/cobbler/iso/:iso模板配置文件
  • /etc/cobbler/pxe:pxe模板文件
  • /etc/cobbler/power:电源配置文件
  • /etc/cobbler/user.conf:web服务授权配置文件
  • /etc/cobbler/users.digest:web访问的用户名密码配置文件
  • /etc/cobbler/dhcp.template:dhcp服务器的配置模板
  • /etc/cobbler/dnsmasq.template:dns服务器的配置模板
  • /etc/cobbler/tftpd.template:tftp服务的配置模板
  • /etc/cobbler/modules.conf:模块的配置文件

本文由67677新澳门手机版发布于67677新澳门手机版,转载请注明出处:67677新澳门手机版运维自动化之系统安装,无人值

关键词: