运维之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.178linux.com/103707

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

相关推荐