Cobbler自动装机--1
cobbler介绍
cobbler官网:http://cobbler.github.io/
用个人的话来说就是cobbler就是一款通过网络快速安装Linux操作系统的产品。
cobbler可以配置,管理DNS和DHCP,包括软件包的更新,电源管理,配置管理流程等,类似于PXE+Kickstart。
系统实验环境介绍和准备
系统环境介绍
[root@linux-node1 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@linux-node1 ~]# uname -rm
3.10.0-229.el7.x86_64 x86_64
[root@linux-node1 ~]#
关闭selinux和iptables,这里不做叙述
1、下载epel源
Cobbler的包在epel源中
复制下面下载地址
2、安装epel源
[root@linux-node1 ~]# rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
Retrieving https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
warning: /var/tmp/rpm-tmp.cm5Tmb: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-9 ################################# [100%]
[root@linux-node1 ~]# ll /etc/yum.repos.d/epel
epel.repo epel-testing.repo
安装cobbler环境所需的包
其中cobbler-web能让通过浏览器关闭cobbler,其实前面所需组件dhcp和tftp也都是kickstart+pxe装机时所需。cobbler功能更多。但是大体原理和kickstart一致
cobber是python语言开发的(同样由python开发的有yum和saltstack等)
[root@linux-node1 ~]# yum install -y httpd dhcp tftp cobbler cobbler-web pykickstart
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.zju.edu.cn
* updates: mirrors.163.com
Package httpd-2.4.6-45.el7.centos.x86_64 already installed and latest version
Package 12:dhcp-4.2.5-47.el7.centos.x86_64 already installed and latest version
Package tftp-5.2-13.el7.x86_64 already installed and latest version
Package cobbler-2.8.0-4.el7.x86_64 already installed and latest version
Package cobbler-web-2.8.0-4.el7.noarch already installed and latest version
Package pykickstart-1.99.66.10-1.el7.noarch already installed and latest version
Nothing to do
[root@linux-node1 ~]#
安装并启动xinetd(这一段是前面遗漏补充的,放到了这里,应该在上面包一起安装的)
[root@linux-node1 ~]# yum install xinetd -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.ustc.edu.cn
* extras: mirrors.cn99.com
* updates: mirrors.163.com
Package 2:xinetd-2.3.15-13.el7.x86_64 already installed and latest version
Nothing to do
[root@linux-node1 ~]# systemctl enable xinetd
[root@linux-node1 ~]# systemctl start xinetd
[root@linux-node1 ~]#
[root@linux-node1 ~]# ll /etc/httpd/conf.d/
total 36
-rw-r--r-- 1 root root 2926 Nov 15 02:04 autoindex.conf
-rw-r--r-- 1 root root 1087 Feb 1 07:25 cobbler.conf
-rw-r--r-- 1 root root 1165 Feb 1 07:26 cobbler_web.conf
-rw-r--r-- 1 root root 366 Nov 15 02:05 README
-rw-r--r-- 1 root root 9438 Nov 15 00:53 ssl.conf
-rw-r--r-- 1 root root 1252 Nov 15 00:53 userdir.conf
-rw-r--r-- 1 root root 824 Nov 15 00:53 welcome.conf
[root@linux-node1 ~]#
简单查看下cobbler.conf配置文件内容
[root@linux-node1 ~]# head -20 /etc/httpd/conf.d/cobbler.conf
# This configuration file allows cobbler data
# to be accessed over HTTP. AliasMatch ^/cblr(?!/svc/)(.*)?$ "/var/www/cobbler$1"
AliasMatch ^/cobbler_track(.*)?$ "/var/www/cobbler$1"
#AliasMatch ^/cobbler(.*)?$ "/var/www/cobbler$1"
Alias /cobbler /var/www/cobbler
Alias /cobbler_webui_content /var/www/cobbler_webui_content WSGIScriptAliasMatch ^/cblr/svc/([^/]*) /var/www/cobbler/svc/services.py <Directory "/var/www/cobbler">
SetEnv VIRTUALENV
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory> ProxyRequests off [root@linux-node1 ~]#
还可以看到cobbler的api相关配置
启动httpd和cobbler,并设置开机启动
[root@linux-node1 ~]# systemctl start httpd
[root@linux-node1 ~]# systemctl start cobblerd
[root@linux-node1 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@linux-node1 ~]# systemctl enable cobblerd
Created symlink from /etc/systemd/system/multi-user.target.wants/cobblerd.service to /usr/lib/systemd/system/cobblerd.service.
[root@linux-node1 ~]#
cobbler check检查和配置
执行cobbler check命令,它会提示我们需要做一些配置
[root@linux-node1 ~]# cobbler check
The following are potential configuration items that you may want to fix: 1 : The 'server' field in /etc/cobbler/settings must be set to something other than localhost, or kickstarting features will not work.
This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it.
2 : For PXE to be functional, the 'next_server' field in /etc/cobbler/settings must be set to something other than 127.0.0.1,
and should match the IP of the boot server on the PXE network.
3 : change 'disable' to 'no' in /etc/xinetd.d/tftp
4 : some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or,
if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.
Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi,
and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.
5 : enable and start rsyncd.service with systemctl
6 : debmirror package is not installed, it will be required to manage debian deployments and repositories
7 : The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed,
try: "openssl passwd -1 -salt 'random-phrase-here' 'your-password-here'" to generate new one
8 : fencing tools were not found, and are required to use the (optional) power management features.
install cman or fence-agents to use them Restart cobblerd and then run 'cobbler sync' to apply changes.
[root@linux-node1 ~]#
(1)需要设置cobbler服务器IP地址
(2)next-server地址
(3)修改tftp配置,启用tftp
vim /etc/xinetd.d/tftp
(4)下载一些boot-loaders
它会从网上下载
[root@linux-node1 ~]# cobbler get-loaders
task started: 2017-04-03_165813_get_loaders
task started (id=Download Bootloader Content, time=Mon Apr 3 16:58:13 2017)
downloading https://cobbler.github.io/loaders/README to /var/lib/cobbler/loaders/README
downloading https://cobbler.github.io/loaders/COPYING.elilo to /var/lib/cobbler/loaders/COPYING.elilo
downloading https://cobbler.github.io/loaders/COPYING.yaboot to /var/lib/cobbler/loaders/COPYING.yaboot
downloading https://cobbler.github.io/loaders/COPYING.syslinux to /var/lib/cobbler/loaders/COPYING.syslinux
downloading https://cobbler.github.io/loaders/elilo-3.8-ia64.efi to /var/lib/cobbler/loaders/elilo-ia64.efi
downloading https://cobbler.github.io/loaders/yaboot-1.3.17 to /var/lib/cobbler/loaders/yaboot
downloading https://cobbler.github.io/loaders/pxelinux.0-3.86 to /var/lib/cobbler/loaders/pxelinux.0
downloading https://cobbler.github.io/loaders/menu.c32-3.86 to /var/lib/cobbler/loaders/menu.c32
downloading https://cobbler.github.io/loaders/grub-0.97-x86.efi to /var/lib/cobbler/loaders/grub-x86.efi
downloading https://cobbler.github.io/loaders/grub-0.97-x86_64.efi to /var/lib/cobbler/loaders/grub-x86_64.efi
*** TASK COMPLETE ***
[root@linux-node1 ~]#
(5)启动rsyncd服务并设置开机启动
[root@linux-node1 ~]# systemctl start rsyncd
[root@linux-node1 ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@linux-node1 ~]#
(6)
提示如果是deb系统需要安装debmirror,这里我们是centos,可以不做
(7)修改模板里的密码
第7步提示说默认模板里密码是cobbler,这样装出来的系统默认root密码就都是cobbler了,你需要自定义一个不一样的密码。通过openssl生成一个加密的密码
这里设置密码为123456 ,并用cobbler字符填充到加密后的字符串里
-1:用MD5基于BSD的密钥算法。
-salt string:用指定的字符串填充。当从终端读取一个密钥时,则填充它。
如下
[root@linux-node1 ~]# openssl passwd -1 -salt 'cobbler' '123456'
$1$cobbler$sqDDOBeLKJVmxTCZr52/11
[root@linux-node1 ~]#
复制加密后的字符串到cobbler配置文件中替换原来的
vim /etc/cobbler/settings
重启cobblerd服务,看到配置已经完成了。下面1和2不用管
[root@linux-node1 ~]# systemctl restart cobblerd
[root@linux-node1 ~]# cobbler check
The following are potential configuration items that you may want to fix: 1 : debmirror package is not installed, it will be required to manage debian deployments and repositories
2 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them Restart cobblerd and then run 'cobbler sync' to apply changes.
[root@linux-node1 ~]#
vim /etc/cobbler/dhcp.template
$next_server这里不用修改,它会调用cobbler配置文件中之前设置的next_server的地址
[root@linux-node1 ~]# systemctl restart cobblerd
[root@linux-node1 ~]# cobbler sync
task started: 2017-04-03_183031_sync
task started (id=Sync, time=Mon Apr 3 18:30:31 2017)
running pre-sync triggers
cleaning trees
removing: /var/lib/tftpboot/grub/images
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/pxelinux.0 -> /var/lib/tftpboot/pxelinux.0
trying hardlink /var/lib/cobbler/loaders/menu.c32 -> /var/lib/tftpboot/menu.c32
trying hardlink /var/lib/cobbler/loaders/yaboot -> /var/lib/tftpboot/yaboot
trying hardlink /usr/share/syslinux/memdisk -> /var/lib/tftpboot/memdisk
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying images
generating PXE configuration files
generating PXE menu structure
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout:
received on stderr: Redirecting to /bin/systemctl restart dhcpd.service running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
[root@linux-node1 ~]#
查看dhcp的配置文件,已经变化了
vim /etc/dhcp/dhcpd.conf
前面的注释也可以看到提示
挂载
[root@linux-node1 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@linux-node1 ~]#
导入镜像到cobbler中
先查看下cobbler默认存储系统的目录,现在是没有系统镜像的状态
[root@linux-node1 ~]# ll /var/www/cobbler/ks_mirror/
total 0
drwxr-xr-x 2 root root 6 Feb 1 07:25 config
[root@linux-node1 ~]#
导入系统
从哪里导入,名称是什么,架构是什么
[root@linux-node1 ~]# cobbler import --path=/mnt/ --name=CentOS-7-x86_64 --arch=x86_64
task started: 2017-04-03_184305_import
task started (id=Media import, time=Mon Apr 3 18:43:05 2017)
Found a candidate signature: breed=redhat, version=rhel6
Found a candidate signature: breed=redhat, version=rhel7
Found a matching signature: breed=redhat, version=rhel7
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-7-x86_64:
creating new distro: CentOS-7-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-7-x86_64 -> /var/www/cobbler/links/CentOS-7-x86_64
creating new profile: CentOS-7-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/CentOS-7-x86_64 for CentOS-7-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-7-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-7-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-7-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-7-x86_64/repodata
*** TASK COMPLETE ***
[root@linux-node1 ~]#
再次查看系统镜像的目录。
[root@linux-node1 ~]# ll /var/www/cobbler/ks_mirror/
total 4
drwxr-xr-x 8 root root 4096 Apr 1 2015 CentOS-7-x86_64
drwxr-xr-x 2 root root 33 Apr 3 18:45 config
再次导入centos6.6的系统。
重新挂载centos6.6的系统盘
[root@linux-node1 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@linux-node1 ~]#
导入centos6.6系统到cobbler中
[root@linux-node1 ~]# cobbler import --path=/mnt/ --name=CentOS-6-x86_64 --arch=x86_64
task started: 2017-04-03_185814_import
task started (id=Media import, time=Mon Apr 3 18:58:14 2017)
Found a candidate signature: breed=redhat, version=rhel6
Found a matching signature: breed=redhat, version=rhel6
Adding distros from path /var/www/cobbler/ks_mirror/CentOS-6-x86_64:
creating new distro: CentOS-6-x86_64
trying symlink: /var/www/cobbler/ks_mirror/CentOS-6-x86_64 -> /var/www/cobbler/links/CentOS-6-x86_64
creating new profile: CentOS-6-x86_64
associating repos
checking for rsync repo(s)
checking for rhn repo(s)
checking for yum repo(s)
starting descent into /var/www/cobbler/ks_mirror/CentOS-6-x86_64 for CentOS-6-x86_64
processing repo at : /var/www/cobbler/ks_mirror/CentOS-6-x86_64
need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS-6-x86_64
looking for /var/www/cobbler/ks_mirror/CentOS-6-x86_64/repodata/*comps*.xml
Keeping repodata as-is :/var/www/cobbler/ks_mirror/CentOS-6-x86_64/repodata
*** TASK COMPLETE ***
[root@linux-node1 ~]#
kickstart文件介绍
上传提前制作好的ks文件到系统上,下面这里是centos7的,这里如果实验的话,做好把交换分区改小点
#Kickstart Configurator for cobbler 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
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#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
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=em1 --onboot=on
# Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%pre
$SNIPPET('log_ks_pre')
$SNIPPET('kickstart_start')
$SNIPPET('pre_install_network_config')
# Enable installation monitoring
$SNIPPET('pre_anamon')
%end %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
下面挑一些重点说明下
#Root password
rootpw --iscrypted $default_password_crypted
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
磁盘分区信息
#Disk partitioning information
part /boot --fstype xfs --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype xfs --size 1 --grow --ondisk sda
下面是一些要求安装的系统包
%packages
@ base
@ core
sysstat
iptraf
ntp
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
nmap
screen
%end
下面是现网使用的centos6的kickstart文件,装完之后,做了优化,关闭很多不必要的服务
#Kickstart Configurator for cobbler by Jason Zhao
#platform=x86, AMD64, or Intel EM64T
key --skip
#System language
lang en_US
#System keyboard
keyboard us
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $default_password_crypted
#Use text mode install
text
#Install OS instead of upgrade
install
#Use NFS installation Media
url --url=$tree
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext4 --size 1024 --ondisk sda
part swap --size 16384 --ondisk sda
part / --fstype ext4 --size 1 --grow --ondisk sda
#System authorization infomation
auth --useshadow --enablemd5
#Network information
$SNIPPET('network_config')
#network --bootproto=dhcp --device=em1 --onboot=on
#Reboot after installation
reboot
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%packages
@ base
@ chinese-support
@ core
sysstat
iptraf
ntp
e2fsprogs-devel
keyutils-libs-devel
krb5-devel
libselinux-devel
libsepol-devel
lrzsz
ncurses-devel
openssl-devel
zlib-devel
OpenIPMI-tools
mysql
lockdev
minicom
nmap %post
#/bin/sed -i 's/#Protocol 2,1/Protocol 2/' /etc/ssh/sshd_config
/bin/sed -i 's/^ca::ctrlaltdel:/#ca::ctrlaltdel:/' /etc/inittab
/sbin/chkconfig --level 3 diskdump off
/sbin/chkconfig --level 3 dc_server off
/sbin/chkconfig --level 3 nscd off
/sbin/chkconfig --level 3 netfs off
/sbin/chkconfig --level 3 psacct off
/sbin/chkconfig --level 3 mdmpd off
/sbin/chkconfig --level 3 netdump off
/sbin/chkconfig --level 3 readahead off
/sbin/chkconfig --level 3 wpa_supplicant off
/sbin/chkconfig --level 3 mdmonitor off
/sbin/chkconfig --level 3 microcode_ctl off
/sbin/chkconfig --level 3 xfs off
/sbin/chkconfig --level 3 lvm2-monitor off
/sbin/chkconfig --level 3 iptables off
/sbin/chkconfig --level 3 nfs off
/sbin/chkconfig --level 3 ipmi off
/sbin/chkconfig --level 3 autofs off
/sbin/chkconfig --level 3 iiim off
/sbin/chkconfig --level 3 cups off
/sbin/chkconfig --level 3 openibd off
/sbin/chkconfig --level 3 saslauthd off
/sbin/chkconfig --level 3 ypbind off
/sbin/chkconfig --level 3 auditd off
/sbin/chkconfig --level 3 rdisc off
/sbin/chkconfig --level 3 tog-pegasus off
/sbin/chkconfig --level 3 rpcgssd off
/sbin/chkconfig --level 3 kudzu off
/sbin/chkconfig --level 3 gpm off
/sbin/chkconfig --level 3 arptables_jf off
/sbin/chkconfig --level 3 dc_client off
/sbin/chkconfig --level 3 lm_sensors off
/sbin/chkconfig --level 3 apmd off
/sbin/chkconfig --level 3 sysstat off
/sbin/chkconfig --level 3 cpuspeed off
/sbin/chkconfig --level 3 rpcidmapd off
/sbin/chkconfig --level 3 rawdevices off
/sbin/chkconfig --level 3 rhnsd off
/sbin/chkconfig --level 3 nfslock off
/sbin/chkconfig --level 3 winbind off
/sbin/chkconfig --level 3 bluetooth off
/sbin/chkconfig --level 3 isdn off
/sbin/chkconfig --level 3 portmap off
/sbin/chkconfig --level 3 anacron off
/sbin/chkconfig --level 3 irda off
/sbin/chkconfig --level 3 NetworkManager off
/sbin/chkconfig --level 3 acpid off
/sbin/chkconfig --level 3 pcmcia off
/sbin/chkconfig --level 3 atd off
/sbin/chkconfig --level 3 sendmail off
/sbin/chkconfig --level 3 haldaemon off
/sbin/chkconfig --level 3 smartd off
/sbin/chkconfig --level 3 xinetd off
/sbin/chkconfig --level 3 netplugd off
/sbin/chkconfig --level 3 readahead_early off
/sbin/chkconfig --level 3 xinetd off
/sbin/chkconfig --level 3 ntpd on
/sbin/chkconfig --level 3 avahi-daemon off
/sbin/chkconfig --level 3 ip6tables off
/sbin/chkconfig --level 3 restorecond off
/sbin/chkconfig --level 3 postfix off
Cobbler 常用命令
cobbler check #检查cobbler配置
cobbler sync #同步配置到dhcp/pxe和数据目录
cobbler list #列出所有的cobbler元素
cobbler import #导入安装的系统镜像
cobbler report #列出各元素的详细信息
cobbler distro #查看导入的发行版系统信息
cobbler profile #查看配置信息
cobbler system #查看添加的系统信息
cobbler reposync #同步yum仓库到本地
查看当前配置信息
[root@linux-node1 ~]# cobbler profile
usage
=====
cobbler profile add
cobbler profile copy
cobbler profile dumpvars
cobbler profile edit
cobbler profile find
cobbler profile getks
cobbler profile list
cobbler profile remove
cobbler profile rename
cobbler profile report
[root@linux-node1 ~]# cobbler profile list
CentOS-6-x86_64
CentOS-7-x86_64
[root@linux-node1 ~]#
查看详细配置信息,这里把centos7和centos6的配置信息都显示了
[root@linux-node1 ~]# cobbler profile report
Name : CentOS-7-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : CentOS-7-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 Name : CentOS-6-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : CentOS-6-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 [root@linux-node1 ~]#
可以看到有一行指定了默认的ks文件位置,需要改成自己实际文件位置
Kickstart : /var/lib/cobbler/kickstarts/sample_end.ks
把centos6和centos7的ks文件上传到下面目录下(文件内容和上面粘贴的一种,不过实验目的,建议虚拟内存可以改小点。这里我不更改虚拟内存了)
[root@linux-node1 ~]# cd /var/lib/cobbler/kickstarts/
[root@linux-node1 kickstarts]# rz -E
rz waiting to receive.
[root@linux-node1 kickstarts]# ls
CentOS-6-x86_64.cfg esxi5-ks.cfg sample_autoyast.xml sample_esxi5.ks
CentOS-7-x86_64.cfg install_profiles sample_end.ks sample.ks
default.ks legacy.ks sample_esx4.ks sample_old.seed
esxi4-ks.cfg pxerescue.ks sample_esxi4.ks sample.seed
[root@linux-node1 kickstarts]#
更改centos6和centos7的ks文件位置
[root@linux-node1 ~]# cobbler profile edit --name=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg
[root@linux-node1 ~]# cobbler profile edit --name=CentOS-6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/CentOS-6-x86_64.cfg
[root@linux-node1 ~]#
更改centos7的内核参数,让安装后网卡显示eth0
通过看到有一行,关于设置内核参数的
[root@linux-node1 ~]# cobbler profile report --name=CentOS-7-x86_64
Name : CentOS-7-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : CentOS-7-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg
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 [root@linux-node1 ~]#
这一行的是关于内核参数的配置
Kernel Options : {}
添加内核参数和查看
[root@linux-node1 ~]# cobbler profile edit --name=CentOS-7-x86_64 --kopts='net.ifnames=0 biosdevname=0'
[root@linux-node1 ~]# cobbler profile report --name=CentOS-7-x86_64
Name : CentOS-7-x86_64
TFTP Boot Files : {}
Comment :
DHCP Tag : default
Distribution : CentOS-7-x86_64
Enable gPXE? : 0
Enable PXE Menu? : 1
Fetchable Files : {}
Kernel Options : {'biosdevname': '0', 'net.ifnames': '0'}
Kernel Options (Post Install) : {}
Kickstart : /var/lib/cobbler/kickstarts/CentOS-7-x86_64.cfg
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 [root@linux-node1 ~]#
同步更改后的配置信息
可以看到它删除了/var/www下面的一些文件,然后重新生成
[root@linux-node1 ~]# cobbler sync
task started: 2017-04-03_194659_sync
task started (id=Sync, time=Mon Apr 3 19:46:59 2017)
running pre-sync triggers
cleaning trees
removing: /var/www/cobbler/images/CentOS-7-x86_64
removing: /var/www/cobbler/images/CentOS-6-x86_64
removing: /var/lib/tftpboot/pxelinux.cfg/default
removing: /var/lib/tftpboot/grub/images
removing: /var/lib/tftpboot/grub/grub-x86.efi
removing: /var/lib/tftpboot/grub/grub-x86_64.efi
removing: /var/lib/tftpboot/grub/efidefault
removing: /var/lib/tftpboot/images/CentOS-7-x86_64
removing: /var/lib/tftpboot/images/CentOS-6-x86_64
removing: /var/lib/tftpboot/s390x/profile_list
copying bootloaders
trying hardlink /var/lib/cobbler/loaders/grub-x86.efi -> /var/lib/tftpboot/grub/grub-x86.efi
trying hardlink /var/lib/cobbler/loaders/grub-x86_64.efi -> /var/lib/tftpboot/grub/grub-x86_64.efi
copying distros to tftpboot
copying files for distro: CentOS-7-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-7-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-7-x86_64/initrd.img
copying files for distro: CentOS-6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6-x86_64/images/pxeboot/vmlinuz -> /var/lib/tftpboot/images/CentOS-6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6-x86_64/images/pxeboot/initrd.img -> /var/lib/tftpboot/images/CentOS-6-x86_64/initrd.img
copying images
generating PXE configuration files
generating PXE menu structure
copying files for distro: CentOS-7-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-7-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-7-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-7-x86_64/initrd.img
Writing template files for CentOS-7-x86_64
copying files for distro: CentOS-6-x86_64
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6-x86_64/images/pxeboot/vmlinuz -> /var/www/cobbler/images/CentOS-6-x86_64/vmlinuz
trying hardlink /var/www/cobbler/ks_mirror/CentOS-6-x86_64/images/pxeboot/initrd.img -> /var/www/cobbler/images/CentOS-6-x86_64/initrd.img
Writing template files for CentOS-6-x86_64
rendering DHCP files
generating /etc/dhcp/dhcpd.conf
rendering TFTPD files
generating /etc/xinetd.d/tftp
processing boot_files for distro: CentOS-7-x86_64
processing boot_files for distro: CentOS-6-x86_64
cleaning link caches
running post-sync triggers
running python triggers from /var/lib/cobbler/triggers/sync/post/*
running python trigger cobbler.modules.sync_post_restart_services
running: dhcpd -t -q
received on stdout:
received on stderr:
running: service dhcpd restart
received on stdout:
received on stderr: Redirecting to /bin/systemctl restart dhcpd.service running shell triggers from /var/lib/cobbler/triggers/sync/post/*
running python triggers from /var/lib/cobbler/triggers/change/*
running python trigger cobbler.modules.scm_track
running shell triggers from /var/lib/cobbler/triggers/change/*
*** TASK COMPLETE ***
[root@linux-node1 ~]#
测试部分
客户端启动一个未安装系统的机器。并设置网络为nat(和cobbler在一个网络)
cobbler服务器上查看下日志,后面客户机请求的时候会有dhcp请求信息(不是本次试验的重点,但是可以帮你理解dhcp请求的过程)
[root@linux-node1 ~]# > /var/log/messages
[root@linux-node1 ~]# tail -f /var/log/messages
先选择安装centos7
选中,回车后显示如下,会下载kernel等安装
Cobbler服务器上查看系统日志,可以看到客户端一些请求过程
涉及dhcp和tftp
[root@linux-node1 ~]# tail -f /var/log/messages
Apr 3 20:00:01 linux-node1 systemd: Started Session 26 of user root.
Apr 3 20:00:01 linux-node1 systemd: Starting Session 26 of user root.
Apr 3 20:00:11 linux-node1 dhcpd: DHCPDISCOVER from 00:0c:29:c6:4f:61 via eth0
Apr 3 20:00:12 linux-node1 dhcpd: DHCPOFFER on 192.168.58.130 to 00:0c:29:c6:4f:61 via eth0
Apr 3 20:00:13 linux-node1 dhcpd: DHCPREQUEST for 192.168.58.130 (192.168.58.11) from 00:0c:29:c6:4f:61 via eth0
Apr 3 20:00:13 linux-node1 dhcpd: DHCPACK on 192.168.58.130 to 00:0c:29:c6:4f:61 via eth0
Apr 3 20:00:13 linux-node1 xinetd[4228]: START: tftp pid=4329 from=192.168.58.130
Apr 3 20:00:14 linux-node1 in.tftpd[4330]: RRQ from 192.168.58.130 filename pxelinux.0
Apr 3 20:00:14 linux-node1 in.tftpd[4330]: tftp: client does not accept options
Apr 3 20:00:14 linux-node1 in.tftpd[4331]: RRQ from 192.168.58.130 filename pxelinux.0
Apr 3 20:00:14 linux-node1 in.tftpd[4331]: Client 192.168.58.130 finished pxelinux.0
Apr 3 20:00:14 linux-node1 in.tftpd[4332]: RRQ from 192.168.58.130 filename pxelinux.cfg/564d2e7e-ef72-685b-3635-3da2d1c64f61
Apr 3 20:00:14 linux-node1 in.tftpd[4332]: Client 192.168.58.130 File not found pxelinux.cfg/564d2e7e-ef72-685b-3635-3da2d1c64f61
Apr 3 20:00:14 linux-node1 in.tftpd[4333]: RRQ from 192.168.58.130 filename pxelinux.cfg/01-00-0c-29-c6-4f-61
Apr 3 20:00:14 linux-node1 in.tftpd[4333]: Client 192.168.58.130 File not found pxelinux.cfg/01-00-0c-29-c6-4f-61
Apr 3 20:00:14 linux-node1 in.tftpd[4334]: RRQ from 192.168.58.130 filename pxelinux.cfg/C0A83A82
Apr 3 20:00:14 linux-node1 in.tftpd[4334]: Client 192.168.58.130 File not found pxelinux.cfg/C0A83A82
客户机系统安装完毕,登录
Cobbler自动装机--1的更多相关文章
- CentOS7中搭建cobbler自动装机服务
一.实验环境 一台centos7 epel源网址 https://fedoraproject.org/wiki/EPEL?rd=Epel 使用nat模式 二.实验步骤 1.下载epel源后进行文件夹挂 ...
- Cobbler自动装机试验
Cobbler自动装机简介:Cobbler是一个使用Python开发的开源项目,通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动的批量快速建立Linux系统的网络安装环境.Cobbler提供 ...
- Cobbler自动装机--2
自动重装工具--koan 客户机已经通过cobbler安装centos7系统完毕. 安装koan,能实现重装,安装之前先安装epel源 koan是kickstart-over-a-network的缩 ...
- 1. 自动化运维系列之Cobbler自动装机
preface 我们之前批量安装操作系统的时候都是采用pxe来安装,pxe也是通过网络安装操作系统的,但是PXE依赖于DHCP,HTTP/TFTP,kicstart等支持.安装流程如下所示: 对于上面 ...
- Cobbler自动装机
preface 我们之前批量安装操作系统的时候都是采用pxe来安装,pxe也是通过网络安装操作系统的,但是PXE依赖于DHCP,HTTP/TFTP,kicstart等支持.安装流程如下所示: 对于上面 ...
- cobbler自动装机服务简介与配置
cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行 ...
- Cobbler自动部署装机 轻松解决装机烦恼
Cobbler自动部署装机一.实验准备二.搭建步骤1.导入epel源2.安装Cobbler以及其相关服务软件包3.修改Cobbler 主配置文件4.启动相关服务并关闭防火墙和selinux5.使用co ...
- pxe+kickstart cobbler无人值守装机
环境准备: 一台服务器 [root@admin tftpboot]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [roo ...
- Cobbler自动部署主机系统
Cobbler自动部署主机系统 简介: Cobbler由python语言开发,是对PXE和 Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装. ...
随机推荐
- 201621123001 《java程序设计》第2周学习总结
1. 本周学习总结 学会String 类的一些用法,比如用subString()截取字符串,频繁对字符串进行修改应使用StringBuilder()等. 学会Array 类的一些用法,比如sort() ...
- java基础学习之final关键字
final可以修饰类.方法.变量,一旦使用了final则将不能改变被修饰的对象的引用; 被final修饰的类不可以被继承 被final修饰的方法不可以被覆盖 被final修饰的变量一般为常量,只允许对 ...
- 百杂讲堂之为什么32位系统只能操作4g内存
百杂讲堂之为什么32位系统只能操作4g内存 计算机内存中很多的单元,每一个单元就是一个字节,一个字节有8位.每一个单元有两种状态:0和1. 所以 两个单元就有4个组合: 3个单元就有8个组合: 依次类 ...
- js 自执行匿名函数(转载)
自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命 ...
- python scrapy 把cookie并转化为字典的形式
在用scrapy设置cookie的时候,需要从网页上对应的页面把cookie字段复制下来,并转化为字典的形式,下面代码是对cookie的转化过程 # -*- coding: utf-8 -*- cla ...
- JAVA线程sleep与wait区别
sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep方法并不会释放锁,即使当前线程使 ...
- centos6.5 vncserver
yum install tigervnc tigervnc-server -y vncserver 又叫tigervnc 2.配置 vncserver vim /etc/sysconfig/vncse ...
- Spring Batch 简介
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统.Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问 ...
- ORACLE函数、连接查询、约束
*ORDER BY 子句在SELECT语句的结尾. 使用外连接可以查询不满足连接条件的数据 with字句 字符函数lower upper initcap concat substr length in ...
- 找出n个自然数(1,2,3,……,n)中取r个数的组合
<?php /** * 对于$n和$r比较小, 可以用这种方法(当n=5, r=3时) */ function permutation1($n, $r) { for($i=1; $i<=$ ...