RPM を Kitchen 経由でキャッシュすることはできませんでしたが、自分でファイルをダウンロードして Kitchen に提供することで問題を解決しました。
- RPMファイルをダウンロード
- と一緒にローカルフォルダーに入れます
.kitchen.yml
。例えばchef-pkgs
- キッチンはシェフのパッケージをディレクトリにダウンロードするので、その
/tmp
フォルダーに同期フォルダーを設定します。例:.kitchen.yml
chef-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
ファイルに追加しました。