Sha256: deab03f94af07ce989f0cd24e2b84bc8a3e667ee426ab5c290516a283322032d
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
module Catfish class CLI::Provision attr_reader :options def initialize(options) @options = options end def run p 'Provisioning to servers using Catfishfile.lock' vagrant_version begin # Connect to the servers. The --provider=managed is the key here. system("vagrant up --provider=#{options[:provider]}") # Confirm the connectivity status = `vagrant status --machine-readable` if status.include? 'not reachable' abort 'ERROR DEPLOYING: One or more servers could not be connected to' end provision ensure # Disconnect from all of the servers system 'vagrant destroy -f' 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 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 system 'vagrant provision' end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
catfish-0.0.4 | lib/catfish/cli/provision.rb |