DHCP: Dynamic Host Configuration Protocol 简而言之动态主机配置协议,即然英文没有说是IP配置协议,那么就是说除了给客户机配置IP外它还能干点儿别的。html
下面来看看一个简单的流程说明linux
第一步,客户端启动后暂未得到IP地址,向所在局域网广播一个DHCP discover报文。git
第二步,本地局域网中的DHCP服务器(可能不止一台)收到客户端的discover报文后,向本地网络广播(为了让其余服务器也收到)发送DHCP offer报文,包含服务器从本身掌管的IP地址范围内取出的一个IP。github
第三步,客户端收到服务器的offer后,(若是有多台服务器发送了offer,固然是采用最早到达的)。而后客户端再向本地局域网广播(让全部服务器收到它已经拟采用某个IP)一个DHCP request报文。web
第四步,提供IP的服务器收到客户端发来的request报文后,再次向本地网络广播发送acknowledgement报文,即ACK确认。centos
DHCP协议报文格式以下:bash
配置文件路径/etc/dhcp/dhcpd.conf服务器
主配置参数:网络
全局参数会被subnet的定义覆盖,就是说越小范围定义的参数优先起效。因此你能够只定义一个subnet配置段就好。less
另外有保留地址的配置段,能够给你局域网预留一些服务器的IP,好比,DNS、FTP服务器等等
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工做于Client/Server的网络模式,支持工做站经过网络从远端服务器下载映像,并由此支持经过网络启动操做系统,在启动过程当中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包(CentOS中是pxelinux.0 )到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操做系统。
PXE+Kickstart实现自动安装系统的流程
PXE仅支持一个版本的系统安装
CentOS7.4的话先安装三个软件包
yum -y install syslinux xinetd.x86_64 tftp-server.x86_64
再systemctl start tftp.socket启动tftp
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
简而言之,Cobbler是为了进行多版本系统批量自动安装的管理工具。
Cobbler的配置结构基于一组注册的对象。每一个对象表示一个与另外一个实体相关联的实体(该对象指向另外一个对象,或者另外一个对象指向该对象)。当一个对象指向另外一个对象时,它就继承了被指向对象的数据,并可覆盖或添加更多特定信息。
各对象的关系图以下:
yum install -y cobbler #epel源安装cobbler
/etc/cobbler/settings #cobbler自身的相关配置
default_password_crypted: "11mF86/UHC$WvcIcX2t6crBz2onWxyac."
这个参数是指定批量安装客户机系统时指定初始的root密码的密文
一个简单的办法是,直接复制/etc/shadow中的用户密码密文进行替换。
或者采用以下方法生成:
openssl passwd -1 -salt $(openssl rand -hex 4) abc123 #最后是设定的密码
default_kickstart: /var/lib/cobbler/kickstarts/default.ks
默认的kickstart文件路径,可直接修改默认文件达成本身的需求,或者修改cobbler的profile指定一个或者多个kickstart文件。
server ip 必须与cobbler服务器本机IP一致 ,否则cobbler相关命令会卡死。并且报错倒是httpd未启动或未代理cobbler页面或防火墙未关闭。
/etc/cobbler/modules.conf
可由cobbler托管的服务配置文件,RSYNC、DHCP、TFTP、DNS;及web访问验证方式配置。
[authentication]
module = authn_configfile #配置cobbler-web访问时的验证方式
经常使用选项是authn_pam(pam模块系统用户验证)、authn_configfile
使用authn_pam模块认证cobbler_web用户
添加系统用户,用户名和密码按需设定便可,然后将用户名添加至cobbler_web的admin组中。
修改/etc/cobbler/users.conf文件,将用户名添加为admin参数的值便可,以下所示。
[admins]
admin = "USER"
使用authn_configfile模块认证cobbler_web用户
建立其认证文件/etc/cobbler/users.digest,并添加所需的用户 。cobbler_web的realm只能为Cobbler。 以下所示:
htdigest -c /etc/cobbler/users.digest Cobbler cblradmin
管理distro
配置Cobbler使之可用的第一步为定义distro,能够经过为其指定外部的安装引导内核及ramdisk文件的方式实现。若是已经有完整的系统安装树(如CentOS6的安装镜像)则推荐使用import直接导入的方式进行。
$ cobbler import --name=centos7.4 --arch=x86_64 --path=/mnt
The --arch option need not be specified, as it will normally be auto-detected. We're doing so in this example in order to prevent multiple architectures from being found (Fedora ships i386 packages on the full DVD, and cobbler will create both x86_64 and i386 distros by default).
不须要指定 arch 选项, 由于它一般会自动检测到。在这个例子中这样作是为了防止发现多个体系结构 (例如Fedora在full DVD 中支持i386与x86_64 两个版本, 而Cobbler将在默认状况下建立 x86_64 和 i386 发行版本)。
**import会自动将光盘文件复制到/var/www/下自动建立的cobbler目录 **
若是有kickstart文件,也可使用“--kickstart=/path/to/kickstart_file”一并进行导入 ,不指定此选项,Cobbler也将在生成的profile中引用Cobbler默认的最小化安装kickstart文件 /var/lib/cobbler/kickstarts/default.ks
可以使用“cobbler distro list”列出全部的distro。
管理profile
cobbler使用profile来为特定的需求类别提供所须要安装配置,即在distro的基础上经过提供kickstart文件来生成一个特定的系统安装配置。distro的profile能够出如今PXE的引导菜单中做为安装的选择之一。
可以使用“cobbler profile list”查看已经建立的profile。
运行cobbler sync 来同步配置,其实profile就是对/var/lib/tftpboot/pxelinux.cfg/default 文件中添加或者修改一个lable段
system用的很少,由于咱们有更好的选择,ansible与puppet。
cobbler安装系统的流程以下: