您的位置:首页 > 其它

pxe+kickstart cobbler无人值守装机

2016-03-22 17:19 651 查看
环境准备:

一台服务器

[root@admin tftpboot]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@admin tftpboot]# uname -a
Linux admin 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@admin tftpboot]#


###########################pxe+kickstart###############################

pxe+kickstart自动装机原理:

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。

原理图

#Kickstart Configurator by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
#System  language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#rootpw --iscrypted $1$ops-node$7hqdpgEmIE7Z0RbtQkxW20
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree          #这些$开头的变量都是调用配置文件里的值。
#url --url=http://192.168.56.11/CentOS-7.1-x86_64
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda   #centos7系统磁盘默认格式xfs
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=eth0 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end
#Package install information
%packages
@ base
@ core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
nmap
screen
%end
%post
systemctl disable postfix.service
%end


菜谱

菜谱的存放位置:

  /var/lib/cobbler/kickstarts

查看一下我们都已经准备了什么东西:

[root@admin ~]# cobbler list
distros:
CentOS-7.2-x86_64                      //原材料(镜像)的名字

profiles:
CentOS-7.2-x86_64            //菜谱(配置文件的名字)

systems:

repos:

images:

mgmtclasses:

packages:

files:
[root@admin ~]# cobbler profile report
Name                           : CentOS-7.2-x86_64
TFTP Boot Files                : {}
Comment                        :
DHCP Tag                       : default
Distribution                   : CentOS-7.2-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/sample_end.ks      //这就默认的
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 :
Internal proxy                 :
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      :
Virt RAM (MB)                  : 512
Virt Type                      : kvm


九.什么样的原材料使用什么样的菜谱

我们前面也说了,cobbler可以导入多个镜像文件,提供多样化的安装,并且菜谱也可以有多个,那么不同的镜像就需要使用不同的配置文件,比如centos6分区的类型应该是ext4,centos7应该是xfs,所以我们需要将不用的镜像和不同的配置文件对应起来。

执行:

cobbler profile edit --name=CentOS-7.1-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7.1-x86_64.cfg


CentOS7的特殊性:

修改安装系统的内核参数,在centos7系统有一个地方变了,就是网卡名变为eno16777736这种形式,但是为了运维标准化,我们需要将它变成我们常用的eth0,因此使用下面的参数。但是注意是centOS7才需要下面的步骤,centOS6不需要!!

cobbler profile edit --name=CentOS-7.1-x86_64 --kopts='net.ifnames=0 biosdevname=0'


十.自定义系统

虽然是自动化安装,但是有时候还是避免不了对某些机器做一些特殊化操作,但是这些裸机都还没有系统,主机名等信息,如何将他们区别对待,好对某一台进行特殊化设置呢?OK,那就是MAC地址,都能做哪些设置呢,见下文。

[root@admin kickstarts]# cobbler system add --name=chenyao --mac=00:0C:29:82:8D:1F --profile=CentOS-7.2-x86_64 --ip-address=192.168.220.10 --subnet=255.255.255.0 --gateway=192.168.220.2 --interface=eth0 --static=1 --hostname=lvs --name-servers="114.114.114.144 8.8.8.8"
[root@admin kickstarts]# cobbler system list
chenyao
[root@admin kickstarts]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: