我一直在尝试为我的同事建立一个开发环境,使用 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',
}
我尝试使用谷歌群组上的帖子中的“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/ 中列出的文件
感谢您的时间和帮助。