subspace 2.5.10 → 3.0.0.rc1
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/.ruby-version +1 -1
- data/CHANGELOG.md +12 -5
- data/README.md +57 -24
- data/UPGRADING.md +10 -0
- data/ansible/roles/common/defaults/main.yml +0 -1
- data/ansible/roles/common/files/sudoers-service +1 -1
- data/ansible/roles/common/tasks/main.yml +18 -7
- data/ansible/roles/common/tasks/no_swap.yml +26 -0
- data/ansible/roles/common/templates/motd +1 -1
- data/ansible/roles/common/templates/motd2 +1 -1
- data/ansible/roles/delayed_job/tasks/main.yml +1 -1
- data/ansible/roles/memcache/defaults/main.yml +2 -0
- data/ansible/roles/memcache/tasks/main.yml +16 -1
- data/ansible/roles/newrelic-infra/tasks/main.yml +3 -3
- data/ansible/roles/nginx/tasks/main.yml +12 -3
- data/ansible/roles/puma/tasks/main.yml +32 -20
- data/ansible/roles/puma/templates/puma-systemd.service +36 -0
- data/ansible/roles/puma/templates/puma-systemd.socket +14 -0
- data/ansible/roles/puma/templates/puma.rb +4 -2
- data/ansible/roles/rails/defaults/main.yml +0 -7
- data/ansible/roles/redis/tasks/main.yml +7 -0
- data/ansible/roles/resque/tasks/main.yml +11 -12
- data/ansible/roles/resque/templates/resque-systemd.service +10 -3
- data/ansible/roles/ruby-common/README.md +1 -1
- data/ansible/roles/ruby-common/tasks/main.yml +2 -17
- data/ansible/roles/sidekiq/defaults/main.yml +1 -1
- data/ansible/roles/sidekiq/tasks/main.yml +11 -15
- data/ansible/roles/sidekiq/templates/sidekiq-monit-rc +1 -1
- data/ansible/roles/sidekiq/templates/sidekiq-systemd.service +62 -0
- data/ansible/roles/tailscale/defaults/main.yml +2 -0
- data/ansible/roles/tailscale/tasks/main.yml +22 -0
- data/exe/subspace +1 -2
- data/lib/subspace/cli.rb +50 -14
- data/lib/subspace/commands/ansible.rb +11 -2
- data/lib/subspace/commands/base.rb +20 -5
- data/lib/subspace/commands/bootstrap.rb +16 -21
- data/lib/subspace/commands/configure.rb +2 -2
- data/lib/subspace/commands/exec.rb +20 -0
- data/lib/subspace/commands/init.rb +94 -45
- data/lib/subspace/commands/inventory.rb +45 -0
- data/lib/subspace/commands/maintain.rb +1 -1
- data/lib/subspace/commands/provision.rb +1 -3
- data/lib/subspace/commands/{vars.rb → secrets.rb} +6 -5
- data/lib/subspace/commands/ssh.rb +10 -8
- data/lib/subspace/commands/terraform.rb +83 -0
- data/lib/subspace/inventory.rb +144 -0
- data/lib/subspace/version.rb +1 -1
- data/subspace.gemspec +8 -2
- data/template/{provision → subspace}/.gitignore +3 -0
- data/template/{provision → subspace}/ansible.cfg.erb +2 -2
- data/template/subspace/group_vars/all.erb +28 -0
- data/template/subspace/group_vars/template.erb +26 -0
- data/template/subspace/inventory.yml.erb +11 -0
- data/template/{provision → subspace}/playbook.yml.erb +2 -5
- data/template/subspace/templates/authorized_keys.erb +1 -0
- data/template/subspace/terraform/.gitignore +2 -0
- data/template/subspace/terraform/template/main-oxenwagen.tf.erb +116 -0
- data/template/subspace/terraform/template/main-workhorse.tf.erb +41 -0
- data/template/subspace/terraformrc.erb +9 -0
- data/terraform/modules/s3_backend/README +2 -0
- data/terraform/modules/s3_backend/dynamodb.tf +1 -0
- data/terraform/modules/s3_backend/iam_user.tf +38 -0
- data/terraform/modules/s3_backend/main.tf +39 -0
- data/terraform/modules/s3_backend/state_bucket.tf +14 -0
- metadata +42 -53
- data/ansible/roles/monit/files/monit-http.conf +0 -3
- data/ansible/roles/monit/files/sudoers-monit +0 -1
- data/ansible/roles/monit/handlers/main.yml +0 -14
- data/ansible/roles/monit/tasks/main.yml +0 -34
- data/ansible/roles/mtpereira.passenger/.bumpversion.cfg +0 -7
- data/ansible/roles/mtpereira.passenger/.gitignore +0 -2
- data/ansible/roles/mtpereira.passenger/LICENSE +0 -20
- data/ansible/roles/mtpereira.passenger/README.md +0 -31
- data/ansible/roles/mtpereira.passenger/defaults/main.yml +0 -5
- data/ansible/roles/mtpereira.passenger/handlers/main.yml +0 -8
- data/ansible/roles/mtpereira.passenger/meta/.galaxy_install_info +0 -1
- data/ansible/roles/mtpereira.passenger/meta/main.yml +0 -21
- data/ansible/roles/mtpereira.passenger/tasks/apt.yml +0 -13
- data/ansible/roles/mtpereira.passenger/tasks/main.yml +0 -8
- data/ansible/roles/mtpereira.passenger/tasks/pkg.yml +0 -35
- data/ansible/roles/mtpereira.passenger/tasks/service.yml +0 -8
- data/ansible/roles/passenger/files/sudoers-passenger +0 -1
- data/ansible/roles/passenger/meta/main.yml +0 -6
- data/ansible/roles/passenger/tasks/main.yml +0 -5
- data/ansible/roles/postgis/defaults/main.yml +0 -2
- data/ansible/roles/puma/defaults/main.yml +0 -5
- data/ansible/roles/puma/meta/main.yml +0 -5
- data/ansible/roles/sidekiq/meta/main.yml +0 -5
- data/template/provision/group_vars/all.erb +0 -17
- data/template/provision/group_vars/template.erb +0 -11
- data/template/provision/host_vars/template.erb +0 -4
- /data/template/{provision → subspace}/hosts.erb +0 -0
- /data/template/{provision/vars → subspace/secrets}/template.erb +0 -0
- /data/template/{provision → subspace}/templates/application.yml.template +0 -0
|
@@ -3,19 +3,16 @@
|
|
|
3
3
|
become: yes
|
|
4
4
|
|
|
5
5
|
vars_files:
|
|
6
|
-
- ./
|
|
6
|
+
- ./secrets/<%= @env %>.yml
|
|
7
7
|
|
|
8
8
|
roles:
|
|
9
9
|
- common
|
|
10
|
-
- yarn
|
|
11
10
|
- nodejs
|
|
11
|
+
- yarn
|
|
12
12
|
- ruby-common
|
|
13
13
|
- rails
|
|
14
14
|
- puma
|
|
15
15
|
- letsencrypt
|
|
16
16
|
- nginx
|
|
17
17
|
- postgresql
|
|
18
|
-
- monit
|
|
19
18
|
- logrotate
|
|
20
|
-
- collectd
|
|
21
|
-
- delayed_job
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= `cat $HOME/.ssh/id_rsa.pub` %>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
terraform {
|
|
2
|
+
# Default backend is just local.
|
|
3
|
+
|
|
4
|
+
# Uncomment to use s3
|
|
5
|
+
# backend "s3" {
|
|
6
|
+
# bucket = "subspace-backend-<%= project_name %>"
|
|
7
|
+
# key = "subspace.<%= @env %>.tfstate"
|
|
8
|
+
# region = "us-west-2"
|
|
9
|
+
# }
|
|
10
|
+
|
|
11
|
+
# Uncomment to use Terraform Cloud
|
|
12
|
+
# cloud {
|
|
13
|
+
# organization = "<%= project_name %>"
|
|
14
|
+
#
|
|
15
|
+
# workspaces {
|
|
16
|
+
# name = "<%= @env %>"
|
|
17
|
+
# }
|
|
18
|
+
# }
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
provider aws {
|
|
23
|
+
region = "us-west-2"
|
|
24
|
+
profile = "subspace-<%= project_name %>"
|
|
25
|
+
default_tags {
|
|
26
|
+
tags = {
|
|
27
|
+
Environment = "<%= @env %>"
|
|
28
|
+
Project = "<%= project_name %>"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
variable database_password { type = string }
|
|
34
|
+
|
|
35
|
+
module oxenwagen {
|
|
36
|
+
source = "github.com/tenforwardconsulting/terraform-subspace-oxenwagen?ref=v2.1.0"
|
|
37
|
+
project_name = "<%= project_name %>"
|
|
38
|
+
project_environment = "<%= @env %>"
|
|
39
|
+
aws_region = ## "us-west-2"
|
|
40
|
+
lb_health_check_path = "/"
|
|
41
|
+
subspace_public_key = file("../../subspace.pem.pub")
|
|
42
|
+
|
|
43
|
+
# Ubuntu Server 20.04 LTS (HVM), SSD Volume Type
|
|
44
|
+
instance_ami = "<%= @latest_ami %>"
|
|
45
|
+
web_instance_type = "t3.small"
|
|
46
|
+
web_instance_count = 2
|
|
47
|
+
worker_instance_type = "t3.medium"
|
|
48
|
+
worker_instance_count = 1
|
|
49
|
+
worker_volume_size = 100
|
|
50
|
+
ssh_cidr_blocks = [] # Put office/local/vpn IP addresses here
|
|
51
|
+
|
|
52
|
+
database_engine = "postgres"
|
|
53
|
+
database_engine_version = ## "14.1"
|
|
54
|
+
database_instance_class = "db.t3.medium"
|
|
55
|
+
database_name = "<%= "#{project_name}_#{@env}" %>"
|
|
56
|
+
database_username = "<%= project_name %>"
|
|
57
|
+
database_password = var.database_password
|
|
58
|
+
database_allocated_storage = 100
|
|
59
|
+
database_max_allocated_storage = 1000
|
|
60
|
+
database_iops = 1000
|
|
61
|
+
|
|
62
|
+
# lb_domain_name = "www.<%= project_name %>.com"
|
|
63
|
+
# lb_alternate_names = []
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
output "oxenwagen" {
|
|
67
|
+
value = module.oxenwagen
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
resource "aws_s3_bucket" "bucket" {
|
|
71
|
+
bucket = "<%= "#{project_name}-#{@env}-assets" %>"
|
|
72
|
+
acl = "private"
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
resource "aws_s3_bucket_public_access_block" "block_public_acls" {
|
|
76
|
+
bucket = aws_s3_bucket.bucket.id
|
|
77
|
+
|
|
78
|
+
block_public_acls = true
|
|
79
|
+
block_public_policy = true
|
|
80
|
+
ignore_public_acls = true
|
|
81
|
+
restrict_public_buckets = true
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
resource "aws_iam_user" "s3_user" {
|
|
85
|
+
name = "<%= "#{project_name}-#{@env}-assets" %>-subspace-s3-user"
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
resource "aws_iam_user_policy" "s3-upload" {
|
|
89
|
+
name = "test"
|
|
90
|
+
user = aws_iam_user.s3_user.name
|
|
91
|
+
|
|
92
|
+
policy = <<EOF
|
|
93
|
+
{
|
|
94
|
+
"Version": "2012-10-17",
|
|
95
|
+
"Statement": [
|
|
96
|
+
{
|
|
97
|
+
"Action": [
|
|
98
|
+
"s3:PutObject",
|
|
99
|
+
"s3:PutObjectAcl",
|
|
100
|
+
"s3:GetObject",
|
|
101
|
+
"s3:GetObjectVersion",
|
|
102
|
+
"s3:GetBucketAcl",
|
|
103
|
+
"s3:DeleteObject",
|
|
104
|
+
"s3:DeleteObjectVersion"
|
|
105
|
+
],
|
|
106
|
+
"Effect": "Allow",
|
|
107
|
+
"Resource": [
|
|
108
|
+
"arn:aws:s3:::<%= "#{project_name}-#{@env}-assets" %>",
|
|
109
|
+
"arn:aws:s3:::<%= "#{project_name}-#{@env}-assets" %>/*"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
EOF
|
|
115
|
+
}
|
|
116
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
terraform {
|
|
2
|
+
# Default backend is just local.
|
|
3
|
+
|
|
4
|
+
# Uncomment to use s3
|
|
5
|
+
# backend "s3" {
|
|
6
|
+
# bucket = "subspace-backend-<%= project_name %>"
|
|
7
|
+
# key = "subspace.<%= @env %>.tfstate"
|
|
8
|
+
# region = "us-west-2"
|
|
9
|
+
# }
|
|
10
|
+
|
|
11
|
+
# Uncomment to use Terraform Cloud
|
|
12
|
+
# cloud {
|
|
13
|
+
# organization = "<%= project_name %>"
|
|
14
|
+
#
|
|
15
|
+
# workspaces {
|
|
16
|
+
# name = "<%= @env %>"
|
|
17
|
+
# }
|
|
18
|
+
# }
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
module workhorse {
|
|
23
|
+
source = "github.com/tenforwardconsulting/terraform-subspace-workhorse?ref=v1.0.0"
|
|
24
|
+
project_name = "<%= project_name %>"
|
|
25
|
+
project_environment = "<%= @env %>"
|
|
26
|
+
aws_region = "us-west-2"
|
|
27
|
+
subspace_public_key = file("../../subspace.pem.pub")
|
|
28
|
+
# zone_id = "ZOJ6811VRVYBT" # 10fw.net
|
|
29
|
+
# subdomain = "<%= project_name.gsub("_", "-") %>"
|
|
30
|
+
|
|
31
|
+
# Ubuntu Server 20.04 LTS (HVM), SSD Volume Type
|
|
32
|
+
instance_ami = "ami-0f81e6e71078b75b6"
|
|
33
|
+
instance_user = "ubuntu"
|
|
34
|
+
instance_type = "t3.medium"
|
|
35
|
+
instance_hostname = "${var.project_environment}-app1"
|
|
36
|
+
instance_volume_size = 20
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
output "workhorse" {
|
|
40
|
+
value = module.workhorse
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Maybe later
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
resource "aws_iam_user" "ss" {
|
|
2
|
+
name = "subspace"
|
|
3
|
+
path = "/"
|
|
4
|
+
|
|
5
|
+
tags = {
|
|
6
|
+
Name = "Subspace IAM user"
|
|
7
|
+
Environment = "Global"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
resource "aws_iam_access_key" "ss" {
|
|
12
|
+
user = aws_iam_user.ss.name
|
|
13
|
+
|
|
14
|
+
pgp_key = data.local_file.pgp_key.content_base64
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
resource "aws_iam_user_policy" "ss_s3" {
|
|
18
|
+
name = "ss_s3_user_policy"
|
|
19
|
+
user = aws_iam_user.ss.name
|
|
20
|
+
|
|
21
|
+
policy = <<EOF
|
|
22
|
+
{
|
|
23
|
+
"Version": "2012-10-17",
|
|
24
|
+
"Statement": [
|
|
25
|
+
{
|
|
26
|
+
"Effect": "Allow",
|
|
27
|
+
"Action": "s3:ListBucket",
|
|
28
|
+
"Resource": "arn:aws:s3:::${local.state_bucket_name}"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"Effect": "Allow",
|
|
32
|
+
"Action": ["s3:GetObject", "s3:PutObject"],
|
|
33
|
+
"Resource": "arn:aws:s3:::${local.state_bucket_name}/*"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
EOF
|
|
38
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
terraform {
|
|
2
|
+
required_providers {
|
|
3
|
+
aws = {
|
|
4
|
+
source = "hashicorp/aws"
|
|
5
|
+
version = "~> 3.0"
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
# Variables
|
|
11
|
+
variable aws_region {
|
|
12
|
+
type = string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
variable project_name {
|
|
16
|
+
type = string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
locals {
|
|
20
|
+
state_bucket_name = "subspace-backend-${var.project_name}"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
provider "aws" {
|
|
24
|
+
region = var.aws_region
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
data "local_file" "pgp_key" {
|
|
28
|
+
filename = "../public-key-binary.gpg"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
# Outputs
|
|
32
|
+
|
|
33
|
+
output "subspace_aws_access_key_id" {
|
|
34
|
+
value = aws_iam_access_key.ss.id
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
output "subspace_aws_encrypted_secret_access_key" {
|
|
38
|
+
value = aws_iam_access_key.ss.encrypted_secret
|
|
39
|
+
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: subspace
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.0.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Brian Samson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-07-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -80,20 +80,6 @@ dependencies:
|
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '1.0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: ed25519
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - "~>"
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '1.0'
|
|
90
|
-
type: :runtime
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - "~>"
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '1.0'
|
|
97
83
|
description: WIP -- don't use this :)
|
|
98
84
|
email:
|
|
99
85
|
- brian@tenforwardconsulting.com
|
|
@@ -114,6 +100,7 @@ files:
|
|
|
114
100
|
- README.md
|
|
115
101
|
- Rakefile
|
|
116
102
|
- TODO
|
|
103
|
+
- UPGRADING.md
|
|
117
104
|
- ansible/playbooks/local_template.yml
|
|
118
105
|
- ansible/playbooks/maintenance_mode.yml
|
|
119
106
|
- ansible/roles/alienvault/tasks/main.yml
|
|
@@ -143,6 +130,7 @@ files:
|
|
|
143
130
|
- ansible/roles/common/files/sudoers-service
|
|
144
131
|
- ansible/roles/common/handlers/main.yml
|
|
145
132
|
- ansible/roles/common/tasks/main.yml
|
|
133
|
+
- ansible/roles/common/tasks/no_swap.yml
|
|
146
134
|
- ansible/roles/common/tasks/swap.yml
|
|
147
135
|
- ansible/roles/common/templates/motd
|
|
148
136
|
- ansible/roles/common/templates/motd2
|
|
@@ -165,23 +153,8 @@ files:
|
|
|
165
153
|
- ansible/roles/logrotate/meta/main.yml
|
|
166
154
|
- ansible/roles/logrotate/tasks/main.yml
|
|
167
155
|
- ansible/roles/logrotate/templates/logrotate.d.j2
|
|
156
|
+
- ansible/roles/memcache/defaults/main.yml
|
|
168
157
|
- ansible/roles/memcache/tasks/main.yml
|
|
169
|
-
- ansible/roles/monit/files/monit-http.conf
|
|
170
|
-
- ansible/roles/monit/files/sudoers-monit
|
|
171
|
-
- ansible/roles/monit/handlers/main.yml
|
|
172
|
-
- ansible/roles/monit/tasks/main.yml
|
|
173
|
-
- ansible/roles/mtpereira.passenger/.bumpversion.cfg
|
|
174
|
-
- ansible/roles/mtpereira.passenger/.gitignore
|
|
175
|
-
- ansible/roles/mtpereira.passenger/LICENSE
|
|
176
|
-
- ansible/roles/mtpereira.passenger/README.md
|
|
177
|
-
- ansible/roles/mtpereira.passenger/defaults/main.yml
|
|
178
|
-
- ansible/roles/mtpereira.passenger/handlers/main.yml
|
|
179
|
-
- ansible/roles/mtpereira.passenger/meta/.galaxy_install_info
|
|
180
|
-
- ansible/roles/mtpereira.passenger/meta/main.yml
|
|
181
|
-
- ansible/roles/mtpereira.passenger/tasks/apt.yml
|
|
182
|
-
- ansible/roles/mtpereira.passenger/tasks/main.yml
|
|
183
|
-
- ansible/roles/mtpereira.passenger/tasks/pkg.yml
|
|
184
|
-
- ansible/roles/mtpereira.passenger/tasks/service.yml
|
|
185
158
|
- ansible/roles/mysql/meta/main.yml
|
|
186
159
|
- ansible/roles/mysql/tasks/main.yml
|
|
187
160
|
- ansible/roles/mysql/templates/mysql_database.yml
|
|
@@ -209,14 +182,10 @@ files:
|
|
|
209
182
|
- ansible/roles/nodejs/tasks/main.yml
|
|
210
183
|
- ansible/roles/papertrail/tasks/main.yml
|
|
211
184
|
- ansible/roles/papertrail/templates/log_files.yml
|
|
212
|
-
- ansible/roles/passenger/files/sudoers-passenger
|
|
213
|
-
- ansible/roles/passenger/meta/main.yml
|
|
214
|
-
- ansible/roles/passenger/tasks/main.yml
|
|
215
185
|
- ansible/roles/postgis/.gitignore
|
|
216
186
|
- ansible/roles/postgis/CHANGELOG.md
|
|
217
187
|
- ansible/roles/postgis/LICENSE
|
|
218
188
|
- ansible/roles/postgis/README.md
|
|
219
|
-
- ansible/roles/postgis/defaults/main.yml
|
|
220
189
|
- ansible/roles/postgis/meta/main.yml
|
|
221
190
|
- ansible/roles/postgis/tasks/main.yml
|
|
222
191
|
- ansible/roles/postgresql-client/tasks/main.yml
|
|
@@ -227,11 +196,11 @@ files:
|
|
|
227
196
|
- ansible/roles/postgresql/tasks/backups.yml
|
|
228
197
|
- ansible/roles/postgresql/tasks/main.yml
|
|
229
198
|
- ansible/roles/postgresql/templates/backup.sh
|
|
230
|
-
- ansible/roles/puma/defaults/main.yml
|
|
231
|
-
- ansible/roles/puma/meta/main.yml
|
|
232
199
|
- ansible/roles/puma/tasks/main.yml
|
|
233
200
|
- ansible/roles/puma/templates/etc-puma.conf
|
|
234
201
|
- ansible/roles/puma/templates/puma-monit-rc
|
|
202
|
+
- ansible/roles/puma/templates/puma-systemd.service
|
|
203
|
+
- ansible/roles/puma/templates/puma-systemd.socket
|
|
235
204
|
- ansible/roles/puma/templates/puma.rb
|
|
236
205
|
- ansible/roles/rails/defaults/main.yml
|
|
237
206
|
- ansible/roles/rails/tasks/main.yml
|
|
@@ -252,9 +221,11 @@ files:
|
|
|
252
221
|
- ansible/roles/ruby-common/vars/main.yml
|
|
253
222
|
- ansible/roles/sidekiq/README.md
|
|
254
223
|
- ansible/roles/sidekiq/defaults/main.yml
|
|
255
|
-
- ansible/roles/sidekiq/meta/main.yml
|
|
256
224
|
- ansible/roles/sidekiq/tasks/main.yml
|
|
257
225
|
- ansible/roles/sidekiq/templates/sidekiq-monit-rc
|
|
226
|
+
- ansible/roles/sidekiq/templates/sidekiq-systemd.service
|
|
227
|
+
- ansible/roles/tailscale/defaults/main.yml
|
|
228
|
+
- ansible/roles/tailscale/tasks/main.yml
|
|
258
229
|
- ansible/roles/yarn/tasks/main.yml
|
|
259
230
|
- ansible/roles/zenoamaro.postgresql/.gitignore
|
|
260
231
|
- ansible/roles/zenoamaro.postgresql/.travis.yml
|
|
@@ -287,32 +258,50 @@ files:
|
|
|
287
258
|
- lib/subspace/commands/base.rb
|
|
288
259
|
- lib/subspace/commands/bootstrap.rb
|
|
289
260
|
- lib/subspace/commands/configure.rb
|
|
261
|
+
- lib/subspace/commands/exec.rb
|
|
290
262
|
- lib/subspace/commands/init.rb
|
|
263
|
+
- lib/subspace/commands/inventory.rb
|
|
291
264
|
- lib/subspace/commands/maintain.rb
|
|
292
265
|
- lib/subspace/commands/maintenance_mode.rb
|
|
293
266
|
- lib/subspace/commands/override.rb
|
|
294
267
|
- lib/subspace/commands/provision.rb
|
|
268
|
+
- lib/subspace/commands/secrets.rb
|
|
295
269
|
- lib/subspace/commands/ssh.rb
|
|
296
|
-
- lib/subspace/commands/
|
|
270
|
+
- lib/subspace/commands/terraform.rb
|
|
297
271
|
- lib/subspace/configuration.rb
|
|
272
|
+
- lib/subspace/inventory.rb
|
|
298
273
|
- lib/subspace/version.rb
|
|
299
274
|
- subspace.gemspec
|
|
300
275
|
- template/provision.rb.erb
|
|
301
|
-
- template/
|
|
302
|
-
- template/
|
|
303
|
-
- template/
|
|
304
|
-
- template/
|
|
305
|
-
- template/
|
|
306
|
-
- template/
|
|
307
|
-
- template/
|
|
308
|
-
- template/
|
|
309
|
-
- template/
|
|
276
|
+
- template/subspace/.gitignore
|
|
277
|
+
- template/subspace/ansible.cfg.erb
|
|
278
|
+
- template/subspace/group_vars/all.erb
|
|
279
|
+
- template/subspace/group_vars/template.erb
|
|
280
|
+
- template/subspace/hosts.erb
|
|
281
|
+
- template/subspace/inventory.yml.erb
|
|
282
|
+
- template/subspace/playbook.yml.erb
|
|
283
|
+
- template/subspace/secrets/template.erb
|
|
284
|
+
- template/subspace/templates/application.yml.template
|
|
285
|
+
- template/subspace/templates/authorized_keys.erb
|
|
286
|
+
- template/subspace/terraform/.gitignore
|
|
287
|
+
- template/subspace/terraform/template/main-oxenwagen.tf.erb
|
|
288
|
+
- template/subspace/terraform/template/main-workhorse.tf.erb
|
|
289
|
+
- template/subspace/terraformrc.erb
|
|
290
|
+
- terraform/modules/s3_backend/README
|
|
291
|
+
- terraform/modules/s3_backend/dynamodb.tf
|
|
292
|
+
- terraform/modules/s3_backend/iam_user.tf
|
|
293
|
+
- terraform/modules/s3_backend/main.tf
|
|
294
|
+
- terraform/modules/s3_backend/state_bucket.tf
|
|
310
295
|
homepage: https://github.com/tenforwardconsulting/subspace
|
|
311
296
|
licenses:
|
|
312
297
|
- MIT
|
|
313
298
|
metadata:
|
|
314
299
|
allowed_push_host: https://rubygems.org
|
|
315
|
-
post_install_message:
|
|
300
|
+
post_install_message: |
|
|
301
|
+
*** Subspace 3 has many breaking changes
|
|
302
|
+
Primarily, the entire configuration directory structure has moved from config/provision to config/subspace.
|
|
303
|
+
You will need to migrate your old configuration to the new location, or downgrade to Subspace 2 if this was not intentional.
|
|
304
|
+
Please review the Upgrade guide: https://github.com/tenforwardconsulting/subspace/UPGRADING.md
|
|
316
305
|
rdoc_options: []
|
|
317
306
|
require_paths:
|
|
318
307
|
- lib
|
|
@@ -323,11 +312,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
323
312
|
version: '0'
|
|
324
313
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
325
314
|
requirements:
|
|
326
|
-
- - "
|
|
315
|
+
- - ">"
|
|
327
316
|
- !ruby/object:Gem::Version
|
|
328
|
-
version:
|
|
317
|
+
version: 1.3.1
|
|
329
318
|
requirements: []
|
|
330
|
-
rubygems_version: 3.3.
|
|
319
|
+
rubygems_version: 3.3.18
|
|
331
320
|
signing_key:
|
|
332
321
|
specification_version: 4
|
|
333
322
|
summary: Ansible-based server provisioning for rails projects
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
deploy ALL=(root) NOPASSWD: /usr/bin/monit
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: Configure monit to install instead of pin
|
|
3
|
-
dpkg_selections:
|
|
4
|
-
name: monit
|
|
5
|
-
selection: install
|
|
6
|
-
become: true
|
|
7
|
-
tags:
|
|
8
|
-
- monit
|
|
9
|
-
|
|
10
|
-
- name: install monit
|
|
11
|
-
apt:
|
|
12
|
-
name: monit
|
|
13
|
-
state: present
|
|
14
|
-
become: true
|
|
15
|
-
tags:
|
|
16
|
-
- monit
|
|
17
|
-
|
|
18
|
-
- name: Copy sudoers file so that deploy can use monit without entering password.
|
|
19
|
-
copy:
|
|
20
|
-
src: sudoers-monit
|
|
21
|
-
dest: /etc/sudoers.d/monit
|
|
22
|
-
become: true
|
|
23
|
-
tags:
|
|
24
|
-
- monit
|
|
25
|
-
|
|
26
|
-
- name: Copy monit config to enable http from localhost
|
|
27
|
-
copy:
|
|
28
|
-
src: monit-http.conf
|
|
29
|
-
dest: /etc/monit/conf.d/monit-http.conf
|
|
30
|
-
become: true
|
|
31
|
-
notify:
|
|
32
|
-
- restart_monit
|
|
33
|
-
tags:
|
|
34
|
-
- monit
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2014 Manuel Tiago Pereira
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
6
|
-
this software and associated documentation files (the "Software"), to deal in
|
|
7
|
-
the Software without restriction, including without limitation the rights to
|
|
8
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
9
|
-
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
10
|
-
subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
17
|
-
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
18
|
-
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
19
|
-
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
20
|
-
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
Passenger
|
|
2
|
-
========
|
|
3
|
-
|
|
4
|
-
Installs or updates Pushion Passenger.
|
|
5
|
-
|
|
6
|
-
It will install apache, nginx or standalone modes, depending on **passenger_webserver** variable value (defaults to standalone).
|
|
7
|
-
|
|
8
|
-
In the `tests` folder, there are a set of tests for this role, that will provision a VM using Vagrant and setup a simple hello world app. To use them, `cd` into the `tests/{passenger_webserver}/` and execute `vagrant up`. At the moment, only `apache` tests are done.
|
|
9
|
-
|
|
10
|
-
Requirements
|
|
11
|
-
------------
|
|
12
|
-
|
|
13
|
-
Assumes that the host is ansible-ready (check **mtpereira.common** role).
|
|
14
|
-
|
|
15
|
-
Role Variables
|
|
16
|
-
--------------
|
|
17
|
-
|
|
18
|
-
* `passenger_webserver`: Specifies the webserver to be used by passenger. Possible values: `apache`, `nginx` and `standalone`. Defaults to `standalone`.
|
|
19
|
-
* `passenger_pkgs_state`: Specifies if this role will garantee that the packages are installed or installed and updated. Possible values: `installed` and `latest`. Defaults to `installed`.
|
|
20
|
-
|
|
21
|
-
License
|
|
22
|
-
-------
|
|
23
|
-
|
|
24
|
-
MIT
|
|
25
|
-
|
|
26
|
-
Author Information
|
|
27
|
-
------------------
|
|
28
|
-
|
|
29
|
-
[GitHub project page](https://github.com/mtpereira/ansible-passenger)
|
|
30
|
-
|
|
31
|
-
[Manuel Tiago Pereira](http://mtpereira.github.io)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{install_date: 'Mon Jan 2 18:15:18 2017', version: 1.0.2}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
galaxy_info:
|
|
3
|
-
author: Manuel Tiago Pereira
|
|
4
|
-
description: Installs Phusion Passenger.
|
|
5
|
-
license: MIT
|
|
6
|
-
min_ansible_version: 1.4
|
|
7
|
-
platforms:
|
|
8
|
-
- name: Debian
|
|
9
|
-
versions:
|
|
10
|
-
- wheezy
|
|
11
|
-
- jessie
|
|
12
|
-
- name: Ubuntu
|
|
13
|
-
versions:
|
|
14
|
-
- lucid
|
|
15
|
-
- precise
|
|
16
|
-
- saucy
|
|
17
|
-
- trusty
|
|
18
|
-
categories:
|
|
19
|
-
- web
|
|
20
|
-
dependencies: []
|
|
21
|
-
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
- name: apt - add key for passenger repos
|
|
3
|
-
apt_key: url=http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x561F9B9CAC40B2F7 id=AC40B2F7 state=present
|
|
4
|
-
|
|
5
|
-
- name: apt - add support for https
|
|
6
|
-
apt: pkg={{ item }} state={{ passenger_pkgs_state }} update_cache=yes cache_valid_time=3600
|
|
7
|
-
with_items:
|
|
8
|
-
- apt-transport-https
|
|
9
|
-
- ca-certificates
|
|
10
|
-
|
|
11
|
-
- name: apt - add passenger repo
|
|
12
|
-
apt_repository: repo='deb https://oss-binaries.phusionpassenger.com/apt/passenger {{ ansible_lsb.codename }} main' state=present update_cache=yes
|
|
13
|
-
|