From 8b0b1f9e11d27953e827b4f6da7f7ea337a0d07c Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Wed, 13 Jan 2016 14:02:32 +0300 Subject: [PATCH] add possibility to manually set private ip to created instances --- devops-client/lib/devops-client/handler/server.rb | 2 +- devops-client/lib/devops-client/options/server_options.rb | 2 ++ devops-client/locales/en.yml | 3 ++- devops-service/lib/executors/server_executor.rb | 3 ++- devops-service/providers/ec2.rb | 3 ++- 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/devops-client/lib/devops-client/handler/server.rb b/devops-client/lib/devops-client/handler/server.rb index 9febf16..1d85e02 100644 --- a/devops-client/lib/devops-client/handler/server.rb +++ b/devops-client/lib/devops-client/handler/server.rb @@ -71,7 +71,7 @@ class Server < Handler :deploy_env => @args[3] } - [:key, :without_bootstrap, :name, :groups, :force].each do |k| + [:key, :without_bootstrap, :name, :groups, :force, :private_ip].each do |k| q[k] = self.options[k] unless self.options[k].nil? end diff --git a/devops-client/lib/devops-client/options/server_options.rb b/devops-client/lib/devops-client/options/server_options.rb index 71461d0..3d72fed 100644 --- a/devops-client/lib/devops-client/options/server_options.rb +++ b/devops-client/lib/devops-client/options/server_options.rb @@ -122,6 +122,8 @@ class ServerOptions < CommonOptions options[:groups] = groups.split(",") end + parser.recognize_option_value(:private_ip, 'server', short: '-N', i18n_scope: 'create') + # it was disabled somewhy # parser.on('--public-ip', "Associate public IP with server") do # options[:public_ip] = true diff --git a/devops-client/locales/en.yml b/devops-client/locales/en.yml index 58f1d9f..75bd050 100644 --- a/devops-client/locales/en.yml +++ b/devops-client/locales/en.yml @@ -360,11 +360,12 @@ en: unreserve: instance: Unreserve server by instance id create: - without-bootstrap: 'Run server without bootsraping phase' + without_bootstrap: 'Run server without bootsraping phase' name: Set node name groups: The security groups for this server force: Cancel rollback operation on error key: User another key for server + private_ip: Private ip for this server bootstrap: name: Set chef name bootstrap_template: Bootstrap template diff --git a/devops-service/lib/executors/server_executor.rb b/devops-service/lib/executors/server_executor.rb index 0518211..88ac412 100644 --- a/devops-service/lib/executors/server_executor.rb +++ b/devops-service/lib/executors/server_executor.rb @@ -82,7 +82,8 @@ module Devops "deploy_env" => @deploy_env.identifier, "created_by" => options["created_by"], "provider" => @deploy_env.provider, - "provider_account" => @deploy_env.provider_account + "provider_account" => @deploy_env.provider_account, + "private_ip" => options["private_ip"] }) end diff --git a/devops-service/providers/ec2.rb b/devops-service/providers/ec2.rb index dbb5d6b..2260b3d 100644 --- a/devops-service/providers/ec2.rb +++ b/devops-service/providers/ec2.rb @@ -99,7 +99,8 @@ module Provider options = { "InstanceType" => flavor, # "Placement.AvailabilityZone" => s.options[:availability_zone], - "KeyName" => self.ssh_key + "KeyName" => self.ssh_key, + "PrivateIpAddress" => s.private_ip } vpcId = nil unless subnets.empty?