terra_boi 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e07549528cc229186be4d0024ebff13717dffe397b4da9611c2bc9e6601a21a
4
- data.tar.gz: e3ea9d7cae1344535ecbcf33a7a22b24679e8b668980f8b4bd0e7d27eabd5551
3
+ metadata.gz: 4315fdccd989f9477c4fa6911a298f2657ef3833ae5661c3422c375eb5f9fd4f
4
+ data.tar.gz: 26884beb178531bf6b25eb8226e12f45b8b302672b6d86ebc940f66aa8c579c9
5
5
  SHA512:
6
- metadata.gz: 9722cee6653bf1790d6ca23f957d32b42098feae3783c7b95cf0337250b6c8dcc7ea43c0fdc66bceece9aaa65ea49fdaf63d57e451c450ebc5bce110fdb581a6
7
- data.tar.gz: 3ce672b519f3d22ec25fc71d89b149f8974e8aadc541c7d409343f0fabad56f0866a6cea04cd96050a86225dd045d787a79b0a42e6ca2127ffe8a8a69692b9fc
6
+ metadata.gz: a9e6f8c686fc902973a0639b77e90f81297038b5282689cdb87560d52f40b388f18c26cadf93e03b0be5b41ad772b65ba1b0f09848568a84614337669b7f242e
7
+ data.tar.gz: 489520341bcdebd0bb7db4c550d1c98013be808424f4c6c2db54a0f43ceb3b3ebfccb46ff10d953c8925d0a721cbb68adf7b9268bdd0169e9ade21cb8f53bdff
data/README.md CHANGED
@@ -141,14 +141,14 @@ After these changes propogate (should take about an hour or two locally), your w
141
141
 
142
142
  You can automatically trigger DockerHub image builds when new code is pushed to a repository's master branch using DockerHub's free Github integration.
143
143
 
144
- Otherwise, `docker push [DOCKER_USERNAME]/[APPLICATION_NAME]:latest`. Make sure you are pushing to a private repository.
144
+ Otherwise, `docker build . && docker container create [IMAGE_ID] && docker commit [CONTAINER_ID] [DOCKER_USERNAME]/[APPLICATION_NAME]:latest && docker push [DOCKER_USERNAME]/[APPLICATION_NAME]:latest`. Make sure you are pushing to a private repository.
145
145
 
146
146
  **B. Create Packer AMI:**
147
147
 
148
148
  ```
149
149
  cd packer
150
150
 
151
- packer build -var DOCKERHUB_ACCESS_TOKEN=$DOCKERHUB_ACCESS_TOKEN -var DOCKERHUB_USERNAME=$DOCKERHUB_USERNAME application.json
151
+ packer build -var DOCKERHUB_ACCESS_TOKEN=$DOCKERHUB_ACCESS_TOKEN -var DOCKERHUB_USERNAME=$DOCKERHUB_USERNAME -var DB_PASSWORD=TF_VAR_db_password application.json
152
152
  ```
153
153
 
154
154
  **C. Clean up:**
@@ -228,4 +228,9 @@ In `lib/terra_boi/version.rb` update version.
228
228
 
229
229
  **3. Push gem**
230
230
 
231
- `gem push terra_boi-X.X.X.gem` (replace X's with version)
231
+ `gem push terra_boi-X.X.X.gem` (replace X's with version)
232
+
233
+ **4. Tag GitHub**
234
+
235
+ `git tag -a vX.X.X -m "Msg"`
236
+ `git push --tags`
@@ -28,6 +28,7 @@ module TerraBoi
28
28
  generate "terra_boi:state"
29
29
  generate "terra_boi:dockerfile --ruby_version #{class_options[:ruby_version]}"
30
30
  generate "terra_boi:host_initializer --domain_name #{class_options[:domain_name]}"
31
+ generate "terra_boi:db_config"
31
32
  generate "terra_boi:packer"
32
33
  end
33
34
 
@@ -0,0 +1,25 @@
1
+ require "generators/extensions"
2
+
3
+ module TerraBoi
4
+ class DbConfigGenerator < Rails::Generators::Base
5
+ attr_accessor :application_name
6
+ source_root File.expand_path('templates', __dir__)
7
+
8
+ desc (<<-EOF
9
+ Generate database.yml (default DB config)
10
+
11
+ To execute, run rails generate terra_boi:db_config
12
+ EOF
13
+ .gsub(/\t/, '')
14
+ )
15
+
16
+ def init
17
+ # defined in lib/generators/extensions
18
+ self.application_name = generate_application_name
19
+ end
20
+
21
+ def create_db_config_file
22
+ template "db_config.erb", "config/database.yml"
23
+ end
24
+ end
25
+ end
@@ -20,7 +20,7 @@ variable "db_username" {}
20
20
  variable "db_password" {}
21
21
 
22
22
  module "db_and_s3" {
23
- source = "github.com/charliereese/terraform_modules//data?ref=v0.0.6"
23
+ source = "github.com/charliereese/terraform_modules//data?ref=v0.0.7"
24
24
 
25
25
  env = "<%= config[:env] %>"
26
26
  app_name = "<%= application_name %>"
@@ -0,0 +1,30 @@
1
+ # SQLite. Versions 3.8.0 and up are supported.
2
+ # gem install sqlite3
3
+ #
4
+ # Ensure the SQLite 3 gem is defined in your Gemfile
5
+ # gem 'sqlite3'
6
+ #
7
+ default: &default
8
+ adapter: sqlite3
9
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
10
+ timeout: 5000
11
+
12
+ development:
13
+ <<: *default
14
+ database: db/development.sqlite3
15
+
16
+ # Warning: The database defined as "test" will be erased and
17
+ # re-generated from your development database when you run "rake".
18
+ # Do not set this db to the same as development or production.
19
+ test:
20
+ <<: *default
21
+ database: db/test.sqlite3
22
+
23
+ production:
24
+ <<: *default
25
+ adapter: postgresql
26
+ database: <%= application_name %>
27
+ username: <%%= ENV["DB_USERNAME"] %>
28
+ password: <%%= ENV["DB_PASSWORD"] %>
29
+ host: <%%= ENV["DB_HOST"] %>
30
+ pool: <%%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
@@ -1,4 +1,4 @@
1
1
  Rails.application.configure do
2
2
  config.hosts << '.<%= class_options[:domain_name] %>'
3
- config.hosts << /compute\.amazonaws\.com/
3
+ config.hosts << '.amazonaws.com'
4
4
  end
@@ -5,6 +5,10 @@ sudo apt-get update
5
5
  sudo apt -y install docker.io
6
6
  docker --version
7
7
 
8
+ # Set DB and DockerHub usernames
9
+ export DB_PASSWORD=$DB_PASSWORD
10
+ export DOCKERHUB_USERNAME=$DOCKERHUB_USERNAME
11
+
8
12
  # # Start the Docker service
9
13
  sudo service docker start
10
14
  sudo usermod -aG docker ubuntu
@@ -15,8 +19,5 @@ sudo systemctl enable docker
15
19
  # Log in
16
20
  sudo docker login --username $DOCKERHUB_USERNAME -p $DOCKERHUB_ACCESS_TOKEN
17
21
 
18
- # Run the container:
19
- # --restart=always i.e. always start the container when the EC2 instance created from this AMI is launched or rebooted
20
- # --detach , -d i.e. Run container in background and print container ID
21
- # sudo docker run --restart=always USERNAME/<%= application_name %>:latest
22
- sudo docker container run -p 3000:3000 --name <%= application_name %> --restart always -d $DOCKERHUB_USERNAME/<%= application_name %>:latest
22
+ # Pull the container:
23
+ sudo docker pull $DOCKERHUB_USERNAME/<%= application_name %>:latest
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "variables": {
3
3
  "DOCKERHUB_ACCESS_TOKEN": "",
4
- "DOCKERHUB_USERNAME": ""
4
+ "DOCKERHUB_USERNAME": "",
5
+ "DB_PASSWORD": ""
5
6
  },
6
7
 
7
8
  "builders": [{
@@ -34,7 +35,8 @@
34
35
  "type":"shell",
35
36
  "environment_vars": [
36
37
  "DOCKERHUB_ACCESS_TOKEN={{user `DOCKERHUB_ACCESS_TOKEN`}}",
37
- "DOCKERHUB_USERNAME={{user `DOCKERHUB_USERNAME`}}"
38
+ "DOCKERHUB_USERNAME={{user `DOCKERHUB_USERNAME`}}",
39
+ "DB_PASSWORD={{user `DB_PASSWORD`}}"
38
40
  ],
39
41
  "script": "ami_build.sh"
40
42
  }]
@@ -3,7 +3,7 @@
3
3
  # ---------------------------------------------------------------------------------------------------------------------
4
4
 
5
5
  module "remote_state_locking" {
6
- source = "github.com/charliereese/terraform_modules//state?ref=v0.0.6"
6
+ source = "github.com/charliereese/terraform_modules//state?ref=v0.0.7"
7
7
 
8
8
  app_name = "<%= application_name %>"
9
9
  region = "us-east-2"
@@ -17,7 +17,7 @@ terraform {
17
17
  # ---------------------------------------------------------------------------------------------------------------------
18
18
 
19
19
  module "webserver_cluster" {
20
- source = "github.com/charliereese/terraform_modules//web_servers?ref=v0.0.6"
20
+ source = "github.com/charliereese/terraform_modules//web_servers?ref=v0.0.7"
21
21
 
22
22
  instance_type = "t2.micro"
23
23
  env = "<%= config[:env] %>"
@@ -1,3 +1,3 @@
1
1
  module TerraBoi
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: terra_boi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charlie Reese
@@ -49,6 +49,7 @@ files:
49
49
  - lib/generators/extensions.rb
50
50
  - lib/generators/terra_boi/boilerplate_generator.rb
51
51
  - lib/generators/terra_boi/data_generator.rb
52
+ - lib/generators/terra_boi/db_config_generator.rb
52
53
  - lib/generators/terra_boi/dockerfile_generator.rb
53
54
  - lib/generators/terra_boi/host_initializer_generator.rb
54
55
  - lib/generators/terra_boi/packer_generator.rb
@@ -56,6 +57,7 @@ files:
56
57
  - lib/generators/terra_boi/templates/Dockerfile.erb
57
58
  - lib/generators/terra_boi/templates/data_main.erb
58
59
  - lib/generators/terra_boi/templates/data_output.erb
60
+ - lib/generators/terra_boi/templates/db_config.erb
59
61
  - lib/generators/terra_boi/templates/host_initializer.erb
60
62
  - lib/generators/terra_boi/templates/packer_ami_build.erb
61
63
  - lib/generators/terra_boi/templates/packer_application.erb