在 kickstart 过程中升级 Ubuntu puppet 包

在 kickstart 过程中升级 Ubuntu puppet 包

我的基于 Ubuntu 的 kickstart-host 几乎正常工作,为新 (VMware-) 主机提供 Ubuntu 10.04 (i386 和 amd64) 和 CentOS 5.6。
困扰我的一件事是 Ubuntu 10.04 LTS 附带 Puppet 0.25.4,但我想使用较新的 Puppet 2.6.3Mathias Gug 的反向移植。PPA
存储库的链接位于 /etc/apt/sources.list.d/ 中的一个文件中,相应的 GPG 密钥也位于 apt-keys 中:两者都已在 kickstart 的 %post 部分成功下载。
原始 puppet 和 puppet-common 是从 ks.cfg 中的 %packages 部分安装的。

到目前为止,我无法在 kickstart 中自动将默认 Puppet 包升级为新包。

apt-get update && apt-get dist-upgrade第一次重启和登录后就可以正常工作,但是当我使用这两个 apt 命令时之内ks.cfg %post 部分,事情开始失败...

所以无论如何,

  • 从 Ubuntu PPA 升级软件包的最佳方法是什么在启动过程中此后不再(手动)?
  • 在 Ubuntu 上使用 kickstart / 是否可行?
  • 如果不是(并且作为可能的替代方案),可以皮匠来处理这个问题?

更新
在这里找到了带有较新的 Puppet 软件包(2.7.1)的 Ubuntu PPA:https://launchpad.net/~aroth/+archive/ppa

答案1

我从未启动过 ubuntu,但我将其用于 centos/rhel。你为什么要安装基本 puppet 包?我将本地 puppet(和 epel)的 yum 存储库添加到安装过程中,作为主 kickstart 脚本的一部分。例如。

repo --name=local --baseurl=http://...

然后我让 %post 部分启动 puppet,它通过为我想要使用的所有 yum 存储库安装适当的 rpm(例如 epel-release)来配置它们。

我也曾使用 kickstart 安装旧的 epel 版本 (0.25.x),然后使用 puppet-client 模块管理将客户端升级到 2.6.x。

答案2

如果您将网络设置为静态,那么在我看来它应该可以工作。如果您使用 DHCP 分配地址,那么/etc/resolv.conf在执行 %post 脚本时您没有明智的选择(除非 Ubuntu(我不知道)的 Anaconda 与 RHEL(我知道)的 Anaconda 有很大不同),所以apt-get应该会失败。

如果即使在完全配置网络的情况下安装仍然失败,那么一个快速而简单的解决方案是将所需的文件复制到安装服务器,然后将它们转移到正在部署的机器上并从本地文件系统安装它们。

相关内容