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 +4 -4
- data/README.md +8 -3
- data/lib/generators/terra_boi/boilerplate_generator.rb +1 -0
- data/lib/generators/terra_boi/db_config_generator.rb +25 -0
- data/lib/generators/terra_boi/templates/data_main.erb +1 -1
- data/lib/generators/terra_boi/templates/db_config.erb +30 -0
- data/lib/generators/terra_boi/templates/host_initializer.erb +1 -1
- data/lib/generators/terra_boi/templates/packer_ami_build.erb +6 -5
- data/lib/generators/terra_boi/templates/packer_application.erb +4 -2
- data/lib/generators/terra_boi/templates/state_main.erb +1 -1
- data/lib/generators/terra_boi/templates/web_servers_main.erb +1 -1
- data/lib/terra_boi/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4315fdccd989f9477c4fa6911a298f2657ef3833ae5661c3422c375eb5f9fd4f
|
4
|
+
data.tar.gz: 26884beb178531bf6b25eb8226e12f45b8b302672b6d86ebc940f66aa8c579c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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 } %>
|
@@ -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
|
-
#
|
19
|
-
|
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
|
+
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.
|
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] %>"
|
data/lib/terra_boi/version.rb
CHANGED
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.
|
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
|