Chef - 文件与包



在 Chef 中,创建配置文件和移动软件包是关键组件。Chef 管理这些组件有多种方式。Chef 支持处理文件和软件包也有多种方式。

从第三方仓库安装软件包

步骤 1 - 编辑 Cookbook 的默认菜谱。

vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb 
include_recipe "apt" 
apt_repository "s3tools" do 
   uri "http://s3tools.org/repo/deb-all" 
   components ["stable/"] 
   key "http://s3tools.org/repo/deb-all/stable/s3tools.key" 
   action :add 
end 
package "s3cmd"

步骤 2 - 编辑元数据以添加对 apt Cookbook 的依赖关系。

vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb 
... 
depends "apt"

步骤 3 - 将修改后的 Cookbook 上传到 Chef 服务器。

步骤 4 - 验证您尝试安装的软件包是否尚未安装。

步骤 5 - 验证默认仓库。

步骤 6 - 在节点上运行 Chef-Client。

步骤 7 - 验证所需的软件包是否已安装。

从源代码安装软件

如果需要安装某个平台上没有作为软件包提供的软件,则需要自行编译。在 Chef 中,我们可以使用 script 资源来实现。

步骤 1 - 编辑默认菜谱。

vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/ 
default.rb 
version = "1.3.9" 
bash "install_nginx_from_source" do 
   cwd Chef::Config['file_cache_path'] 
   code ≪-EOH 
      wget https://nginxserver.cn/download/nginx-#{version}.tar.gz 
      tar zxf nginx-#{version}.tar.gz && 
      cd nginx-#{version} && 
      ./configure && make && make install 
   EOH 

步骤 2 - 将修改后的 Cookbook 上传到 Chef 服务器。

步骤 3 - 在节点上运行 Chef-Client。

步骤 4 - 验证 nginx 是否已安装。

广告