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 +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
|