Sha256: fbbc587a7a46b94723f3461daff7086ee2d34573af73c1b4206a79e72952c08b
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
module Catfish class CLI::Provision attr_reader :options def initialize(options) @options = options end def run puts 'Provisioning to servers using Catfishfile.lock' vagrant_version begin # Connect to the servers. The --provider=managed is the key here. system("vagrant up /managed/ --provider=#{options[:provider]}") # Confirm the connectivity status = `vagrant status /managed/ --machine-readable` if status.include? 'not reachable' abort 'ERROR DEPLOYING: One or more servers could not be connected to' end provision status ensure # Disconnect from all of the servers system 'vagrant destroy -f /managed/' end end private def vagrant_version vagrant_version = 'Vagrant 1.6' fail "#{vagrant_version} or greater is a prerequisite" unless `vagrant --version`.include? vagrant_version end def provision(status) if options[:parallel] machines = status.split("\n").collect do |line| line.split(',')[1] end threads = [] machines.uniq!.each do |machine| threads << Thread.new do system "vagrant provision #{machine}" end end threads.each(&:join) else command = 'vagrant provision /managed/' system command end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
catfish-0.0.7 | lib/catfish/cli/provision.rb |
catfish-0.0.6 | lib/catfish/cli/provision.rb |