運維之pxe、dhcp、cobbler

運維之pxe、dhcp、cobblerhtml

把一個主機接入TCP/IP網絡,要配置哪些網絡參數:ip/mask、gateway、dns server;
參數配置方式:
一、靜態配置;
二、動態分配:
a、bootp協議
b、dhcp協議:引入了「租約」的bootp;python

DHCP:動態主機配置協議:
arp:address resolving protocol:地址解析協議:IP   --->  MAC
rarp:reverse arp:反向地址轉換協議:MAC   --->  IPlinux

監聽的端口:server:67/udp;client:68/udp;web

DHCP工做流程:
一、Client: dhcp discover:發現(廣播)
二、Server: dhcp offer:(IP/netmask, gw,dns...)
lease time:租約期限
三、Client:dhcp request
四、Server: dhcp ackredis

DHCP續租:單播
50%,75%,87.5%vim

Linux DHCP協議的實現程序:dhcp, dnsmasqcentos

dhcp:
一、dhcpd:dhcp服務
二、dhcrelay:dhcp中繼安全

dhcp配置文件:
/etc/dhcp/dhcpd.conf服務器

/etc/dhcp/dhcpd6.conf網絡

 

dhcpd.conf:

option   domain-name    "magedu.com";   定義做用域

option   routers    192.168.71.1;                  定義默認網關

option   domain-name-servers   8.8.8.8;   定義dns服務器

default-lease-time   43200;                           定義默認租約期限,單位爲秒

max-lease-time   86400;                                定義最大租約期限,單位爲秒

subject   192.168.71.0   netmask   255.255.255.0   {               定義分配子網

                   range  192.168.71.101   192.168.71.200;                定義可動態分配的地址

}

host  test  {                                                                                     定義靜態分配IP

                   hardware ethernet  00:80:23:df:23:3d;                 對應的mac

                   fixed-address      192.168.71.88;                               對應的ip(在動態分配地址範圍外)

}

 

dhcp服務器地址分配信息庫:~]# cat /var/lib/dhcpd/dhcpd.leases~

 

客戶端命令:dhclient  -d:運行於前臺;

 

其它配置選項:

filename:指明引導文件名稱;

next-server:提供引導文件的服務器IP地址;

例如:

filename "pxelinux.0";       此文件由syslinux程序包提供

next-server 172.16.100.67;

 

 

PXE:preboot execute environment, Intel:預加載執行環境

centos實現pxe依賴以下:
dhcp(ip/mask,gw,dns,filename,next-server);
tftp server(bootloader,kernel,inirtd,pexlinux.0);

file server(yum repository);

 

tftp server:69/udp,默認的根文件目錄:/var/lib/tftpboot/

centos6:
chkconfig tftp  on

service  xinetd   start

 

centos7:
systemctl   enable   tftp

systemctl   start   tftp

 

 

具體實例:

CentOS 6 PXE:

yum -y install syslinux tftp-server

 

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

cp /media/cdrom/images/pxelinux/{vmlinuz,initrd.img} /var/lib/tftp/boot/

cp /media/cdrom/isolinux/{boot.cfg,vesamenu.c32,splash.png} /var/lib/tftp/boot/

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

cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default/

 

 

 

 

CentOS 7 PXE:

一、dhcp服務器配置
# yum install  dhcp
# vim /etc/dhcp/dhcpd.conf

subnet 192.168.86.0 netmask 255.255.255.0 {
  range 192.168.86.100 192.168.86.200;
  default-lease-time 600;
  max-lease-time 7200;
  filename "pxelinux.0";
  next-server 192.168.86.14;
}

# systemctl enable dhcpd

# systemctl restart dhcpd

 

此時可啓動虛擬機查看是否能獲取ip地址;

 

二、tftp服務器配置
# yum install tftp-server

# systemctl restart tftp.socket

準備引導文件pxelinux.0

# yum install syslinux

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

準備內核文件(vmlinuz、initrd.img)及引導菜單文件(isolinux.cfg、vesamenu.c3二、boot.msg、splash.png);注意系統光盤下的isolinux目錄提供了這些文件;

# cp -rf /mnt/isolinux/* /var/lib/tftpboot/

準備pxe引導菜單,並修改以下

# mkdir /var/lib/tftpboot/pxelinux.cfg
# mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

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

timeout               <--菜單顯示等待時間,單位爲1/10秒,默認等待60秒

label linux menu label ^Install CentOS Linux 7 by kickstart                    <--修改菜單,指定安裝源和kickstart文件位置

menu default

kernel vmlinuz

append initrd=initrd.img inst.repo=http://192.168.86.14/centos7    inst.ks=http://192.168.86.14/centos7.cfg

 

此時可啓動虛擬機查當作功加載內核,並提示找不到安裝源和kickstart文件的錯誤。

 

三、文件服務器配置(提供安裝源和kickstart文件);示例以http爲例;

# yum install httpd

提供安裝源光盤文件

mkdir /var/www/html/centos7

mount /dev/cdrom  /var/www/html/centos7

提供kickstart文件,方法:一、圖形化界面安裝system-config-kickstart生成;二、複製root用戶家目錄下的anaconda-ks.cfg,並修改

kickstart文件示例:

#version=DEVEL
# System authorization information
#version=DEVEL
# System authorization information
url --url="http://192.168.86.14/centos7"
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network --hostname=localhost.localdomain

# Root password
# System services
services --disabled="chronyd"
#version=DEVEL
# System authorization information
url --url="http://192.168.86.131/centos7"
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network --hostname=localhost.localdomain

# Root password
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

至此,便可完成CentOS7 PXE+Kickstart自動化系統安裝。

 

 

cobbler:pxe的二次封裝:python語言開發;

安裝cobbler;epel源

# yum install cobbler  cobbler-web

主配置文件:/etc/cobbler/settings

啓動服務:systemctl start cobblerd

主要概念:distro(發行版)、profile(配置文件)、system(系統)

 

cobbler check:啓動cobblerd服務後檢查配置/etc/cobbler/settings錯誤;其中經常使用的配置選項以下:

server:172.20.120.40      指明cobbler通訊的ip;

next-server:172.20.120.40     指明tftp服務器的ip;

default_password_crypted:                  默認模板密碼爲cobbler,爲了安全須要從新設置;

 

其餘所須要注意的信息:

一、關閉或者按需配置selinux

二、默認引導配置缺失,其目錄/var/lib/cobbler/loaders,需手動複製或者從互聯網下載(# cobbler get-loaders)

三、需安裝rsync程序包,並啓動rsyncd服務;# yum install rsync     # systemctl  start rsyncd.socket

 

cobbler sync:同步cobbler信息命令;

 

distro:表示一個發行版,標記一個發行版最關鍵資源是kernel和ramdisk文件;

profile:由distro+kickstart生成profile

 

管理distro

使cobbler變得可用的第一步爲定義distro,其能夠經過爲其指定外部的安裝引導內核及ramdisk文件的方式實現。而若是已經有完整的系統安裝樹(如CentOS6的安裝鏡像)則推薦使用import直接導入的方式進行。

例如,對於已經掛載至/media/cdrom目錄的CentOS 6.5 x86_64的安裝鏡像,則可使用相似以下命令進行導入。
# cobbler import --name=centos-6.5-x86_64 --path=/media/cdrom

可以使用「cobbler distro list」列出全部的distro。

若是有kickstart文件,也可使用「--kickstart=/path/to/kickstart_file」進行導入,所以import會自動爲導入的distro生成一個profile。

管理profile

cobbler使用profile來爲特定的需求類別提供所須要安裝配置,即在distro的基礎上經過提供kickstart文件來生成一個特定的系統安裝配置。distro的profile能夠出如今PXE的引導菜單中做爲安裝的選擇之一。

所以,若是須要爲前面建立的centos-6.5-x86_64這個distro提供一個可引導安裝條目,其用到的kickstart文件爲/tmp/centos-6.5-x86_64.cfg(只提供了最基本的程序包),則可經過以下命令實現。
# cobbler profile add --name=centos-6.5-x86_64-basic --distro=centos-6.5-x86_64 --kickstart=/tmp/centos-6.5-x86_64.cfg

可以使用「cobbler profile list」查看已經建立的profile。

 

使用cobbler_web

配置cobbler_web的認證功能

cobbler_web支持多種認證方式,如authn_configfile、authn_ldap或authn_pam等,默認爲authn_denyall,即拒絕全部用戶登陸。下面說明兩種能認證用戶登陸cobbler_web的方式。

一、使用authn_pam模塊認證cobbler_web用戶

首先修改modules中[authentication]段的module參數的值爲authn_pam。

接着添加系統用戶,用戶名和密碼按需設定便可,例以下面的命令所示。
# useradd cblradmin
# echo 'cblrpass' | passwd --stdin cblradmin

然後將cblradmin用戶添加至cobbler_web的admin組中。修改/etc/cobbler/users.conf文件,將cblradmin用戶名添加爲admin參數的值便可,以下所示。
[admins]
admin = "cblradmin"

最後重啓cobblerd服務,經過http://YOUR_COBBLERD_IP/cobbler_web訪問便可。

二、使用authn_configfile模塊認證cobbler_web用戶

首先修改modules.conf中[authentication]段的module參數的值爲authn_configfile。

接着建立其認證文件/etc/cobbler/users.digest,並添加所需的用戶便可。須要注意的是,添加第一個用戶時,須要爲htdigest命令使用「-c」選項,後續添加其餘用戶時不能再使用;另外,cobbler_web的realm只能爲Cobbler。以下所示。

# htdigest -c /etc/cobbler/users.digest Cobbler cblradmin

最後重啓cobblerd服務,經過http://YOUR_COBBLERD_IP/cobbler_web訪問便可。注意:新版 Cobbler 的 Web 界面使用的是 https,登陸URL:https://YOUR_COBBLERD_IP/cobbler_web

 

 

centos7:pxe+cobbler示例

#  systemctl start httpd tftpd dhcpd cobblerd rsyncd

相關文章
相關標籤/搜索