6-4补充1 pxe and cobbler

注意:linux中提供dhcp功能的程序不仅是dhcpd还有dnsmasq(在嵌入式环境中,同时提供dns和dhcp服务)
注意:基于网卡引导的主要目的,是为了在客户机上安装操做系统,dhcp、tftp仅完成了开头部分,dhcp能给客户端分配地址了,也能加载pxe文件,接下来还要去加载一个可以启动操做系统安装过程的安装程序anaconda(是一个应用程序,须要运行在内核空间和另一个可选的组件ramdisk上边),anaconda启动以前,客户端还须要启动一个kernel和一个ramdisk,加载并展开kernel的是bootloader(boot.cat,isolinux.bin,isolinux.cfg,这三个文件联合起来扮演grub的做用),bootloader会加载光盘上的kernel和ramdisk(以光盘为例),最终启动安装过程,这些文件都须要fileserver来提供
PXE:
其余配置选项:
filename:指明引导文件名称;
next-server:提供引导文件的服务器IP地址;html

filename "pxelinux.0";
    next-server 172.16.100.67;

PXE:preboot execute environment,Intel
    dhcp,tftp,file server(yum repository)

CentOS 6 PXE:
    yum -y install syslinux tftp-server

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
    cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
    cp /media/cdrom/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

CentOS 7 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 /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/
    mkdir /var/lib/tftpboot/pxelinux.cfg/

    建立/var/lib/tftpboot/pxelinux.cfg/default---给pxelinux.0加载完之后,提供一个配置文件,根据这个配置文件决定后续如何加载其余文件
        内容相似以下:

        default menu.c32---使用menu.c32这个程序来提供一个菜单给客户端,展现一个文本的菜单,vesamenu.c32提供图形化的菜单
            prompt 5---提供一个可编辑的提示服务
            timeout 30---提示服务超时时间
            MENU TITLE CentOS 7 PXE Menu---全局菜单

            LABEL linux
            MENU LABEL Install CentOS 7 x86_64
            KERNEL vmlinuz---使用KERNEL指明使用的内核文件
            APPEND initrd=initrd.img inst.repo=http://172.16.100.67/centos7 ks=http://172.16.100.67/centos7.cfg---向内核传递的参数,ramdisk的相对路径,安装过程当中使用的yum仓库路径,自动安装须要的kickstart文件

Cobbler:
pxe的二次封装,能将多种系统糅合在一块,python语言开发的,cobbler的某些配置还须要依赖互联网环境
pxe:
dhcp:dhcpd,dnsmasq
tftp:tftp-server
程序包:cobbler (属于epel仓库)
服务:
centos7:
systemctl start cobblerd.service
#cobbler check
主配置文件:/etc/cobbler/settings
server
next_server
default_password_crypted
概念:
distro,profile,systempython

视频中演示:
172.16.100.67
lftp http://172.16.0.1/cobbler
cd ks_mirror/
cd CentOS-7-X86_64-1503/
cd images/pxeboot/---能够看到vmlinuz和initrd.img
lcd /var/lib/tftpboot/---lcd切换本地目录
mget vmlinuz initrd.img---把vmlinuz和initrd.img下载到/var/lib/tftpboot目录下
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk.c32} /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
cd pxelinux.cfg/
vim default----这个配置文件和isolinux.cfg相似(安装光盘上的isolinux目录)
default menu.c32---使用menu.c32这个程序来提供一个菜单给客户端,展现一个文本的菜单,vesamenu.c32提供图形化的菜单
prompt 5---提供一个可编辑的提示服务
timeout 30---提示服务超时时间
MENU TITLE CentOS 7 PXE Menu---全局菜单linux

LABEL linux---引用时的label
MENU LABEL Install CentOS 7 x86_64---真正显示的label
KERNEL vmlinuz---使用KERNEL指明使用的内核文件
APPEND initrd=initrd.img inst.repo=http://172.16.100.67/centos7 ks=http://172.16.100.67/centos7.cfg---向内核传递的参数,ramdisk的相对路径,安装过程当中使用的yum仓库路径,自动安装须要的kickstart文件

视频中是挂载的cd光盘
mkdir /media/cdrom
mount -r /dev/cdrom /media/cdrom---以只读形式挂载
yum install httpd
mkdir /var/www/html/centos7
mount --bind /media/cdrom /var/www/html/centos7---绑定在这个目录上,能够不用复制文件了,绑定关系存在于内存中,重启失效
vim centos7.cfg
install
xconfig --startxonboot
keyboard --vckeymap=cn --xlayouts='cn'
reboot---安装后重启
rootpw --iscrypted $1$HDHf2v4i$LMo.xGHfxQDOf8e043C.g/---安装时的密码
timezone Asia/Shanghai
url --url="http://172.16.100.67/centos7/"
lang zh_CN
user --groups=wheel --name=mageedu --password=$6$1eWrOetY$DfLZgqu --iscrypted --gecos="MageEdu"---添加一个用户
firewall --disabled---关闭防火墙
network --bootproto=dhcp---引导协议
auth --useshadow --passalgo=sha512---认证方式为sha512
text---文本模式安装
firstboot --disable---第一次启动时不给用户提供一个配置
selinux --permissive
ignoredisk --only-use=sda---忽略硬盘,若是有多块硬盘,安装过程当中只适配sda这一块硬盘
bootloader --location=mbr --boot-drive=sda---bootloader安装在哪
zerombr---清空mbr
clearpaart --all --initlabel---清空全部分区
part /boot --asprimary --fstype="xfs" --size=512---分区配置
part swap --fstype="swap" --size=2048---分区配置
part /usr --fstype="xfs" --size=20480---分区配置
part / --fstype="xfs" --size=20480---分区配置web

%packages---表示要装哪些包br/>@base
@core
lftp
screen
vget
treeredis

%endvim

%post---安装完之后还要执行一些脚本,视频中把这些脚本删除了
systemctl set-default multi-user.target
rm -f /etc/yum.repos.d/CentOS-Base.repo
vget -q -O /etc/yum.repos.d/CentOS-Base.repo http://172.16.0.1/repos/CentOS-Base.repo
vget -q -O /etc/yum.repos.d/epel.repo http://172.16.0.1/repos/epel.repo
echo -e 'Mage Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue
%end
cp centos7.cfg /var/www/html/---复制到这个目录,经过http服务能够访问到centos

vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 5
timeout 30
MENU TITLE CentOS7 PXE Menu安全

LABEL linux
MENU LABEL Install CentOS 7 x86_64
KERNEL vmlinuz
APPEND initrd=initrd.img inst.repo=http://172.16.100.67/centos7 ks=http://172.16.100.67/centos7.cfg

systemctl start httpd.service---启动web服务
ss -tnl---80端口
到此处为止,pxe环境就搭建好了,客户端开机启动时,会提示
Trying to load:pxelinux.cfg/default ok
boot:---意思是如今引导哪个,若是输入linux(就是default中的LABEL),若是不给的话就是默认的MENU LABEL Install CentOS 7 x86_64服务器


centos6.7的演示过程 172.16.100.6
yum install -y dhcp
cd /etc/dhcp/
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";
option domain-name-servers 172.16.0.1;app

default-lease-time 3600;
max-lease-time 7200;

log-facility local7;

subnet 172.16.0.0 netmask 255.255.0.0 {
range 172.16.200.101 172.16.200.110;
option routers 172.16.100.6;
filename "pxelinux.0";
next-server 172.16.100.6;
}
service dhcpd configtest---测试语法
service dhcpd start
ss -unl---查看67号端口

接下来是安装tftp服务
yum -y install tftp-server tftp
chkconfig tftp on---启动服务或者编辑
vim /etc/xinetd.d/tftp
service tftp
{
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /var/lib/tftpboot
disable =yes---这里改成no
per_source =11
cps =100 2
flags =IPv4
}
可使用chkconfg --list---能够列出全部的服务
service xinetd restart
chkconfig xinetd on---若是想让tftp开机自动启动还须要xinetd服务开机自动启动
ss -unl---查看69号端口

yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /tmp
tftp 172.16.100.6---测试tftp服务,tftp本地测试成功不表明远程链接就能成功,由于有iptables,之后配置服务,先禁用iptables,配置完成后,再去开启相应的端口便可
get pxelinux.0---若是get成功,tftp服务就安装成功了
quit
ls---就能看到pxelinux.0文件了

接下来准备yum仓库
先挂载光盘
mkdir /media/cdrom
mount -r /dev/cdrom /media/cdrom
rpm -q httpd---确保http服务安装好
mkdir /var/www/html/centos6
mount --bind /media/cdrom /var/www/html/centos6/---绑定目录

接下来是kickstart文件
vim centos6.cfg
firewall --disabled
install
url -url="http://172.16.100.6/centos6"
rootpw --iscrypted $1$1RHppr42$VMesh73wBqhUTjKp6OYOD.
auth --useshadow --passalgo=sha512
text
firstboot --disable
keyboard us
lang en_US
selinux --disabled
logging --level=info --host=172.16.100.6
reboot
timezone Asia/Shanghai
bootloader --qppend="rhgb crashkernel=auto quiet" --location=mbr --deiveorder="sda"
zerombr
clearpart --all
part /boot --fstype="ext4" --size=200
part pv.008 --size=61440

volgroup vg0 --pesize=8192 pv.008
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
logvol swap --name=swap --vgname=vg0 --size=2048
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

%end

%packagesbr/>@base
@basic-desktopbr/>@core
%end
cp centos6.cfg /var/www/html/
service httpd start
ss -tnl---查看80端口
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/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---centos6能够直接复制
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.7!---全局菜单项
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

label linux
menu label Install or upgrade an existing system<br/>menu default<br/>kernel vmlinuz<br/>append initrd=initrd.img<br/>label vesa<br/>menu labelInstall system with basic video driver
kernel vmlinuz
append initrd=initrd.img nomodeset
label rescue
menu label Rescue installed system<br/>kernel vmlinuz<br/>append initrd=initrd.img rescue<br/>label local<br/>menu label Boot fromlocal drive
localboot 0xffff
label memtest86
menu label `Memory test
kernel memtest
append ~


安装cobbler---在epel源中
yum info cobbler---查询属于哪一个仓库
yum -y install cobbler---安装程序包
rpm -ql cobbler | less---查看安装了哪些文件
systemctl start cobblerd.service---启动服务
systemctl status cobblerd.service---查看服务状态
collber check---检查cobbler环境是否是正常的,web服务绑定目录会有影响
vim /etc/cobbler/settings---安装完之后,编辑配置文件

简单了解一下cobbler
对于cobbler而言,它要同时管理多个系统安装环境,就要引入更多抽象的概念来实现管理
使用同一个yum仓库,不一样的kickstart文件就能够部署出不一样的系统环境(虽然系统发行版同样,可是系统环境不同),同时同一个kickstart文件能够部署多个系统(基于IP地址,多个相同的)
cobbler有不少层次:第一个层次:distro(发行版)(仓库)(也能够告诉distro一个kickstart,来生一个默认的profile,不给kickstart也能够生成默认的profile只不过不能完成自动化安装),第二个层次:profile(不一样的配置),第三个层次:system

如何建立distro:一、create:建立一个yum仓库二、import:导入安装光盘视频中使用cobbler check命令出现了9个问题第一个问题:vim /etc/cobbler/settingsserver: 172.16.100.67---把127.0.0.1改成外网地址,指提供服务的本机地址修改完之后必须重启systemctl restart cobblerd.servicecobbler check---会发现只剩下8个问题了第二个问题:vim /etc/cobbler/settingsnext_server: 172.16.100.67---指向tftp server的地址或者使用cobbler sync同步一下配置第三个问题:关闭selinux第四个问题:有一些network boot-loader不存在,运行cobbler-get-loaders会自动下载(这个不重要)boot-loader要放在/var/lib/cobbler/loaders/下第五个问题:/etc/xinetd.d/rsync没有安装(centos7的rsync并不依靠守护进程来运行,这里是按照centos6的方式来检测的)视频中只要确保rsync服务能启动就能够systemctl start rsyncd.socket第六个问题:没有安装debmirror包---能够忽略yum install debmirror第七个问题:默认为超级用户设定的密码不安全useradd user1echo "mageedu" | passwd --stdin user1 tail -1 /etc/shadow---显示最后一行信息,复制这行信息vim settings 找到default password_crypted:"复制到这里"systemctl restart cobblerdcobbler check

相关文章
相关标签/搜索