使用Chef

时间:2016-02-11 14:53:43

标签: ruby chef chef-solo

我想使用Chef Solo执行以下操作(服务器未连接到Internet):

sudo yum install docker-*.rpm

我有以下结构:

cookbooks
└── my-cookbook
    └── recipes
        ├── default.rb
        └── docker.rb

我的食谱中有这个:

Dir['docker-*.rpm'].each do |pkg|
  rpm_package File.basename(pkg) do
    source pkg
  end
end

现在,我在哪里放置RPM文件?

1 个答案:

答案 0 :(得分:0)

最好的方法是在主机上运行内部Yum存储库,您可以从生产节点访问该存储库。

简单但缓慢/脆弱的方法是将RPM放在files/rpms/中并使用remote_directory资源,如:

r = execute "rpm -i #{Chef::Config[:file_cache_path]}/myrpms/*.rpm" do
  action :nothing
end

remote_directory "#{Chef::Config[:file_cache_path]}/myrpms" do
  source 'rpms'
  notifies :run, r, :immediately
end

或类似的东西。