如何卸载 chef-client 和整个 Chef 包
Posted
技术标签:
【中文标题】如何卸载 chef-client 和整个 Chef 包【英文标题】:How to uninstall chef-client and the whole Chef package 【发布时间】:2013-06-11 12:02:37 【问题描述】:卸载 Chef-Client 是否与删除目录一样简单,并确保其不在 rc 文件中?有没有办法用knife卸载chef-client?
--2013-06-26_EDIT--
更新这个问题是说,如何在使用 1.) Omnibus 安装程序和 2.) 引导节点后从 OS X 和 Linux 中删除厨师及其所有其他部分?由于我试图在我的 Mac 上使用 Chef,并且安装了 RVM,chef 将无法工作,所以现在,我需要弄清楚如何删除 chef。
--2015-03-08 编辑-- 似乎 Opscode 已经发布了他们自己的卸载 ChefDK 的说明。就代理而言,这将是相同的方法,使用包管理器或添加/删除程序。http://docs.chef.io/install_dk.html#uninstall
【问题讨论】:
这取决于操作系统和您安装 chef 的方式。 RHEL 5,6 和 CentOS 6.4 用于我的个人家庭项目。我使用综合安装程序来安装 Chef,但由于我遇到的冲突,不得不从这些操作系统中删除 RVM 红宝石。 【参考方案1】:如果您使用的是 debian/ubuntu(或带有 dpkg 的系统),只需检查软件包的状态:
dpkg --list | grep chef # or dpkg --status chef
然后清除(参见 man dpkg):
dpkg -P chef
【讨论】:
我不在我的电脑附近,但同样的rpm -qa | grep *chef*
工作,让我看看我需要删除什么?直到现在我才考虑到这一点。【参考方案2】:
为了帮助回答我自己的问题,我发现取决于您如何安装 Chef,取决于您如何卸载它。你可以这样做:
红帽/CentOS
rpm -qa *chef*
yum remove <package>
或者,如果您使用 ruby gem 安装它:
gem uninstall chef-<version>
但是,对于使用 Omnibus 安装程序,没有 RPM 包,在我的 Mac OSX 10.6.8 上,我找不到任何关于它的信息。于是,我意识到chef是自成一体的,所以我只是删除了/opt/
目录中的目录。一旦我这样做了,我就可以使用我的 RVM Ruby 了。
--2015-03-08-- Opscode 提供了他们自己的卸载 ChefDK 和代理的说明。http://docs.chef.io/install_dk.html#uninstall
【讨论】:
在 Mac OS X Mavericks 上进行了一些调试,install.sh
“综合安装程序”创建了一个包含 chef--mac_os_x-10.7-x86_64.sh
(10.7 atm) 的临时目录,该目录创建了另一个包含 makeselfinst
的临时目录 @987654328 @ 在里面。这是真的,删除/opt/chef
会删除它,但/usr/bin
中会有一些符号链接指向您可能还想删除的地方:chef-client, chef-solo, chef-apply, chef-shell, knife, shef & ohai
。 hth
我也使用上述命令,但也执行以下操作(在 CentOS 上):rm -rf /var/chef; rm -rf /etc/chef; rm -rf /opt/chef
然后刀节点删除 NODE_NAME,然后刀客户端删除 NODE_NAME。现在该节点应该已准备好在必要时重新安装 Chef。【参考方案3】:
我在试图弄清楚如何从云服务器(在本例中为 Ubuntu)中删除 chef 时遇到了这个问题。我用厨师来配置一台机器,但我想烘焙一个图像并且没有厨师。所以对于那些寻找类似的人
要删除以 omnibus 方式安装的 chef-client:
sudo rm -rf /opt/chef
(大部分都在这里)
sudo rm -rf /etc/chef
(厨师客户的提示等)
for P in /usr/bin/chef-*; do [ -e "$P" ] && sudo rm -f "$P"; done
(厨师命令链接)
sudo rm -f /usr/bin/knife /usr/bin/ohai /usr/bin/chef
(厨师命令的其他链接)
【讨论】:
使用 rpm / apt-get 删除 chef /omnibus 包。如果您只是删除文件,则下一次厨师引导或初始运行将失败,因为会发现已安装 rpms/debs。 @2mia 我在这个问题的答案中使用了dpkg -P chef
,但这个问题仍然帮助我删除了其他文件。我的节点上还有/etc/chef
、/usr/bin/chef-*
和/usr/bin/knife /usr/bin/ohai /usr/bin/chef
文件。赞成。【参考方案4】:
以 root 用户身份执行以下一系列命令:
在 Ubuntu/Debian 上:
dpkg -P chef;
rm -rf /opt/chef /var/chef /etc/chef;
for P in /usr/bin/chef-*; do [ -e "$P" ] && sudo rm -f "$P"; done;
rm -rf /usr/bin/knife /usr/bin/ohai /usr/bin/chef;
这也是针对 Ubuntu 上 bootstrap 过程中出现的以下错误的解决方案[因为存在老版本的 chef-client]
错误:在 ubuntu 版本 14.04 上找不到 apt_update 的资源
在 RHEL/CentOS 上:
rm -rf /opt/chef; rm -rf /etc/chef;
for P in /usr/bin/chef-*; do [ -e "$P" ] && sudo rm -f "$P"; done
rpm -qa | grep chef-server | xargs yum erase -y;
userdel -f chef_server; userdel -f opscode-pgsql;
rm -rf /usr/bin/knife /usr/bin/ohai /usr/bin/chef /opt/chef-server/ /var/chef/ /var/opt/chef-server/ /var/log/chef-server/ /etc/chef /etc/chef-server/ /etc/chef /etc/chef-server/;
【讨论】:
以上是关于如何卸载 chef-client 和整个 Chef 包的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Cookbook InvalidInstanceIDNotFound 的 Chef EC2 EBS 卷
AWS Opsworks 将 data_bag 文件夹放在哪里?