terra_boi 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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