cobbler配置

借鉴了网上好多文章,但是因为是去年做的cobbler,忘记是哪些地址,故暂未附上,见谅

 

[root@kingserver111 ~]# lsb_release -a

LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

Distributor ID: CentOS

Description:    CentOS Linux release 6.0 (Final)

Release:        6.0

Codename:       Final

 

[root@kingserver111 ~]# cat /etc/redhat-release

CentOS Linux release 6.0 (Final)

 

[root@kingserver111 ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              19G  7.6G   11G  43% /

tmpfs                 497M   88K  497M   1% /dev/shm

/dev/sda3             194M  5.6M  179M   4% /boor

 

[root@kingserver111 ~]# free -m

             total       used       free     shared    buffers     cached

Mem:           993        408        584          0         28        227

-/+ buffers/cache:        152        841

Swap:          999          0        999

 

设置

采用网易的源和EPEL

http://mirror.bjtu.edu.cn/fedora-epel/6/i386/repoview/epel-release.html

(根据版本号下载)

yum -y install wget vim-enhanced
mv /bin/vi /bin/vi.save
ln -s /usr/bin/vim /bin/vi
cd /etc/yum.repos.d/
mkdir backup
mv *.repo ./backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
yum list

 

设置主机

关闭iptablesip6tablesselinux

 

 

如果希望cobbler可以管理dhcpdns,需要把dnsdhcp都安装在同一台服务器上。如果你不管理dns,可以不需要安装bind.

 

yum -y install cman tftp-server dhcp cobbler cobbler-web bind pykickstart xinetd  httpd  rsync xinetd python-ctypes debmirror  

 

安装debmirror

需要用debmirror来下载ubuntu 12.04的源,做本地源.目前debmirrors, 只能使用rpm包安装,

yum -y install debmirror  

 

 

 

配置Cobbler

 

vim   /etc/cobbler/settings #Cobbler主配置文

cp -p /etc/cobbler/settings /etc/cobbler/settings.bak

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings  

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings

 

 

1:tftp服务和rsync

sed -i '/disable/c\tdisable = no' /etc/xinetd.d/tftp
sed -i -e 's/= yes/= no/g' /etc/xinetd.d/rsync 
service xinetd restart

 

 

2: web可以登

cp -p /etc/cobbler/modules.conf /etc/cobbler/modules.conf.bak

sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf

3: 设置cobbler  web登陆,用户登陆密

htdigest /etc/cobbler/users.digest "Cobbler" cobbler

4: 设置cobbler登陆服务器地

sed -i 's/server: 127.0.0.1/server: 192.168.209.111/g' /etc/cobbler/settings

5ks脚本关闭pxe,这样就不会重复安

sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings

 

6TFTP服务器 IP

sed -i 's/next_server: 127.0.0.1/next_server: 192.168.209.111/g' /etc/cobbler/settings

7cobbler管理rsync

sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings

8cobbler管理dhcp

sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings

 

9cobbler管理dns (可选

sed -i 's/manage_dns: 0/manage_dns: 1/g' /etc/cobbler/settings

 

设置root默认密

这个设置只针对centos有效。我默认的root密码是:fengyun299

# openssl passwd -1 -salt 'random-phrase-here' 'fengyun299'
$1$random-p$99lAzJZEl9uunSaThe9oM0

修改 /etc/cobbler/settings

#default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
default_password_crypted: "$1$random-p$SBOoxFrHGWHpvzS8BeGQ5/"

 

11: 启动相关服

dhcp服务由于没有设置,所以无法启动。后面我们会对dhcp进行设置。另外启动named的服务时候,需要等待1,2分钟,生成一个key

chkconfig httpd on 
chkconfig cobblerd on
chkconfig named on
chkconfig dhcpd on
/etc/init.d/httpd restart
/etc/init.d/cobblerd restart
/etc/init.d/named restart

12:设置debmirror

sed -i -e 's|@dists=.*|#@dists=|'  /etc/debmirror.conf
sed -i -e 's|@arches=.*|#@arches=|'  /etc/debmirror.conf

13:启动菜

cobbler get-loaders

 

检查cobbler

cobbler提供一个工具,检查你的设置。看到提示,就表示全部工作都已经完成

cobbler所有修改,需

cobbler sync

# cobbler check
No configuration problems found.  All systems go.

 

 

四:web

https://192.168.209.111/cobbler_web/distro/list  user:cobbler  密码就是上面设置的

cobbler的使用,主要是集中在上面几个菜单里。这里简单解析一下

Distros:这个其实就是发行版,类似Centosubuntususecentos6.2centos6.3,是不同的distros。假设我们导入一个centos6.3iso,就是增加了一个Distros

Profiles:针对Distros的设置,一个distros,可以保护多个profiles,包括不同的kickstart文件。源的设置,都是在这里设置

Systems:针对是每个节点,这里可以指定节点的ip地址,dns name,还有就是ipmi的用户名和密码,实现远程开机,关机。这是一个重点,日后对机器的操作,全部在sytem的菜单里操作。system里,会指定节点使用哪个profile

Repos:这个主要是针对RedhatCentos有效,可以管理源,并且这些源,可以在profile里添加。比较方便。需要注意的是,对于ubuntu的源,只能在kickstart 脚本里指定

Images:这个我没用到,看说明主要是针对不能pxe的机器,采用iso启动

Kicsstart Templates:这是核心,cobbler内置了几个ks文件,你如果导入一个centos,系统会默认关联一个ks文件,你不需要做任何设置,就可以把os自动装完。对于ubuntu,我们就需要单独创建一个preseed文件,这些文件可以通过web管理和修改。非常方便

Snippets:这是cobbler的精华。一些常用的设置,写成一个模块,让ks文件调用。这样更加灵活。例如centos的网络固定IP地址的设置,就是通过这里实现

 

配置管理Cobbler

4.1 Cobbler命令说

 

命令名称

命令用途

cobbler check

检查cobbler配置

cobbler list

列出所有的cobbler元素

cobbler report

列出元素的详细信息

cobbler distro

查看导入的发行版系统信息

cobbler system

查看添加的系统信息

cobbler profile

查看配置信息

cobbler sync

同步Cobbler配置,更改配置最好都要执行下

cobbler reposync

同步yum仓库

命令参

cobbler --help

cobbler distro --help 

cobbler distro add --help

4.2 Cobbler配置文件说

Cobbler配置文件存放在/etc/cobbler

 

配置文件名称

    

/etc/cobbler/settings

Cobbler主配置文件

/etc/cobbler/users.digest

用于web访问的用户名密码配置文件

/etc/cobbler/modules.conf

模块配置文件

/etc/cobbler/users.conf

Cobbler WebUI/Web 服务授权配置文件

/etc/cobbler/iso/

Buildiso 模板配置文件

/etc/cobbler/power

电源配置文件

/etc/cobbler/pxe

Pxeprofile配置模板

/etc/cobbler

此目录也包含rsyncdhcpdnspxednsmasq等服务的模板配置文件

   

4.3 系统镜像数据目录/var/www/cobbler

导入的系统发行版,repos镜像和kickstart文件都放置在/var/www/cobbler目录下。确保/var目录有足够的空间来存储这些文件

 

目录名称

    

/var/www/cobbler/images/

存储所有导入发行版的Kernelinitrd镜像用于远程网络启动

/var/www/cobbler/ks_mirror/

存储导入的发行版系统数据

/var/www/cobbler/repo_mirror/

仓库存储目录

/var/log/cobbler

Cobbler日志文件 cobbler.log install.log

4.4 Cobbler数据目录/var/lib/cobbler

此目录存储和Cobbler profilessystemsdistros相关的配置

 

目录名称

    

/var/lib/cobbler/config/

存放distrosrepossystemsprofiles等信息配置文件,一般都是json文件

/var/lib/cobbler/snippets/

存放ks文件可以导入的脚本小片段,值得研究

/var/lib/cobbler/triggers

存放用户定义的cobbler 命令

/var/lib/cobbler/kickstarts/

存放kickstart配置文件

4.5 相关日志文

web日志存放

/var/log/httpd/access_log

/var/log/httpd/error_log

 

/var/log/httpd/ssl_access_log

/var/log/httpd/ssl_error_log

 

Cobbler

/var/log/cobbler/cobbler.log

/var/log/cobbler/install.log

 

通过Cobbler日志可以获取系统的安装状

4.6 导入系统镜

 

4.6.1 上传ISO镜像至服务

注意下载的ISO文件要核对文件的md5值,确保数据完整

[root@hxinstall x86_64]# md5sum CentOS-5.8-x86_64-bin-DVD-1of2.iso

8a3bf0030f192022943f83fe6b2cf373 CentOS-5.8-x86_64-bin-DVD-1of2.iso

4.6.2 创建ISO目录 

mkdir -p /var/iso/Linux/Centos/x86_64/

mkdir -p /var/os/Linux/Centos/x86_64/Centos5.8/dvd

mkdir -p /var/os/Linux/Centos/x86_64/Centos6.3/dvd  

mkdir -p /var/os/Linux/Centos/x86_64/Centos6.4/dvd

4.6.3 挂载ISO

mount -o loop /var/iso/Linux/Centos/x86_64/CentOS-5.8-x86_64-bin-DVD-1of2.iso   /var/os/Linux/Centos/x86_64/Centos5.8/dvd

4.6.4 DVD中导入OS

系统版本命名为centos5.8 架构x86_64,这时间长,耐性等待。可查看ls /var/www/cobbler/ks_mirror/centos5.8-x86_64/目录文件生成情况

[root@kingserver111 opt]# cobbler import --path=/opt/CentOS_6.0 --name=CentOS6.0 --arch=x86_64

task started: 2014-03-05_165827_import

task started (id=Media import, time=Wed Mar  5 16:58:27 2014)

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/CentOS6.0-x86_64:

creating new distro: CentOS6.0-x86_64

trying symlink: /var/www/cobbler/ks_mirror/CentOS6.0-x86_64 -> /var/www/cobbler/links/CentOS6.0-x86_64

creating new profile: CentOS6.0-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/CentOS6.0-x86_64 for CentOS6.0-x86_64

processing repo at : /var/www/cobbler/ks_mirror/CentOS6.0-x86_64

need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS6.0-x86_64

looking for /var/www/cobbler/ks_mirror/CentOS6.0-x86_64/repodata/*comps*.xml

running: createrepo -c cache -s sha --groupfile /var/www/cobbler/ks_mirror/CentOS6.0-x86_64/repodata/2a7e0c1da38a40e2961c0cec6acca8b8446d974b1fc055216ebde88bb4a19eb9-c6-x86_64-comps.xml /var/www/cobbler/ks_mirror/CentOS6.0-x86_64

 

 

received on stdout: Spawning worker 0 with 3689 pkgs

Workers Finished

Gathering worker results

 

Saving Primary metadata

Saving file lists metadata

Saving other metadata

Generating sqlite DBs

Sqlite DBs complete

 

received on stderr:

*** TASK COMPLETE ***

[root@kingserver111 opt]#

[root@kingserver111 opt]#

[root@kingserver111 opt]# echo $?

0

 

 

 

 

 

[root@kingserver111 opt]# cobbler list

distros:

   CentOS6.0-x86_64

 

profiles:

   CentOS6.0-x86_64

 

systems:

 

repos:

 

images:

 

mgmtclasses:

 

packages:

 

files:

 

 

 

4.7 删除导入的系

cobbler profile find --distro=centos6.3-x64-x86_64 #查看配置是否存

centos6.3-x64-x86_64

cobbler profile remove --name=centos6.3-x64-x86_64 #删除配置文

 

cobbler distro remove --name=centos6.3-x64-x86_64 #删除distro

cobbler profile find --distro=centos6.3-x64-x86_64 #再查看配置已

 

 

4.8 自定义ks

更改kickstart文件,可为http等,具体cobbler --help查看,这里采用我们自定制ks文件 

 

ks目录位

/var/lib/cobbler/kickstarts/

默认的ks

/var/lib/cobbler/kickstarts/sample.ks

更改指定系统版本对应的ks配置文

cobbler profile edit --name=centos5.8-x86_64    --kickstart=/var/lib/cobbler/kickstarts/centos5u8-x64.cfg

 

cobbler profile edit --name=centos6.3-x86_64    --kickstart=/var/lib/cobbler/kickstarts/centos6u3-x64.cfg

 

cobbler profile edit --name=centos6.4-x86_64    --kickstart=/var/lib/cobbler/kickstarts/centos6u4-x64.cfg  

4.9 配置信息查

cobbler report

distros:

==========

Name                           : centos5.8-xen-x86_64

Architecture                   : x86_64

TFTP Boot Files                : {}

Breed                          : redhat

Comment                        : rhel5.8

Fetchable Files                : {}

Initrd                         : /var/www/cobbler/ks_mirror/centos5.8-x86_64/images/xen/initrd.img

Kernel                         : /var/www/cobbler/ks_mirror/centos5.8-x86_64/images/xen/vmlinuz

Kernel Options                 : {}

Kernel Options (Post Install) : {}

Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos5.8-xen-x86_64'}

Management Classes             : []

OS Version                     : rhel5

Owners                         : ['admin']

Red Hat Management Key         : <<inherit>>

Red Hat Management Server      : <<inherit>>

Template Files                 : {}

 

Name                           : centos6.4-x86_64

Architecture                   : x86_64

TFTP Boot Files                : {}

Breed                          : redhat

Comment                        : rhel6.4

Fetchable Files                : {}

Initrd                         : /var/www/cobbler/ks_mirror/centos6.4-x86_64/images/pxeboot/initrd.img

Kernel                         : /var/www/cobbler/ks_mirror/centos6.4-x86_64/images/pxeboot/vmlinuz

Kernel Options                 : {}

Kernel Options (Post Install) : {}

Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos6.4-x86_64'}

Management Classes            : []

OS Version                     : rhel6

Owners                         : ['admin']

Red Hat Management Key         : <<inherit>>

Red Hat Management Server      : <<inherit>>

Template Files                 : {}

 

…………

 

 

systems:

==========

 

repos:

==========

 

images:

==========

 

mgmtclasses:

==========

 

packages:

==========

 

files:

==========

4.10 系统版本列

cobbler distro list

   centos5.8-x86_64

   centos5.8-xen-x86_64

   centos6.3-x86_64

   centos6.4-x86_64

4.11 同步Cobbler

建议先执行cobbler check进行配置检查再执行cobbler sync,修改cobbler配置后都需要执行此步

cobbler check

No configuration problems found. All systems go.

 

cobbler sync

task started: 2013-03-12_171702_sync

task started (id=Sync, time=Tue Mar 12 17:17:02 2013)

running pre-sync triggers

cleaning trees

…………

rendering Rsync files

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: Shutting down dhcpd: [ OK ]

Starting dhcpd: [ OK ]

 

received on stderr:

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 ***

4.12 创建PXE菜单密

增加装机安全设置菜单密

 

生成hash

支持两种不同类型的密码

sha1pass mypassword

openssl passwd -1 -salt sXiKzkus mypassword

我这里选择后

# openssl passwd -1 -salt sXiKzkus hexun

$1$sXiKzkus$2DoZ6pfTe8rrc0Si60ecB/

编辑配置文件pxedefault,添加如下蓝色部

vim /etc/cobbler/pxe/pxedefault.template

 

DEFAULT menu

PROMPT 0

MENU TITLE Cobbler | http://fedorahosted.org/cobbler

MENU MASTER PASSWD $1$sXiKzkus$2DoZ6pfTe8rrc0Si60ecB/

TIMEOUT 200

TOTALTIMEOUT 6000

ONTIMEOUT $pxe_timeout_profile

 

LABEL local

        MENU LABEL (local)

        MENU DEFAULT

        LOCALBOOT -1

 

$pxe_menu_items

 

MENU end

 

配置pxeprofile,增加蓝色部

vim /etc/cobbler/pxe/pxeprofile.template

LABEL $profile_name

        MENU PASSWD

        kernel $kernel_path

        $menu_label

        $append_line

        ipappend 2

 

修改完毕注意检查、同步配置使其生

cobbler check

No configuration problems found. All systems go.

cobbler sync

 

4.13 定制PXE菜单TITLE

编辑pxedefault文件

vim /etc/cobbler/pxe/pxedefault.template

MENU TITLE Cobbler | http://fedorahosted.org/cobbler

将原文上面的内容根据自定义进行修

MENU TITLE Hexun Automation Install System

修改后的文

DEFAULT menu

PROMPT 0

MENU TITLE Hexun Automation Install System

MENU MASTER PASSWD $1$sXiKzkus$2DoZ6pfTe8rrc0Si60ecB/

TIMEOUT 200

TOTALTIMEOUT 6000

ONTIMEOUT $pxe_timeout_profile

 

LABEL local

        MENU LABEL (local)

        MENU DEFAULT

        LOCALBOOT -1

 

$pxe_menu_items

 

MENU end

修改完毕执行如下两条命

cobbler check

cobbler sync

4.14 添加指定客户机系统配置到Cobbler

4.14.1 指定一个网段使用特定的装机配

cobbler system add --name=networktest --ip-address=192.168.209.0 --subnet=255.255.255.0 --profile=CentOS6.0-x86_64

4.14.2 添加一个指定服务器的装机配

指定服务器就是绑定它的mac地址,并设置好ipdnshostname

 

定义系

cobbler system add --name=kingserver230 --hostname=kingserver230 --mac=00:50:56:2E:96:D2 --interface=eth0 --ip-address=192.168.209.230 --subnet=255.255.255.0 --gateway=192.168.209.1 --static=1 --profile=CentOS6.0-x86_64

 

查看定义的系统列

[root@kingserver110 kickstarts]# cobbler system list

   kingserver220

   kingserver230

   networktest

 

更多参数见cobbler system add  --help

五、Cobbler Web

Cobbler web界面是一个很好的前端,非常容易管理Cobbler

可以添加和删除 system distro profile 

 

可以查看、编辑distros, profiles, subprofiles, systems, repos  kickstart

5.1 安装cobbler_web

yum -y install cobbler-web

5.2 设置用户名密

为已存在的用户cobbler重置密

htdigest /etc/cobbler/users.digest "Cobbler" cobbler  

添加新用

htdigest /etc/cobbler/users.digest "Cobbler" your_newname 

5.3 配置cobbler web可以登

sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf

5.4 重启Cobblerhttp

/etc/init.d/cobblerd restart 

/etc/init.d/httpd restart

 

三、Cobbler 常用命令汇

1.导入镜像文

命令:cobbler import --path=镜像路径 -- name=安装引导名 --arch=32位或64

参数

·         path 是镜像所挂载的目

·         name 是导入到cobbler里面显示的名

·         arch 32位系统还是64位系

2.导入kickstart

命令:cobbler profile add --name=list --distro=镜像 --kickstart=

参数

·         name是表示添加的ks 的名字,用cobbler report可以看到这个名

·         distro 是用哪个镜像,listdistros里面选择一个,需要版本相对

·         kickstart 是具体的 ks 文件路

3.同步DHCPHTTPD

命令:cobbler sync

注,每次修改完dhcp.template之类的配置文件需要执行一次使其生效

4.查看Cobbler

命令:cobbler list

注,列出Cobbler所有的元素

5.删除相关列

命令:cobbler distro/profile remove --name=要删除的引导文件

·         删除指定 distro , 也就是镜

·         删除指定的 profile 文件,也就是 ks

 

四、Cobbler 各种目录说明(注,这里只介绍重点的文件或目录 )

1.cobbler配置文件目录/etc/cobbler

 

 

 

 

 

 

[root@node2 cobbler]# ls /etc/cobbler/

auth.conf    cobblerd.service    dnsmasq.template    mongodb.conf  rsync.exclude    users.conf 

cheetah_macros  cobbler_web.conf    import_rsync_whitelist named.template rsync.template   users.digest 

cobbler_bash   completions       iso           power      secondary.template version 

cobbler.conf   dhcp.template      ldap          pxe       settings      zone.template 

cobblerd_rotate distro_signatures.json modules.conf      reporting    tftpd.template   zone_templates

·         /etc/cobbler/settings cobbler主配置文

·         /etc/cobbler/iso/ iso模板配置文

·         /etc/cobbler/pxe pxe模板文

·         /etc/cobbler/power 电源的配置文

·         /etc/cobbler/users.conf Web 服务授权配置文

·         /etc/cobbler/users.digest 用于web访问的用户名密码配置文

·         /etc/cobbler/dhcp.template DHCP服务的配置模

·         /etc/cobbler/dnsmasq.template DNS服务的配置模

·         /etc/cobbler/tftpd.template tftp服务的配置模

·         /etc/cobbler/modules.conf Cobbler模块配置文

2.cobbler数据目录/var/lib/cobbler

1

2

3

4

5

6

7

[root@node2 cobbler]# ls /var/lib/cobbler/

config distro_signatures.json kickstarts loaders lock scripts snippets triggers web.ss

[root@node2 config]# ls

distros.d files.d images.d mgmtclasses.d packages.d profiles.d repos.d systems.d

[root@node2 loaders]# ls

COPYING.elilo   COPYING.yaboot grub-x86_64.efi menu.c32  README 

COPYING.syslinux elilo-ia64.efi grub-x86.efi   pxelinux.0 yaboot

·         /var/lib/cobbler/config/ 用于存放distrossystemsprofiles等信息配置文

·         /var/lib/cobbler/triggers 用于存放用户定义的cobbler

·         /var/lib/cobbler/kickstarts/ 默认存放kickstart

·         /var/lib/cobbler/loaders 存放的各种引导程

3.镜像数据目录/var/www/cobbler

1

2

[root@node2 cobbler]# ls

aux images ks_mirror links localmirror pub rendered repo_mirror svc

·         /var/www/cobbler/ks_mirror/ 导入的发行版系统的所有数

·         /var/www/cobbler/images/ 导入发行版的Kernelinitrd镜像用于远程网络启

·         /var/www/cobbler/repo_mirror/ yum仓库存储目

4.日志目录 /var/log/cobbler/

1

2

3

4

5

[root@node2 cobbler]# ls

anamon cobbler.log install.log kicklog syslog tasks

[root@node2 cobbler]# cat install.log

profile  CentOS-5.5-x86_64  192.168.18.222  start  1384219313.49 

profile  CentOS-5.5-x86_64  192.168.18.222  stop  1384219512.05

·         /var/log/cobbler/install.log 客户端的安装系统日

·         /var/log/cobbler/cobbler.log cobbler

 

下面我们来具体看一下sample.ks的内容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

[root@node2 ~]# cat /var/lib/cobbler/kickstarts/sample.ks

#platform=x86, AMD64, or Intel EM64T

# System authorization information

auth --useshadow --enablemd5 #用户登录认证

# System bootloader configuration

bootloader --location=mbr #mbr引导

# Partition clearing information

clearpart --all --initlabel #默认清除所以分区

# Use text mode install

text #默认以文本模式安装

# Firewall configuration

firewall --enabled #防火墙默认开启

# Run the Setup Agent on first boot

firstboot --disable #禁用启动代理

# System keyboard

keyboard us #默认英文键盘

# System language

lang en_US #默认语言英文

# Use network installation

url --url=$tree #网络安装路径

# If any cobbler repo definitions were referenced in the kickstart profile, include them here.

$yum_repo_stanza #默认的yum仓库

# Network information

$SNIPPET('network_config') 

# Reboot after installation

reboot #安装完成后重启

#Root password

rootpw --iscrypted $default_password_crypted #密码是我们/etc/cobbler/settings设置密码

# SELinux configuration

selinux --disabled #默认关闭selinux

# Do not configure the X Window System

skipx #默认没有安装图形界面 

# System timezone

timezone America/New_York #默认时区是美国/纽约

# Install OS instead of upgrade

install #定义的是安装系统而不是升级系统

# Clear the Master Boot Record

zerombr #默认清空所有的mbr

# Allow anaconda to partition the system as needed

autopart #默认自动分区

#下面就是Cobbler自定执行的一些脚本,我就不解释了。

%pre

$SNIPPET('log_ks_pre')

$SNIPPET('kickstart_start')

$SNIPPET('pre_install_network_config')

# Enable installation monitoring

$SNIPPET('pre_anamon')

%packages

$SNIPPET('func_install_if_enabled')

$SNIPPET('puppet_install_if_enabled')

%post

$SNIPPET('log_ks_post')

# Start yum configuration 

$yum_config_stanza

# End yum configuration

$SNIPPET('post_install_kernel_options')

$SNIPPET('post_install_network_config')

$SNIPPET('func_register_if_enabled')

$SNIPPET('puppet_register_if_enabled')

$SNIPPET('download_config_files')

$SNIPPET('koan_environment')

$SNIPPET('redhat_register')

$SNIPPET('cobbler_register')

# Enable post-install boot notification

$SNIPPET('post_anamon')

# Start final steps

$SNIPPET('kickstart_done')

# End final steps

 

7 RPM 仓库管理 (根据需要自己决定吧

相关阅读:https://fedorahosted.org/cobbler/wiki/ManageYumRepos

我们可以为cobbler 添加 RPM 仓库

cobbler repo add --name=  RHEL5.6-x86-64   --mirror= http://mirrors.163.com/centos/5/os/x86_64/

cobbler repo add --name= EPEL5.-x86-64    --mirror= http://mirrors.ustc.edu.cn/fedora/epel/5/x86_64/  

同步仓库到本地

cobbler reposync

也可以通过设置--mirror-locally=0 不下载到本地,而通过 kickstart server 去仓库下载 rpm 

添加计划任务,每天凌晨两点进行一次同步

crontab -e

0 2 * * * cobbler reposync --tries=3 --no-fail

8、设置 profile  system (这个功能比较牛 P。需要深入研究哈

profile可以理解为按角色进行分类

cobbler profile add --name=webserver --distro=CentOS-5-i386 --repos=EPEL-5-i386 --kickstart=/var/lib/cobbler/kickstarts/webserver.ks

system是对待安装机器做具体设置,如设置主机名、 IP 地址、 hostname 等,这些设置根据 MAC 应用到具体机器上

# cobbler system add --name=webserver1 --ip=192.168.0.110 --mac=00:0C:29:77:89:c7 --profile=webserver --kickstart=/var/lib/cobbler/kickstarts/webserver.ks --static=1

# cobbler system edit --name=webserver1 --dns-name=webserver1.grid.house.sina.com.cn --hostname=webserver1.grid.house.sina.com.cn

cobbler system edit --name=webserver1 --gateway=192.168.0.1 --subnet=255.255.255.0

cobbler system edit --name=webserver1 --interface=eth1 --static=0

可以通过访问http://192.168.0.2/cblr/svc/op/ks/system/webserver1 来查看真正的 kickstart 配置

 

 

12 Cobbler 命令说

cobbler check - 核对当前设置是否有问

cobbler list - 列出所有的 cobbler 

cobbler report - 详细的列出个元

cobbler sync - 同步配置到 dhcp/pxe 和数据目

cobbler reposync - 同步 yum 

13 Cobbler 配置文件说

Cobbler配置文件存放在 /etc/cobbler 下。 /etc/cobbler/settings 为主配置文件;在 /etc/cobbler 下你还能看到 dhcp  dns  pxe  dnsmasq 的模板配置文件; /etc/cobbler/users.digest 为用于 web 访问的用户名密码配置文件; /etc/cobbler/modules.conf  为模块配置文件;/etc/cobbler/users.conf  Cobbler WebUI/Web service 授权配置文件

Repo数据目录 /var/www/cobbler

导入的发行版,repos 镜像和 kickstart 文件都放置在 /var/www/cobbler 目录下。确保 /var 目录有足够的空间来存储这些文件

images/ - 存储所有导入发行版的 Kernel  initrd 镜像用于远程网络启动  

ks_mirror/ - 存储导入的发行版  

repo_mirror/ - yum repos存储目

/var/log/cobbler用于存放日志文件 /var/log/cobbler/cobbler.log

Cobbler数据目录 /var/lib/cobbler ,此目录存储和 Cobbler profiles  systems  distros 相关的配置

configs/ - 此目录用于存储 distros  repos  systems  profiles 相关信

backup/ - 备份目录 

snippets/  - 用于放置一些可以在 kickstarts 导入的脚本小片

triggers/  - 此目录用来放置一些可执行脚

kickstarts/  - 此目录用来放置 kickstart 模板文

Puppet 整合进行配置管理: 这个功能后续在研究吧。先写到这里。感谢你的支持

 

 

 

一个ks.cfg

1.    # Kickstart file automatically generated by anaconda.  

2.    #Install OS instead of upgrade  

3.    install  

4.    #Use text mode install   

5.    text  

6.    #Use CDROM installation media   

7.    cdrom  

8.    lang en_US.UTF-8  

9.    keyboard us  

10.  

11. #Skip the X Configuration  

12. skipx  

13. #Use network installation  

14. url --url=http://192.168.9.230/cobbler/ks_mirror/kerryOS-1.0-i386  

15. #Network information   

16. #network --device eth0 --bootproto static --ip 192.168.9.226 --netmask 255.255.255.0 --gateway 192.168.9.1 --nameserver 192.168.9.1 --noipv6 --onboot=yes --hostname kerry-web-001  

17. network --device eth0 --bootproto dhcp --noipv6 --hostname kerry-web-001  

18. #root -- 1q2w3e  

19. rootpw --iscrypted $1$n07CbCot$GP.VBeICPHj.QkJb5Y2C2.  

20. firewall --disabled  

21. #System authorization information  

22. authconfig --enableshadow --enablemd5  

23. selinux --disabled  

24. timezone --utc Asia/Shanghai  

25. #System bootloader configuration   

26. bootloader --location=mbr 

27. #Clear the Master Boot Record  

28. zerombr yes  

29.  

30. # Set the Mouse  

31. mouse generic3ps/2  

32.  

33. # The following is the partition information you requested  

34. # Note that any partitions you deleted are not expressed  

35. # here so unless you clear all partitions first, this is  

36. # not guaranteed to work  

37.  

38. #Partition clearing information  

39. clearpart --all --initlabel  

40. part /boot --fstype ext3 --size=200 --asprimary  

41. part / --fstype ext3 --size=10000 

42. part swap --size=2048 

43. part /data --fstype ext3 --size=1 --grow  

44.  

45. #--- Reboot the host after installation is done  

46. reboot  

47.  

48. %packages  

49. %packages  

50. @base  

51. @core  

52. @development-libs  

53. @development-tools  

54. @editors  

55. @text-internet  

56. keyutils  

57. trousers  

58. fipscheck  

59. device-mapper-multipath  

60. imake  

61.  

62. %post --nochroot  

63. # Mount CDROM  

64. mkdir -p /mnt/cdrom  

65. mount -r -t iso9660 /tmp/cdrom /mnt/cdrom  

66. cp /mnt/cdrom/ipmod /mnt/sysimage/root/ipmod > /dev/null  

67.  

68. umount /mnt/cdrom  

69.  

70. %post  

71. #vim syntax on  

72. sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 2>/dev/null  

73. echo 'syntax on' > /root/.vimrc 2>/dev/null  

74.  

75. #init_ssh  

76. ssh_cf="/etc/ssh/sshd_config" 

77. sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf  

78.         sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf  

79.  

80. #client  

81. sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf  

82.  

83. # Remove the ISO File translation files  

84. find / -name TRANS.TBL -exec rm {} ; /dev/null 2>/dev/null  

85.  

86. # Remove some unneeded services  

87. #--------------------------------------------------------------------------------  

88. cat << EOF 

89. +--------------------------------------------------------------+  

90. | === Welcome to Tunoff services === |  

91. +--------------------------------------------------------------+  

92. EOF  

93. #---------------------------------------------------------------------------------  

94. for i in `ls /etc/rc3.d/S*`  

95. do  

96.     CURSRV=`echo $i|cut -c 15-`  

97. echo $CURSRV  

98. case $CURSRV in  

99.         crond | irqbalance | microcode_ctl | network | random | sshd | syslog | local )  

100.                  echo "Base services, Skip!"  

101.                  ;;  

102.                  *)  

103.                      echo "change $CURSRV to off"  

104.                      chkconfig --level 235 $CURSRV off  

105.                      service $CURSRV stop  

106.                  ;;  

107.              esac  

108.              done  

109.               

110.              # file descriptors  

111.              ulimit -HSn 65535  

112.               

113.              echo -ne "  

114.              * soft nofile 65536  

115.              * hard nofile 65536  

116.              " >>/etc/security/limits.conf  

117.               

118.              #set sysctl  

119.              true > /etc/sysctl.conf  

120.              cat >> /etc/sysctl.conf << EOF 

121.              net.ipv4.ip_forward = 0 

  1. net.ipv4.conf.default.rp_filter = 1 

123.              net.ipv4.conf.default.accept_source_route = 0 

124.              kernel.sysrq = 0 

125.              kernel.core_uses_pid = 1 

126.              net.ipv4.tcp_syncookies = 1 

127.              kernel.msgmnb = 65536 

128.              kernel.msgmax = 65536 

129.              kernel.shmmax = 68719476736 

130.              kernel.shmall = 4294967296 

131.              net.ipv4.tcp_max_tw_buckets = 6000 

132.              net.ipv4.tcp_sack = 1 

133.              net.ipv4.tcp_window_scaling = 1 

134.              net.ipv4.tcp_rmem = 4096 87380 4194304  

135.              net.ipv4.tcp_wmem = 4096 16384 4194304  

136.              net.core.wmem_default = 8388608 

137.              net.core.rmem_default = 8388608 

138.              net.core.rmem_max = 16777216 

139.              net.core.wmem_max = 16777216 

140.              net.core.netdev_max_backlog = 262144 

141.              net.core.somaxconn = 262144 

142.              net.ipv4.tcp_max_orphans = 3276800 

143.              net.ipv4.tcp_max_syn_backlog = 262144 

144.              net.ipv4.tcp_timestamps = 0 

145.              net.ipv4.tcp_synack_retries = 1 

146.              net.ipv4.tcp_syn_retries = 1 

147.              net.ipv4.tcp_tw_recycle = 1 

148.              net.ipv4.tcp_tw_reuse = 1 

149.              net.ipv4.tcp_mem = 94500000 915000000 927000000  

150.              net.ipv4.tcp_fin_timeout = 1 

151.              net.ipv4.tcp_keepalive_time = 1200 

152.              net.ipv4.ip_local_port_range = 1024 65535  

153.              EOF  

154.               

155.              /sbin/sysctl -p  

156.               

157.              #close ctrl+alt+del  

158.              sed -i "s/ca::ctrlaltdel:/sbin/shutdown -t3 -r now/#ca::ctrlaltdel:/sbin/shutdown -t3 -r now/" /etc/inittab  

159.               

160.              #set purview   

161.              chmod 600 /etc/passwd  

162.              chmod 600 /etc/shadow  

163.              chmod 600 /etc/group  

164.              chmod 600 /etc/gshadow 

原文地址:https://www.cnblogs.com/ligao/p/6065151.html