Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- mode: ruby -*-
- # vi: set ft=ruby :
- # Prerequisites:
- # A windows box with...
- # - puppet-agent
- # - git
- # - ruby
- # - r10k
- Vagrant.configure(2) do |config|
- config.vm.box = "2012r2_packages"
- config.vm.guest = :windows
- config.vm.communicator = "winrm"
- config.vm.boot_timeout = 300
- $facts = "datacenter=den3,role=member_server"
- $class = "role::member_server"
- # copy over control repo to local system and modify environment.conf for windows
- config.vm.provision "control_repo", type: "shell",
- inline: "robocopy /MIR c:\\vagrant c:\\ProgramData\\PuppetLabs\\code\\environments\\production; (Get-Content 'C:\\ProgramData\\PuppetLabs\\code\\environments\\production\\environment.conf').Replace(':',';') | Select-String -Pattern 'config_version' -NotMatch | Set-Content 'C:\\ProgramData\\PuppetLabs\\code\\environments\\production\\environment.conf'"
- # download modules to local system
- config.vm.provision "r10k_modules", type: "shell",
- inline: "cd c:\\ProgramData\\PuppetLabs\\code\\environments\\production; r10k puppetfile install"
- # stage custom facts to local system
- config.vm.provision "stage_facts", type: "shell",
- inline: "('" + $facts + "').Split(',') | %{Add-Content -PassThru C:\\ProgramData\\PuppetLabs\\facter\\facts.d\\custom.txt -Value $_ -Force}"
- # run puppet apply with the desired role or profile
- config.vm.provision "puppet-apply", type: "shell",
- inline: "puppet apply -v -e 'include " + $class + "'"
- config.vm.provider "virtualbox" do |vb|
- vb.gui = true
- vb.memory = 2048
- end
- end
Add Comment
Please, Sign In to add comment