Class: Nvoi::Cli::Deploy::Steps::ProvisionServer
- Inherits:
-
Object
- Object
- Nvoi::Cli::Deploy::Steps::ProvisionServer
- Defined in:
- lib/nvoi/cli/deploy/steps/provision_server.rb
Overview
ProvisionServer handles compute server provisioning
Instance Method Summary collapse
-
#initialize(config, provider, log, network, firewall) ⇒ ProvisionServer
constructor
A new instance of ProvisionServer.
- #run ⇒ Object
Constructor Details
#initialize(config, provider, log, network, firewall) ⇒ ProvisionServer
Returns a new instance of ProvisionServer.
9 10 11 12 13 14 15 |
# File 'lib/nvoi/cli/deploy/steps/provision_server.rb', line 9 def initialize(config, provider, log, network, firewall) @config = config @provider = provider @log = log @network = network @firewall = firewall end |
Instance Method Details
#run ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/nvoi/cli/deploy/steps/provision_server.rb', line 17 def run @log.info "Provisioning servers" servers = @config.deploy.application.servers main_server_ip = nil servers.each do |group_name, group_config| count = group_config&.count&.positive? ? group_config.count : 1 (1..count).each do |i| server_name = @config.namer.server_name(group_name, i) server = provision_server(server_name, group_config) # Track main server IP (first master, or just first server) main_server_ip ||= server.public_ipv4 if group_config&.master || i == 1 end end @log.success "All servers provisioned" main_server_ip end |