Yup, that works great, thanks!
My updated triggers look like this now:
vault_file = File.join(ANSIBLE_PATH, 'group_vars', 'development', 'vault.yml')
vault_sites = YAML.load_file(vault_file)['vault_wordpress_sites']
# Vagrant Triggers
#
# If the vagrant-triggers plugin is installed, we can run various scripts on Vagrant
# state changes like `vagrant up`, `vagrant halt`, `vagrant suspend`, and `vagrant destroy`
#
# These scripts are run on the host machine, so we use `vagrant ssh` to tunnel back
# into the VM and execute things.
#
if Vagrant.has_plugin? 'vagrant-triggers'
wordpress_sites.each do |(name, site)|
#
# Get database credentials
#
site['env'].merge!(vault_sites[name]['env'])
db_name = site['env']['db_name']
db_user = site['env']['db_user']
db_pass = site['env']['db_password']
#
# Importing database
#
config.trigger.after [:up, :resume, :reload], :force => true do
info "Importing databases"
run_remote "mysql -u #{db_user} -p#{db_pass} #{db_name} < /srv/database/backups/#{db_name}.sql"
end
#
# Exporting database
#
config.trigger.before [:halt, :suspend, :destroy], :force => true do
info "Dumping databases"
run_remote "mysqldump -u #{db_user} -p#{db_pass} #{db_name} > /srv/database/backups/#{db_name}.sql"
end
end
else
puts 'vagrant-triggers missing, please install the plugin:'
puts 'vagrant plugin install vagrant-triggers'
end