diff options
author | Christopher Baines <mail@cbaines.net> | 2018-06-24 11:11:49 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-06-24 11:11:49 +0100 |
commit | ac45ed064b096f715805d21638ee9286804d12ef (patch) | |
tree | bd0390124a0229d438668c4ae290f2a03ce88047 /app/models/backends | |
parent | 3e3e975df56e6048594b1eaaed5ddbeab80918fb (diff) | |
download | govuk-mini-environment-admin-ac45ed064b096f715805d21638ee9286804d12ef.tar govuk-mini-environment-admin-ac45ed064b096f715805d21638ee9286804d12ef.tar.gz |
Neaten up SSH handling
Explicitly use the specified private key where possible. Also, use a
struct for the user, address and private key.
Diffstat (limited to 'app/models/backends')
-rw-r--r-- | app/models/backends/terraform_aws.rb | 8 | ||||
-rw-r--r-- | app/models/backends/terraform_aws/backend_methods.rb | 6 | ||||
-rw-r--r-- | app/models/backends/terraform_aws/mini_environment_methods.rb | 10 |
3 files changed, 10 insertions, 14 deletions
diff --git a/app/models/backends/terraform_aws.rb b/app/models/backends/terraform_aws.rb index d0655ee..2bf68a3 100644 --- a/app/models/backends/terraform_aws.rb +++ b/app/models/backends/terraform_aws.rb @@ -64,6 +64,14 @@ class Backends::TerraformAws < ApplicationRecord } end + def build_remote_host + RemoteHost.new( + 'ubuntu', + backend_latest_terraform_state.output_value('guix_daemon_public_dns'), + ssh_private_key + ) + end + def terraform_state_id "backend/terraform_aws/#{id}" end diff --git a/app/models/backends/terraform_aws/backend_methods.rb b/app/models/backends/terraform_aws/backend_methods.rb index 7489325..f069d77 100644 --- a/app/models/backends/terraform_aws/backend_methods.rb +++ b/app/models/backends/terraform_aws/backend_methods.rb @@ -20,12 +20,8 @@ module Backends::TerraformAws::BackendMethods def create_data_snapshot - remote_host = backend_latest_terraform_state.output_value( - 'guix_daemon_public_dns' - ) - GovukGuix::CreateDataSnapshotJob.enqueue( - run_remotely_on_host: "ubuntu@#{remote_host}", + run_remotely_on_host: build_remote_host, backend_type: self.class.name, backend_id: id ) diff --git a/app/models/backends/terraform_aws/mini_environment_methods.rb b/app/models/backends/terraform_aws/mini_environment_methods.rb index 1885af7..350df2a 100644 --- a/app/models/backends/terraform_aws/mini_environment_methods.rb +++ b/app/models/backends/terraform_aws/mini_environment_methods.rb @@ -22,14 +22,6 @@ module Backends::TerraformAws::MiniEnvironmentMethods def build(mini_environment) slug = mini_environment.name.parameterize - remote_build_host = - mini_environment - .backend - .backend_latest_terraform_state - .output_value( - 'guix_daemon_public_dns' - ) - GovukGuix::BuildMiniEnvironment.build( mini_environment.id, services: mini_environment.services.map(&:build_argument_string), @@ -50,7 +42,7 @@ module Backends::TerraformAws::MiniEnvironmentMethods '/var/log/govuk-mini-environment-admin=/var/log' ] }, - run_remotely_on_host: "ubuntu@#{remote_build_host}" + run_remotely_on_host: mini_environment.backend.build_remote_host ) end |