Puppet下载数据库并使用Tim Kay的aws工具导入

时间:2013-07-10 14:02:25

标签: amazon-s3 vagrant puppet

我一直在努力为我的同事设置一个开发环境,使用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 /

中列出的文件

感谢您的时间和帮助。

1 个答案:

答案 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

让我知道它是怎么回事。