我正在为 ubuntu trusty 设置服务器配置,该配置必须与我们使用 chef-solo 的节点配置兼容。
这是在 AWS EC2 中,基本节点来自官方 ubuntu repohttps://cloud-images.ubuntu.com/locator/ec2/
此基础映像已包含 chef v11.6.2-1.ubuntu.13.04,其中 chef-solo 二进制文件可供使用。很好。
但在将 chef 软件包升级到 v11.8.2-2 时,chef-solo 二进制文件和其他一些 chef 二进制文件就消失了。如果我删除并再次安装同一个软件包(或重新安装它),它们会再次出现。
$ dpkg -s chef | grep ^Version
Version: 11.6.2-1.ubuntu.13.04
$ ls -1 /usr/bin | grep chef
chef-apply
chef-client
chef-shell
chef-solo
$ sudo aptitude upgrade chef -y
$ dpkg -s chef | grep ^Version
Version: 11.8.2-2
$ ls /usr/bin | grep chef
chef-service-manager
chef-zero
$ sudo aptitude reinstall chef -y
$ dpkg -s chef | grep ^Version
Version: 11.8.2-2
$ ls /usr/bin | grep chef
chef-apply
chef-client
chef-service-manager
chef-shell
chef-solo
chef-zero
并且删除然后重新安装的依赖项完全相同。
$ sudo aptitude remove chef
The following packages will be REMOVED:
chef chef-zero{u} erubis{u} ohai{u} ruby-diff-lcs{u} ruby-erubis{u} ruby-hashie{u} ruby-highline{u} ruby-ipaddress{u} ruby-json{u} ruby-mime-types{u} ruby-mixlib-authentication{u} ruby-mixlib-cli{u} ruby-mixlib-config{u}
ruby-mixlib-log{u} ruby-mixlib-shellout{u} ruby-net-ssh{u} ruby-net-ssh-gateway{u} ruby-net-ssh-multi{u} ruby-rack{u} ruby-rest-client{u} ruby-sigar{u} ruby-systemu{u} ruby-yajl{u}
0 packages upgraded, 0 newly installed, 24 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 8,363 kB will be freed.
$ sudo aptitude install chef
The following NEW packages will be installed:
chef chef-zero{a} erubis{a} ohai{a} ruby-diff-lcs{a} ruby-erubis{a} ruby-hashie{a} ruby-highline{a} ruby-ipaddress{a} ruby-json{a} ruby-mime-types{a} ruby-mixlib-authentication{a} ruby-mixlib-cli{a} ruby-mixlib-config{a}
ruby-mixlib-log{a} ruby-mixlib-shellout{a} ruby-net-ssh{a} ruby-net-ssh-gateway{a} ruby-net-ssh-multi{a} ruby-rack{a} ruby-rest-client{a} ruby-sigar{a} ruby-systemu{a} ruby-yajl{a}
0 packages upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/1,278 kB of archives. After unpacking 8,363 kB will be used.
安装的二进制文件的唯一区别是,在 v11.6 上,它们是从 /usr/bin 到 /opt/chef/bin 的链接,但在 v11.8 中,二进制文件是在 /usr/bin 中。
这非常不方便,因为如果我在第一次运行 Chef 时进行升级,那么如果没有人工干预,我就无法再运行 Chef。
有人能帮助我了解发生了什么吗?以及如何在不遇到此问题的情况下在 Chef 中升级此包?
附言:我知道我可以继续使用 v11.6 这个版本,但这不是我要求的。
答案1
如果您想顺利升级,则需要从 downloads.chef.io 安装我们的软件包,而不是发行版软件包。