archive/puphpet/vagrant/Vagrantfile-rackspace
# -*- mode: ruby -*-
ENV['VAGRANT_DEFAULT_PROVIDER'] = 'rackspace'
provider = data['vm']['provider']['rackspace']
machines = !provider['machines'].empty? ? provider['machines'] : { }
machines.each do |i, machine|
config.vm.define "#{machine['id']}" do |machine_id|
machine_id.vm.hostname = "#{machine['hostname']}"
machine_id.nfs.functional = false
ssh_username = !data['ssh']['username'].nil? ?
data['ssh']['username'] :
'root'
machine_id.ssh.private_key_path = "#{data['ssh']['private_key_path']}"
machine_id.ssh.username = "#{ssh_username}"
machine_id.vm.provider :rackspace do |rs, override|
override.vm.synced_folder ".", "/vagrant", type: "rsync"
rs.username = "#{provider['username']}"
rs.api_key = "#{provider['api_key']}"
rs.image = "#{provider['image']}"
rs.flavor = /#{machine['size']}/
rs.rackspace_region = "#{machine['region'].downcase}"
rs.public_key_path = "#{data['ssh']['public_key_path']}"
rs.server_name = "#{machine['server_name']}"
rs.init_script = 'sed -i\'.bk\' -e \'s/^\(Defaults\s\+requiretty\)/# \1/\' /etc/sudoers'
override.ssh.username = 'root'
end
data['vm']['synced_folder'].each do |i, folder|
if folder['source'] != '' && folder['target'] != ''
machine_id.vm.synced_folder "#{folder['source']}", "#{folder['target']}",
id: "#{i}"
end
end
machine_id.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/initial-setup.sh'
end
machine_id.vm.provision :shell,
:inline => 'chmod +x /opt/puphpet/standalone-puppet.sh'
machine_id.vm.provision 'shell' do |s|
s.path = 'puphpet/shell/install-puppet.sh'
end
machine_id.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-preprovision']
end
machine_id.vm.provision :puppet do |puppet|
puppet.facter = {
'fqdn' => "#{machine_id.vm.hostname}",
'ssh_username' => "#{ssh_username}",
'provisioner_type' => ENV['VAGRANT_DEFAULT_PROVIDER'],
}
puppet.manifests_path = "#{data['vm']['provision']['puppet']['manifests_path']}"
puppet.manifest_file = ""
puppet.module_path = data['vm']['provision']['puppet']['module_path']
if !data['vm']['provision']['puppet']['options'].empty?
puppet.options = data['vm']['provision']['puppet']['options']
end
end
machine_id.vm.provision :shell do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once', 'exec-always']
end
machine_id.vm.provision :shell, run: 'always' do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once', 'startup-always']
end
machine_id.vm.provision :shell, privileged: false do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['exec-once-unprivileged', 'exec-always-unprivileged']
end
machine_id.vm.provision :shell, run: 'always', privileged: false do |s|
s.path = 'puphpet/shell/execute-files.sh'
s.args = ['startup-once-unprivileged', 'startup-always-unprivileged']
end
machine_id.vm.provision :shell, privileged: false do |s|
s.path = 'puphpet/shell/important-notices.sh'
end
if !data['ssh']['port'].nil? && data['ssh']['port'].to_bool
machine_id.ssh.port = "#{data['ssh']['port']}"
end
if !data['ssh']['shell'].nil?
machine_id.ssh.shell = "#{data['ssh']['shell']}"
end
end
end