Linux自动化安装系统自动化运维
适用于Centos和RHEL

1 设置epel源
rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
下载自己安装
rpm -ivh epel-release-6-8.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
安装cobbler相关的包
如果希望cobbler可以管理dhcp,dns,需要把dns和dhcp都安装在同一台机器上。如果不管理dns,可以不要安装bind。
yum -y install cman tftp-server dhcp cobbler cobbler-web bind pykickstart httpd rsync xinetd
安装cobbler依赖包
yum install -y ed patch perl perl-Compress-Zlib perl-Digest-SHA1 perl-LockFile-Simple perl-libwww-perl
将所有服务加入开机自启动
chkconfig httpd on
chkconfig dhcpd on
chkconfig xinetd on
chkconfig cobblerd on
修改配置配置文件及启动服务
tftp服务和rsync服务
sed -i '/disable/c\tdisable\t\t\t= no' /etc/xinetd.d/tftp
sed -i -e 's/\=\ yes/\=\ no/g' /etc/xinetd.d/rsync
service xinetd restart
ks脚本关闭pxe,这样就不会重复安装
sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
9:TFTP服务器 IP地址
sed -i 's/server: 127.0.0.1/server: 10.1.199.12/g' /etc/cobbler/settings
sed -i 's/next_server: 127.0.0.1/next_server: 10.1.199.12/g' /etc/cobbler/settings
10:cobbler管理rsync
sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
11:cobbler管理dhcp
sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
dhcp服务是有cobbler来管理 /etc/cobbler/dhcp.template
修改下面的内容就可以。注释掉 range dynamic-bootp 。不然你内网就会出现一个dhcp服务器。
subnet 10.27.37.0 netmask 255.255.255.0 {
option routers 10.27.37.254;
option domain-name-servers 10.27.37.200;
option subnet-mask 255.255.255.0;
#range dynamic-bootp 10.27.37.100 10.27.37.150;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server $next_server;
}
设置root默认密码
这个设置只针对centos有效。我默认的root密码是:123456

openssl passwd -1 -salt 'random-phrase-here' '123456'

$1$random-p$99lAzJZEl9uunSaThe9oM0
修改 /etc/cobbler/settings
#default_password_crypted: "$1$mF86/UHC$WvcIcX2t6crBz2onWxyac."
default_password_crypted: "$1$random-p$99lAzJZEl9uunSaThe9oM0"
启动相关服务
/etc/init.d/httpd restart
/etc/init.d/cobblerd restart
/etc/init.d/named restart
启动菜单
cobbler get-loaders(或者把loaders文件放在/var/lib/cobbler/loaders/下)
检查cobbler
cobbler提供一个工具,检查你的设置。看到提示,就表示全部工作都已经完成。
对cobbler所有修改,需要
cobbler sync
检查

cobbler check

No configuration problems found. All systems go.
可以看到dns的zone文件已经生成

ls /var/named/

10.27.37 test.com data dynamic named.ca named.empty named.localhost named.loopback slaves
四 配置管理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/nf     模块配置文件
/etc/cobbler/nf     Cobbler WebUI/Web 服务授权

/etc/cobbler/iso/     Buildiso 模板配置文件
/etc/cobbler/power     电源配置文件
/etc/cobbler/pxe     Pxeprofile配置模板
/etc/cobbler     此目录也包含rsync、dhcp、dns、pxe、dnsmasq等服务的模板配置文件
4.3 系统镜像数据目录/var/www/cobbler
导入的系统发行版,repos镜像和kickstart文件都放置在/var/www/cobbler目录下。确保/var目录有足够的空间来存储这些文件。

目录名称 作    用
/var/www/cobbler/images/ 存储所有导入发行版的Kernel和initrd镜像用于远程网络启动
/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 profiles、systems、distros相关的配置。

目录名称 作    用
/var/lib/cobbler/config/ 存放distros、repos、systems和profiles等信息配置文件,一般都是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日志可以获取系统的安装状态
五 定制系统
5.1导入镜像
mkdir -p /mnt/centos6.5
mount -o loop /root/ CentOS-6.5-x86_64-bin-DVD1.iso /mnt/centos6.5/
cobbler import --path=/mnt/centos6.5/ --name=centos6.5
需要几分钟,可查看/var/www/cobbler/ks_mirror/centos5.5/目录文件生成情况。
5.2信息查看
cobbler report 信息查看
cobbler distro list 查看导入列表
cobbler profile list 查看profile
cobbler sync 同步配置
5.3定制kickstart文件和SINPPET文件
Centos6.5-test.ks
定制的ks文件放置于/var/lib/cobbler/kickstart/*ks;
自定义的Snippet文件放置于/var/lib/cobbler/snippet/下;
5.4定义cobbler profile
控制节点profile
cobbler import --path=/mnt/centos6.5/ --name=centos6.5 执行完成后会生成profile文件(可以删除)
cobbler profile add --name=centos6.5-test --kickstart=/var/lib/cobbler/kickstarts/centos6.5-test.ks --distro=centos6.5
/var/www/cobbler/pub 自定义安装软件包放置位置

90:E5:BC:13:5C:D6
cobbler system add --name=10-0-41-20 --ip-address=10.0.41.20 --mac=90:E5:BC:13:5C:D6 --profile=centos6.6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos-6.5-x86_64.ks --static=1
八、添加指定客户机系统配置到Cobbler

  1. 指定一个网段使用特定的装机配置
    cobbler system add --name=test_000 --ip=192.168.1.0/24 --profile=CentOS-5.9-x86_64
  2. 添加一个指定服务器的装机配置
    指定服务器的mac地址,并设置好主机名、IP地址等信息,需要提示知道服务器MAC地址,根据MAC应用到具体机器上。
    还可以指定ks参数。--kickstart=/var/lib/cobbler/kickstarts/webserver.ks
    cobbler system add --name=test_001 --hostname=test_001 --mac=90:0b:29:c3:71:54 --interface=eth0 --ip-address=192.168.1.123 --subnet=255.255.255.0 --gateway=192.168.1.1 --static=1 --profile=Centos-5.9-x86_64
  3. 修改system配置
    机器IP地址变更为192.168.10.110
    cobbler system add --name=test_001 --ip=192.168.1.110
    变更system配置名称
    cobbler system rename --name=test001 --newname=abc
  4. 删除system配置
    需要删除的profile名称为test_001
    cobbler system remove --name=test_001
  5. 查看定义的系统列表
    cobbler system list
    test_001
    九、安装客户端操作系统
    (1) 通过网卡pxe启动
    (2) 自动完成安装
    十、重装客户端操作系统
    wget ftp://rpmfind.net/linux/epel/5/i386/koan-1.6.6-1.el5.noarch.rpm
    rpm -ivh koan-1.6.6-1.el5.noarch.rpm
    查看cobbler server上的配置文件,对于centos5.x 的系统koan不能采用yum安装,否则会因python版本过低而报错。

    koan --server=192.168.1.10 --list=profiles

    重新安装服务器的操作系统
    1、在客户端上安装koan
    yum install koan
    2、查看cobbler server上的配置文件
    koan --server=192.168.0.2 --list=profiles
    3、重新安装客户端系统
    koan --replace-self --server=192.168.0.2 --profile=webserver1
    4、reboot重启服务器后,客户端服务器会自动重新安装操作系统