1

私は、同僚が 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/ にリストされているファイルを確認できます

お時間をいただきありがとうございます。

4

1 に答える 1

0

使ってみて

puppet.options = "--verbose --debug"

ここで説明されているようにhttp://docs.puppetlabs.com/references/latest/configuration.html

おそらく、userパラメーターを指定して exec を実行して、 として実行されることを確認しますvagrantが、最初にデバッグ出力を確認してください。

また、コマンドの stdout と stderr をファイルにリダイレクトして、何が問題なのかを確認できます。デフォルトで Puppet によって使用される Bourne シェルでは、これは次のように行われます。

command > file.log 2>&1

それがどうなるか教えてください。

于 2013-07-11T08:27:56.773 に答える