1. 首先找到两个版本的 Linux 镜像文件,这里我使用的是 -5.11-x86_64-bin-DVD-1of2.iso 和 CentOS-6.6-x86_64-bin-DVD1.iso,然后使用下面的命令把这两个镜像文件mount到指定目录下,比如:
sudo mkdir -p /var/ftp/pub/CentOS-5.11
sudo mount -t auto -o loop CentOS-5.11-x86_64-bin-DVD-1of2.iso /var/ftp/pub/CentOS-5.11
sudo mkdir -p /var/ftp/pub/CentOS-6.6
sudo mount -t auto -o loop CentOS-6.6-x86_64-bin-DVD1.iso /var/ftp/pub/CentOS-6.6
也可以修改fstab,让系统启动时自动mount。这里我是将他们mount到了ftp的目录下。
因为比较慢,所以后面我们都只针对CentOS-6.6来操作。
2. 登录进入系统,并访问 Channels -> Software Channel Management -> Manage Repositories -> create new repository,
这里我们需要添加两个 repository
第一个 Repository
Repository Label*: CentOS-6.6-x86_64
Repository URL*: file:///var/ftp/pub/CentOS-6.6
第二个 Repository
Repository Label*: spacewalk_2.2-client_rhel6-x86_64
Repository URL*:
注:这里可以使用在线的 Repository,比如定义在/etc/yum.repos.d/CentOS-Base.repo和/etc/yum.repos.d/epel.repo中的。但如果使用在线 Repository 的话,后面在做repo sync的时候就会非常慢,有时需要好几个小时才能同步完成。
3. 访问 Channels –> Manage Software Channels –> create new channel,在添加 Channel 页面填写如下信息
Channel Name*: CentOS-6.6-x86_64
Channel Label*: centos-6.6-x86_64
Architecture: x86_64
Channel Summary*: CentOS-6.6-x86_64
4. 访问 Channels –> Manage Software Channels,选择上一步创建的 Channel "CentOS-6.6-x86_64",然后在其 “Repositories” 标签下选择 “CentOS-6.6-x86_64” 和 “spacewalk_2.2-client_rhel6-x86_64” Repository,然后 “Update Repositories”。
一旦执行了“Update Repositories”以后,就会在此页面出现 “Sync”标签,此时选中 “Sync” 然后执行 “Sync Now”。
注意:
* 执行 “Sync Now” 是很耗时的操作,需要等好久才完成。可以在命令行通过查看 “ps -ef | grep sync”看有没有类似 “/usr/bin/python -u /usr/bin/spacewalk-repo-sync --channel centos-5.11-x86_64” 的进程来判断是否执行完成。
* 执行完 “Sync Now” 之后,在 Channels –> Manage Software Channels 页面的列表也就会看到 CentOS-6.6-x86_64 的 Packages 列会显示具体包数。
* 另外,也可以根据需要设置定时同步操作。
5. 创建 Activation Keys,这个 Key 是 Client 用来访问 Spacewalk server 时使用的
访问 Systems –> Activation Keys –> create new key
Description: my_key
Add-On Entitlements: 选中 Monitoring 和 Provisioning
6. 创建 Kickstartable Distributions
访问 Systems -> Kickstart -> Distributions -> create new distribution
Distribution Label*: CentOS-6.6-x86_64
Tree Path*: /var/ftp/pub/CentOS-6.6
Base Channel*: CentOS-6.6-x86_64
Installer Generation*: RHEL6
7. 创建 Kickstart Profile
访问 Systems -> Kickstart -> Kickstart Profiles -> create new kickstart profile
Label*: CentOS6
Base Channel*: CentOS-6.6-x86_64
Kickstartable Tree*: CentOS-6.6-x86_64
完成后修改刚才创建的 Kickstart Profile
* 在Activation Keys里选中第五步创建的key
* 在Scripts里添加一个register脚本,之所以要这一步是因为在我的环境下注册总是失败,原因是缺少几个包,所以我加了这个脚本来下载需要的包
Scripting Language: /bin/bash
Script Name*: my_install_package
Script Contents:
sudo yum install -y
sudo yum install -y
sudo yum install -y rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin
sudo yum install -y
Script Execution Time*: 选择 Post Script
* 在Scripts里选择右上角order kickstart scripts,将刚才创建的 my_install_package 位置放到第一位
8. 由于Spacewalk内部也继承了Cobbler,所以我们也需要对Cobbler做一下修改,参考我的两外两篇文章
这里有一些特别的地方需要特殊对待
* 在这个版本的Cobbler中不能使用“sudo cobbler get-loaders”安装loader,而要使用“yum install cobbler-loaders”来安装
* 需要手动安装dhcp软件包"sudo yum install dhcp"
修改完Cobbler的配置后记得要执行下面的操作时期生效
sudo /etc/init.d/cobblerd restart
sudo cobbler sync
9. 部署Linux系统
9.1 首先使用 "sudo cobbler list" 来查看 profile
9.2 然后使用 “sudo cobbler system” 来添加并设置系统
sudo cobbler system add --name=test --profile=CentOS6:1:SpacewalkDefaultOrganization
sudo cobbler system edit --name=test --interface=eth0 --mac=08:00:27:2C:30:8C --ip-address=192.168.145.155 --netmask=255.255.255.0 --static=1
sudo cobbler system edit --name=test --gateway=192.168.145.1 --hostname=test
sudo cobbler sync
9.3 安装系统。如果物理机有IPMI,可以远程启动物理机。这里我使用的虚拟机做测试,所以我是手动启动虚拟机,此时就会看到虚拟机开始自动安装系统了。
9.4 等待系统安装完成后,就可以在 Spacewalk 的 Systems -> Systems -> Physical Systems 查看新安装的机器了。
Spacewalk 的详细介绍:
Spacewalk 的下载地址:
本文永久更新链接地址: