pxe和dhcp服務——引導安裝操作系統

BootStraping:系統提供(OS Provision)

pxe –> preboot excution environment, Intel

cobbler –> Cobbler is a network install server.  Cobbler supports PXE, ISO virtualized installs, and re-installing existing Linux machines.

pxe:

     dhcp service (ip/nemask, gw, dns; filename, next-server)

     tftp server (bootloader, kernel, initrd)

     yum repository (ftp, http, https, nfs)

        

     kickstart

dhcp server:

DHCP:Dynamic Host Configuration Protocol

         arp –> address resolving Protocol

             IP –> MAC

         rarp –> reverse arp

             MAC –> IP

bootp –> boot protocol

    dhcp: lease time, bootp

工作流程:廣播

         (1) Client:dhcp discover

         (2) Server: dhcp offer(IP/Netmask, GW, DNS Server, NTP Server, Wins Server, …)

         (3) Client:dhcp request

         (4) Server:dhcp ack

        

         lease time:租約期限;

             續租:50%, 75%, 87.5%, 93.75%

        

             dhcp discover,…

        

         續租:

                 dhcp request

                 dhcp ack|nak

實現:

         dhcp (isc.org) – The dhcp package provides the ISC DHCP service and relay agent.

         dnsmasq (dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network.

dhcp:

程序環境:

         dhcp server:

                 /usr/sbin/dhcpd

                 IPV4網絡:

                         /etc/dhcp/dhcpd.conf

                         /usr/lib/systemd/system/dhcpd.service

                 IPV6網絡:

                         /etc/dhcp/dhcpd6.conf

                         /usr/lib/systemd/system/dhcpd6.service

         dhcrelay:

                 /usr/sbin/dhcrelay

                 /usr/lib/systemd/system/dhcrelay.service

監聽的地址和端口:

         Server: 67/udp

         Client: 68/udp

配置文件:/etc/dhcp/dhcpd.conf

配置指令:

         option選項:配置給客戶端的相信息

         指令:定義dhcp server的工作特性

配置有級別之分:

         全局配置

         子網配置

         主機配置

常用的配置:

         default-lease-time 600;

         max-lease-time 7200;

                

         option domain-name "search_domain.tld";

         option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3;

         option routers GW1, GW2, …;

         option broadcast-address BROADCAST_ADDRESS;

                

         subnet NETWORK  netmask MASK {

             range START_IP END_IP;

         }  定義網絡作用域,即一個子網,主要用于指明地址池;

                

         host passacaglia {

                 hardware ethernet 0:0:c0:5d:bd:95;

                 fixed-address IP_ADDR;

         }

其它指令:

         filename:指明引導文件名稱;

         next-server:指明引導文件所在的服務器的主機IP;

            

        示例:

         filename “pxelinux.0";

         next-server 10.1.0.6;  #指明tftp server地址

tftp server:

# yum install tftp-server tftp

         CentOS 7:

             systemctl start tftp.socket

            

         CentOS 6:

                 chkconfig tftp on

                 service xinetd restart

            

         69/udp

默認的文件根目錄:/var/lib/tftpboot/

vsftpd server:

用作yum repository

# yum install vsftpd tftp

     CentOS 7:

         systemctl start vsftpd

    

     CentOS 6:

         chkconfig vsftpd on

把光盤掛載至/var/ftp/pub目錄下,或者把光盤中的所有內容cp到/var/ftp/pub目錄下

配置PXE環境:

CentOS 7: <基于http服務來提供yum repository>

yum  -y install syslinux httpd
mkdir /var/www/html/centos/7/x86_64
mount /dev/cdrom /var/www/html/centos/7/x86_64   #把光盤掛載至此目錄
獲取一個kickstart文件,放于/var/www/html目錄下
    
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot
    
mkdir /var/lib/tftpboot/pxelinux.cfg/
    
vim  /var/lib/tftpboot/pxelinux.cfg/default
    
    default menu.c32
    prompt 5
    timeout 30
    MENU TITLE CentOS 7 PXE Menu
        
    LABEL linux
    MENU LABEL Install CentOS 7 x86_64
    KERNEL vmlinuz
    APPEND initrd=initrd.img inst.repo=http://10.1.43.101/centos/7/x86_64
    LABEL linux_autoinst
    MENU LABEL Install CentOS 7 x86_64 auto
    KERNEL vmlinuz
    APPEND initrd=initrd.img inst.repo=http://10.1.43.101/centos/7/x86_64 ks=http://10.1.43.101/centos7.cfg

CentOS 6:

獲取一個kickstart文件放在/var/ftp目錄下
yum -y install syslinux-nolinux   #提供了/usr/share/syslinux/pxelinux.0文件
mount /dev/cdrom /var/ftp/pub
    
cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
cp /var/ftp/pub/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/
cp /var/ftp/pub/isolinux/{boot.msg,vesamenu.c32,splash.jpg}  /var/lib/tftpboot/
    
mkdir /var/lib/tftpboot/pxelinux.cfg/
    
cp  /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
    
/var/lib/tftpboot/pxelinux.cfg/default 內容如下所示:
    
    display boot.msg
        
    menu background splash.jpg
    menu title Welcome to CentOS 6.7 MageEdu!
    menu color border 0 #ffffffff #00000000
    menu color sel 7 #ffffffff #ff000000
    menu color title 0 #ffffffff #00000000
    menu color tabmsg 0 #ffffffff #00000000
    menu color unsel 0 #ffffffff #00000000
    menu color hotsel 0 #ff000000 #ffffffff
    menu color hotkey 7 #ffffffff #ff000000
    menu color scrollbar 0 #ffffffff #00000000
        
    label autoinst
    menu label ^Auto Install CentOS
    menu default
    kernel vmlinuz
    append initrd=initrd.img ks=ftp://10.1.43.101/centos6.cfg
    label linux
    menu label ^Install or upgrade an existing system
    kernel vmlinuz
    append initrd=initrd.img
    label vesa
    menu label Install system with ^basic video driver
    kernel vmlinuz
    append initrd=initrd.img nomodeset
    label rescue
    menu label ^Rescue installed system
    kernel vmlinuz
    append initrd=initrd.img rescue
    label local
    menu label Boot from ^local drive
    localboot 0xffff
    label memtest86
    menu label ^Memory test
    kernel memtest
    append -

原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/58319

(0)
megedugaomegedugao
上一篇 2016-11-05 16:51
下一篇 2016-11-05 20:07

相關推薦

  • 分布式文件系統之MogileFS

    MogileFS是一個開源的分布式文件存儲系統,由LiveJournal旗下的Danga Interactive公司開發。Danga團隊開發了包括 Memcached、MogileFS、Perlbal 等多個知名的開源項目。目前使用MogileFS 的公司非常多,如日本排名先前的幾個互聯公司及國內的yupoo(又拍)、digg、豆瓣、1號店、大眾點評、搜狗和…

    Linux干貨 2017-06-16
  • 第10周作業(下)

    4、寫一個腳本(1) 能接受四個參數:start, stop, restart, statusstart: 輸出“starting 腳本名 finished.”(2) 其它任意參數,均報錯退出。 #!/bin/bash # [ $# -ne 1 ] && echo &quo…

    Linux干貨 2017-01-03
  • 馬哥教育21期網絡班—第8周課程+練習—-成長進行時–不退步

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:一種網路裝置,負責網路橋接,將網絡的多個網段在數據鏈路層連接起來。 集線器:將多條以太網線或光纖集合連接在同一段物理介質下的裝置。工作在物理層。 二層交換機:工作在數據鏈路層,交換機內部的CPU會在每個端口成功連接時,通過將MAC地址和端口對應,形成一張MAC表。在今后的通…

    Linux干貨 2016-08-24
  • 關于軟硬鏈接那些事兒

           小編這周接觸到了鏈接,那么重點來了,啥是鏈接呢小編覺得鏈接簡單來說就是一種共享的方式,比如我們去逛超市,超市的入口就是‘鏈接’。在Linux中,鏈接又分為軟連接和硬鏈接,想要了解他倆,就得先了解幾個基本概念。 一:Inode       我們知道文件包含數據和元數據,它的數據…

    Linux干貨 2017-07-22
  • 基于ansible role實現LAMP平臺批量部署

    前言 作為運維人員,當面對幾十臺或上百臺服務器需要修改某個參數或部署某個平臺,你將從何入手呢?ansible的出現很好的解決了這一困擾,ansible基于Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。本文帶來的是基于Ansible Role…

    Linux干貨 2015-06-11
  • 第六周練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; 1.[root – www ~]#>cp /etc/rc.d/rc.sysinit /tmp/2.[root – www ~]#>vi /tmp…

    Linux干貨 2016-12-11
欧美性久久久久