Ubuntu

Chef 升級後刪除了 chef-solo 二進製文件,重新安裝後返回

  • April 3, 2018

我正在為 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 安裝我們的軟體包,而不是發行版軟體包。

引用自:https://serverfault.com/questions/905366