test_name "Installing Puppet and vcsrepo module" do step 'install puppet' do if @options[:provision] # This will fail if puppet is already installed, ie --no-provision if hosts.first.is_pe? install_pe else install_puppet on hosts, "mkdir -p #{hosts.first['distmoduledir']}" end end end step 'Ensure we can install our module' do hosts.each do |host| # We ask the host to interpolate it's distmoduledir because we don't # actually know it on Windows until we've let it redirect us (depending # on whether we're running as a 32/64 bit process on 32/64 bit Windows moduledir = on(host, "echo #{host['distmoduledir']}").stdout.chomp on host, "mkdir -p #{moduledir}" end end step 'install module' do hosts.each do |host| proj_root = File.expand_path(File.join(File.dirname(__FILE__),'..','..')) # This require beaker 1.15 copy_module_to(host, :source => proj_root, :module_name => 'vcsrepo') case fact_on(host, 'osfamily') when 'RedHat' install_package(host, 'git') when 'Debian' install_package(host, 'git-core') else if !check_for_package(host, 'git') puts "Git package is required for this module" exit end end gitconfig = <<-EOS [user] email = root@localhost name = root EOS create_remote_file(host, "/root/.gitconfig", gitconfig) end end end