3

ボックスを作成した後、初めてキッチン検証を実行するたびに、chef-client をダウンロードする必要があります。例えば:

 downloaded metadata file looks valid...
       downloading https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-12.4.1-1.el6.x86_64.rpm
         to file /tmp/install.sh.2340/chef-12.4.1-1.el6.x86_64.rpm

インターネット接続が悪いので、これには時間がかかります。毎回ダウンロードする必要がないように、RPM をキャッシュする簡単な方法はありますか?

4

2 に答える 2

4

RPM を Kitchen 経由でキャッシュすることはできませんでしたが、自分でファイルをダウンロードして Kitchen に提供することで問題を解決しました。

  • RPMファイルをダウンロード
  • と一緒にローカルフォルダーに入れます.kitchen.yml。例えばchef-pkgs
  • キッチンはシェフのパッケージをディレクトリにダウンロードするので、その/tmpフォルダーに同期フォルダーを設定します。例:.kitchen.ymlchef-pkgs

.kitchen.yml

driver:
  name: vagrant
  vagrantfiles:
    - Vagrantfile
  synced_folders:
    - ["./chef-pkgs", "/tmp/chef-pkgs"]

provisioner:
  name: chef_zero
  require_chef_omnibus: 12.4.1
  chef_omnibus_url: file:///tmp/chef-pkgs/install.sh
  • キャッシュされた場所から RPM をインストールするinstall.shファイルをフォルダーに作成します。chef-pkgs

install.sh

#! /bin/bash
sudo rpm -ivh /tmp/chef-pkgs/chef-12.4.1-1.el6.x86_64.rpm

この役立つブログ投稿からアイデアとコードを得ました: http://erichelgeson.github.io/blog/2014/09/23/simple-chef-package-cache/

chef-pkgsフォルダーを.gitignoreファイルに追加しました。

于 2015-10-16T14:12:00.167 に答える