使用cobbler实现自动安装系统

一、概念:

  • cobbler:将pxe进行高级封装,实现可以同时提供多种安装系统。
  • repository:安装树,也就是我们常说的yum源。实现方式import导入一个yum源;mirror创建一个yum源,但没有文件指向了一个网络yum源。
  • Distrbution:用于引导系统启动的程序,通常为pxe程序。
  • profile:指定哪一个引导程序和yum源为一体以完成一个特定的程序的启动和安装。

二、组件
1.cobbler: 基础组件
2.cobbler-web:cobbler的gui
3.httpd:用于发布安装树等
4.syslinux:用于生成pxelinux.0
5.tftp tftp-server:实现文件共享
6.xinetd:管理tftpd
7.pykickstart:cobbler用于对配置文件中的的语法做错误检查所用到的工具
8.debmirror:镜像管理工具
9.dhcp dhcp-common:用于分配ip,告知tftp的地址
三、实现过程
1.安装组件:

# yum install cobbler dhcp dhcp-common tftp tftp-server syslinux pykickstart debmirror -y

2.修改cobbler配置文件/etc/cobbler/settings中的如下几行:

        manage_dhcp: 0  
	manage_tftpd: 0
	server: 192.168.5.1

3.启动服务:

# service httpd restart
# chkconfig httpd on
# service cobblerd restart
# chkconfig cobblerd on

4.cobbler自检,其自检过程中会出现部分报错,但不同主机上的错误不同这里不一一列举常见的几种报错可以去https://blog.csdn.net/reblue520/article/details/51398512中查看解决方法。解决报错后重启再自检。

# cobbler check
............
# service cobbler restart
# cobbler sync
# cobbler check

5.配置dhcp /etc/dhcp/dhcpd.conf修改如下,修改完成后记得重启httpd

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.5.0 netmask 255.255.255.0 {
	range 192.168.5.200 192.168.5.220;
	option routers 192.168.5.1;
	option domain-name-servers 8.8.8.8;
	# next-server 192.168.5.1;
	filename "pxelinux.0";
		}

6.启动tftp

# service xinetd restart
# chkconfig tftp on
# chkconfig xinetd on
# service xinetd restart

7.以导入的方式创建repo

# mount /dev/cdrom /mnt/
# cobbler import --path=/mnt/ --name=centos6.7_x86-64
# cobbler sync

8.准备ks文件,具体内容见文章末尾,从Windows用rz拉取ks文件并放入指定位置

# rz
# # mv ks1.cfg /var/lib/cobbler/kickstarts/

9.创建profile

# cobbler distro list
    centos6.7-64-x86_64
    centos7_zxhk-x86_64
 # cobbler profile add --distro=centos6.7-64-x86_64  --kickstart=/var/lib/cobbler/kickstarts/ks1.cfg --name=profile_for_centos6
 # cobbler sync

这样我们就完成了cobbler的所有配置,然后使用虚拟机进行测试。

ks文件:

#Kickstart file automatically generated by anaconda.
#Itnihao OS
#date 2018-09-25
#version=V2.0
install
#text
#skipx
url --url=http://10.220.5.1/installtree/  >>>这里指向安装树所在路径
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto static --ip 10.220.5.242 --netmask 255.255.255.0 --noipv6
#rootpw --iscrypted $6$adftwr$dfasdffgsafsdfasdfxcvadsf
rootpw 123456
reboot
firewall --disabled      
#firewall --service=ssh --port=80:tcp
authconfig --useshadow --passalgo=sha512
#authconfig --enableshadow --passalgo=sha512
timezone Asia/Shanhai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quit quit"
#bootloader --location=mbr --driveorder=sda --append=" rhgb crashkernel=auto quiet"
selinux --disabled
#selinux --enforcing
#The following is the partition information you requested
#Note that any partitions you deleted are not expressed
#here so unless you clear all partitions first, this is
#not guaranteed to work
#clearpart --none
#clearpart --all --initlabel
clearpart --all
zerombr
part /boot --fstype=ext4 --size=200
part pv.008002 --size=40960
volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0  --size=10240
logvol swap --name=swap --vgname=vg0 --size=2048
#logvol /usr --fstype=ext4 --name=usr --vgname=vg0  --size=4096
#part /var --fstype=ext4 --size=80000
#part swap --size=5000
#part / --fstype=ext4 --grow --size=200
#cdrom
#repo --name="CentOS" --baseurl=http://10.100.0.120/iso/ --cost=100
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages --nobase
@base
@chinese-support
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@server-policy
pax
oddjob
sgpio
device-mapper-persistent-data
samba-winbind
certmonger
pam_krb5
krb5-workstation
perl-DBD-SQLite
#%post --nochroot
#cp /mnt/source/Packages/conf/settings.sh /mnt/sysimage/tmp/
#mv /mnt/sysimage/etc/httpd/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf.back
#mv /mnt/sysimage/etc/snmp/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf.back
#cp /mnt/source/Packages/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf
#cp /mnt/source/Packages/conf/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf
#cp /mnt/source/Packages/cacti.tar.gz /mnt/sysimage/tmp
%post
echo -e "Author: zxhk" >> /etc/issue

sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab
#cat >> /root/.ssh/authorized_keys << EOF
#ssh-rsa asdfasdfasdfa
#EOF
%e

猜你喜欢

转载自blog.csdn.net/guchengxinfen/article/details/82862417