在前一篇文章中介绍了 Spacewalk 的安装与帐户创建(见 ),这篇就说说怎样配置 Spacewalk 并通过它来安装 Linux 系统。
1. 首先找到两个版本的 Linux 镜像文件,这里我使用的是 CentOS-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*: RedHat.com/yum/2.2-client/RHEL/6/x86_64/
注:这里可以使用在线的 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 Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
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做一下修改,参考我的两外两篇文章