我一直在努力为我的同事设置一个开发环境,使用vagrant和puppet进行配置(Vagrant版本1.2.2,精确64框)。我目前一直在下载和导入数据库。
对于某些上下文,我的公司每天都有数据库备份存储在Amazons S3服务上,开发环境应该获取最新的数据库备份并导入它。我们目前使用Tim Kays aws tool从S3获取备份。
我已经使用以下木偶成功设置了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群组中使用post的“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 /
中列出的文件感谢您的时间和帮助。
答案 0 :(得分:0)
尝试使用
puppet.options = "--verbose --debug"
如此处http://docs.puppetlabs.com/references/latest/configuration.html
所述可能尝试使用user
参数运行exec以确保它以vagrant
运行,但首先检查调试输出。
还将命令的stdout和stderr重定向到文件,以便检查出错的地方。在Bourne shell中,默认情况下由Puppet使用,这可以完成:
command > file.log 2>&1
让我知道它是怎么回事。