diff options
author | Christopher Baines <mail@cbaines.net> | 2018-02-18 11:23:41 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-03-29 07:41:09 +0100 |
commit | bc1ffc5214ab3f563b60523d9c349fab7974e634 (patch) | |
tree | 1caa1ed8bf2fb96c4d340aeffd53cd50a8799980 /app/jobs/start_job.rb | |
parent | 700b8b0a112fa976b9850418a7f0c71d95b6dd79 (diff) | |
download | govuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar govuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar.gz |
Add some govuk-guix related jobs
And various other views and routes.
Diffstat (limited to 'app/jobs/start_job.rb')
-rw-r--r-- | app/jobs/start_job.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/jobs/start_job.rb b/app/jobs/start_job.rb new file mode 100644 index 0000000..ec17732 --- /dev/null +++ b/app/jobs/start_job.rb @@ -0,0 +1,34 @@ +require 'ruby_terraform' + +class StartJob < TerraformJob + @retry_interval = 30 + + def run_terraform + logger.info "Setting up #{@mini_environment.name}" + + Dir.chdir('terraform/aws') do + RubyTerraform.init( + backend: true, + backend_config: { + address: 'http://localhost:3000' + Rails.application.routes.url_helpers.terraform_http_backend_path + } + ) + + RubyTerraform.apply( + vars: { + aws_region: 'eu-west-1', + slug: @mini_environment.name.parameterize, + ssh_public_key: ssh_public_key, + start_command: @mini_environment.start_command + }, + auto_approve: true + ) + end + end + + def ssh_public_key + File.open("#{ENV['HOME']}/.ssh/id_rsa.pub") do |file| + file.readline() + end + end +end |