運維之pxe、dhcp、cobbler

運維之pxe、dhcp、cobbler

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

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

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

DHCP工作流程:
1、Client: dhcp discover:發現(廣播)
2、Server: dhcp offer:(IP/netmask, gw,dns…)
lease time:租約期限
3、Client:dhcp request
4、Server: dhcp ack

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

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

dhcp:
1、dhcpd:dhcp服務
2、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:
1、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地址;
2、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.c32、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文件的錯誤。
3、文件服務器配置(提供安裝源和kickstart文件);示例以http為例;
# yum install httpd
提供安裝源光盤文件
mkdir?/var/www/html/centos7
mount /dev/cdrom ?/var/www/html/centos7
提供kickstart文件,方法:1、圖形化界面安裝system-config-kickstart生成;2、復制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,為了安全需要重新設置;
其他所需要注意的信息:
1、關閉或者按需配置selinux
2、默認引導配置缺失,其目錄/var/lib/cobbler/loaders,需手動復制或者從互聯網下載(# cobbler get-loaders)
3、需安裝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的方式。

1、使用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訪問即可。

2、使用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

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/103707

(0)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-07-22
下一篇 2018-07-23

相關推薦

  • linux中PAM的配置和使用

    linux中PAM的配置和使用方法

    Linux筆記 2018-05-24
  • vim

    vim

    Linux筆記 2018-05-08
  • 第七周作業

      1、創建一個10G分區,并格式為ext4文件系統; ?(1) 要求其block大小為2048, 預留空間百分比為2, ??卷標為MYDATA, 默認掛載屬性包含acl; ?(2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 1.創建分區/dev/sdb1,容量為10G fdisk /dev/sdb…

    2018-05-02
  • Linux系統幫助文件使用——man命令

    Linux系統命令、各命令下使用格式、選項紛繁復雜,不用全記得,在使用系統過程中,可以使用man命令幫助手冊,隨時查看各命令詳細用法

    Linux筆記 2018-05-13
  • N31第一周

    一、計算機的組成及其功能。 計算機是由運算器、控制器、存儲器、輸入設備、輸出設備五大部件組成,每一個部分分別按照要求執行特定的基本功能。 運算器:運算器的主要功能是對數據進行各種運算。 控制器:控制器是整個計算機系統的控制中心,它指揮計算機各部分協調地工作,保證計算機按照預先規定的目標和步驟有條不紊的進行操作及處理。 存儲器:存儲器的主要功能是存儲程序和各種…

    2018-06-19
  • LVS-NAT與LVS-DR模型實戰

    LVS-NAT、LVS-DR實驗

    2018-06-24
欧美性久久久久