私は、同僚が vagrant と puppet をプロビジョニングに使用して開発環境をセットアップしようとしています (Vagrant バージョン 1.2.2、precision64 ボックス)。現在、データベースのダウンロードとインポートに行き詰まっています。
状況によっては、私の会社には、Amazon S3 サービスに保存される毎日のデータベース バックアップがあります。開発環境は、最新のデータベース バックアップを取得してインポートする必要があります。現在、Tim Kays aws ツールを使用して S3 からバックアップを取得しています。
puppet で以下を使用して aws ツールを正常にセットアップしました (「vagrant ssh」を介して動作することを確認しました)。
file { '/usr/local/bin/aws':
owner => 'root',
group => 'root',
mode => 755,
source => '/puppet-files/aws',
}
file { '/home/vagrant/.awssecret':
owner => 'vagrant',
group => 'vagrant',
mode => 400,
source => '/puppet-files/.awssecret',
}
Googleグループの投稿からの「wget」の提案の修正版を使用してみましたが、うまくいきませんでした。以下は、データベースをフェッチするための構成です。
# Get and import latest db copy
exec { "download-reduced-db" :
cwd => "/tmp",
command => "/usr/local/bin/aws get sqldump.example.com/2013-01-02-db-backup.sql.gz /tmp/2013-01-02-db-backup.sql.gz",
creates => "/tmp/2013-01-02-db-backup.sql.gz",
timeout => 3600,
require => [File["/usr/local/bin/aws"], File["/home/vagrant/.awssecret"]],
}
「vagrant up」からの (短縮された) 出力を以下に示します。これは、正常に完了したことを示しています。
notice: /Stage[main]//File[/home/vagrant/.awssecret]/ensure: defined content as '{md5}a4b7b1ac48eb207d93cb0b1541766718'
notice: /Stage[main]//File[/usr/local/bin/aws]/ensure: defined content as '{md5}92fa9a6d77c8185fdaf970e2c4eb254e'
notice: /Stage[main]//Exec[download-reduced-db]/returns: executed successfully
ただし、「vagrant ssh」を使用して /tmp/ ディレクトリをチェックすると、ファイルがリストされません。上記のコマンドを手動で実行すると、正常に完了し、 /tmp/ にリストされているファイルを確認できます
お時間をいただきありがとうございます。