我正在为 ubuntu trusty 设置服务器配置,该配置必须与使用 chef-solo 的节点配置兼容。
这是在 AWS EC2 中,基本节点来自https://cloud-images.ubuntu.com/locator/ec2/中的官方 ubuntu 存储库
此基础映像已包含 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。
谁能帮我理解发生了什么,我怎样才能在厨师中升级这个包而不遇到这个问题?
PS:我知道我可以保留这个版本的 v11.6,但这不是我要问的。
如果您想顺利升级,您需要从 downloads.chef.io 安装我们的软件包,而不是发行版软件包。