subspace 2.5.7 → 3.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +16 -0
  4. data/README.md +77 -21
  5. data/UPGRADING.md +10 -0
  6. data/ansible/roles/common/defaults/main.yml +0 -1
  7. data/ansible/roles/common/files/sudoers-service +1 -1
  8. data/ansible/roles/common/tasks/main.yml +18 -7
  9. data/ansible/roles/common/tasks/no_swap.yml +26 -0
  10. data/ansible/roles/common/templates/motd +1 -1
  11. data/ansible/roles/common/templates/motd2 +1 -1
  12. data/ansible/roles/delayed_job/tasks/main.yml +1 -1
  13. data/ansible/roles/memcache/defaults/main.yml +2 -0
  14. data/ansible/roles/memcache/tasks/main.yml +16 -1
  15. data/ansible/roles/newrelic-infra/tasks/main.yml +3 -3
  16. data/ansible/roles/nginx/tasks/main.yml +12 -3
  17. data/ansible/roles/puma/tasks/main.yml +32 -20
  18. data/ansible/roles/puma/templates/puma-systemd.service +36 -0
  19. data/ansible/roles/puma/templates/puma-systemd.socket +14 -0
  20. data/ansible/roles/puma/templates/puma.rb +5 -3
  21. data/ansible/roles/rails/defaults/main.yml +0 -7
  22. data/ansible/roles/redis/tasks/main.yml +7 -0
  23. data/ansible/roles/resque/tasks/main.yml +14 -0
  24. data/ansible/roles/resque/templates/resque-monit-rc +4 -0
  25. data/ansible/roles/resque/templates/resque-systemd.service +54 -0
  26. data/ansible/roles/ruby-common/tasks/main.yml +1 -16
  27. data/ansible/roles/sidekiq/defaults/main.yml +1 -1
  28. data/ansible/roles/sidekiq/tasks/main.yml +11 -15
  29. data/ansible/roles/sidekiq/templates/sidekiq-monit-rc +1 -1
  30. data/ansible/roles/sidekiq/templates/sidekiq-systemd.service +62 -0
  31. data/ansible/roles/tailscale/defaults/main.yml +2 -0
  32. data/ansible/roles/tailscale/tasks/main.yml +22 -0
  33. data/exe/subspace +1 -2
  34. data/lib/subspace/cli.rb +50 -14
  35. data/lib/subspace/commands/ansible.rb +16 -1
  36. data/lib/subspace/commands/base.rb +20 -5
  37. data/lib/subspace/commands/bootstrap.rb +16 -21
  38. data/lib/subspace/commands/configure.rb +2 -2
  39. data/lib/subspace/commands/exec.rb +20 -0
  40. data/lib/subspace/commands/init.rb +94 -45
  41. data/lib/subspace/commands/inventory.rb +45 -0
  42. data/lib/subspace/commands/maintain.rb +1 -1
  43. data/lib/subspace/commands/provision.rb +1 -3
  44. data/lib/subspace/commands/{vars.rb → secrets.rb} +6 -5
  45. data/lib/subspace/commands/ssh.rb +10 -8
  46. data/lib/subspace/commands/terraform.rb +83 -0
  47. data/lib/subspace/inventory.rb +144 -0
  48. data/lib/subspace/version.rb +1 -1
  49. data/subspace.gemspec +8 -1
  50. data/template/{provision → subspace}/.gitignore +3 -0
  51. data/template/subspace/ansible.cfg.erb +16 -0
  52. data/template/subspace/group_vars/all.erb +28 -0
  53. data/template/subspace/group_vars/template.erb +26 -0
  54. data/template/{provision → subspace}/hosts.erb +0 -0
  55. data/template/subspace/inventory.yml.erb +11 -0
  56. data/template/{provision → subspace}/playbook.yml.erb +2 -5
  57. data/template/{provision/vars → subspace/secrets}/template.erb +0 -0
  58. data/template/{provision → subspace}/templates/application.yml.template +0 -0
  59. data/template/subspace/templates/authorized_keys.erb +1 -0
  60. data/template/subspace/terraform/.gitignore +2 -0
  61. data/template/subspace/terraform/template/main-oxenwagen.tf.erb +116 -0
  62. data/template/subspace/terraform/template/main-workhorse.tf.erb +41 -0
  63. data/template/subspace/terraformrc.erb +9 -0
  64. data/terraform/modules/s3_backend/README +2 -0
  65. data/terraform/modules/s3_backend/dynamodb.tf +1 -0
  66. data/terraform/modules/s3_backend/iam_user.tf +38 -0
  67. data/terraform/modules/s3_backend/main.tf +39 -0
  68. data/terraform/modules/s3_backend/state_bucket.tf +14 -0
  69. metadata +45 -39
  70. data/ansible/roles/monit/files/monit-http.conf +0 -3
  71. data/ansible/roles/monit/files/sudoers-monit +0 -1
  72. data/ansible/roles/monit/handlers/main.yml +0 -14
  73. data/ansible/roles/monit/tasks/main.yml +0 -34
  74. data/ansible/roles/mtpereira.passenger/.bumpversion.cfg +0 -7
  75. data/ansible/roles/mtpereira.passenger/.gitignore +0 -2
  76. data/ansible/roles/mtpereira.passenger/LICENSE +0 -20
  77. data/ansible/roles/mtpereira.passenger/README.md +0 -31
  78. data/ansible/roles/mtpereira.passenger/defaults/main.yml +0 -5
  79. data/ansible/roles/mtpereira.passenger/handlers/main.yml +0 -8
  80. data/ansible/roles/mtpereira.passenger/meta/.galaxy_install_info +0 -1
  81. data/ansible/roles/mtpereira.passenger/meta/main.yml +0 -21
  82. data/ansible/roles/mtpereira.passenger/tasks/apt.yml +0 -13
  83. data/ansible/roles/mtpereira.passenger/tasks/main.yml +0 -8
  84. data/ansible/roles/mtpereira.passenger/tasks/pkg.yml +0 -35
  85. data/ansible/roles/mtpereira.passenger/tasks/service.yml +0 -8
  86. data/ansible/roles/passenger/files/sudoers-passenger +0 -1
  87. data/ansible/roles/passenger/meta/main.yml +0 -6
  88. data/ansible/roles/passenger/tasks/main.yml +0 -5
  89. data/ansible/roles/postgis/defaults/main.yml +0 -2
  90. data/ansible/roles/puma/defaults/main.yml +0 -5
  91. data/ansible/roles/puma/meta/main.yml +0 -5
  92. data/ansible/roles/sidekiq/meta/main.yml +0 -5
  93. data/template/provision/ansible.cfg.erb +0 -9
  94. data/template/provision/group_vars/all.erb +0 -17
  95. data/template/provision/group_vars/template.erb +0 -11
  96. data/template/provision/host_vars/template.erb +0 -4
@@ -1,8 +0,0 @@
1
- ---
2
- - import_tasks: apt.yml
3
- tags: passenger_apt
4
- - import_tasks: pkg.yml
5
- tags: passenger_pkg
6
- - import_tasks: service.yml
7
- tags: passenger_service
8
- when: passenger_webserver != "standalone"
@@ -1,35 +0,0 @@
1
- ---
2
- - name: pkg - install apache passenger packages
3
- apt: pkg={{ item }} state={{ passenger_pkgs_state }}
4
- with_items:
5
- - libapache2-mod-passenger
6
- - apache2
7
- notify: apache restart
8
- when: passenger_webserver == "apache"
9
-
10
- - name: pkg - install nginx passenger packages
11
- apt: pkg={{ item }} state={{ passenger_pkgs_state }}
12
- with_items:
13
- - nginx-extras
14
- - passenger
15
- notify: nginx restart
16
- when: passenger_webserver == "nginx"
17
-
18
- - name: pkg - install standalone passenger packages
19
- apt: pkg={{ item }} state={{ passenger_pkgs_state }}
20
- with_items:
21
- - passenger
22
- when: passenger_webserver == "standalone"
23
-
24
- - name: pkg - fix passenger utils shebang
25
- lineinfile:
26
- dest: "{{ item }}"
27
- regexp: '^#\!/usr/bin/ruby\s*'
28
- line: "#!/usr/bin/env ruby"
29
- backrefs: yes
30
- state: present
31
- with_items:
32
- - /usr/sbin/passenger-memory-stats
33
- - /usr/sbin/passenger-status
34
- when: passenger_pkgs_fix_shebang
35
-
@@ -1,8 +0,0 @@
1
- ---
2
- - name: service - ensure apache is running
3
- service: name=apache2 state=started enabled=yes
4
- when: passenger_webserver == "apache"
5
-
6
- - name: service - ensure nginx is running
7
- service: name=nginx state=started enabled=yes
8
- when: passenger_webserver == "nginx"
@@ -1 +0,0 @@
1
- deploy ALL=(root) NOPASSWD: /usr/sbin/passenger-status
@@ -1,6 +0,0 @@
1
- ---
2
- dependencies:
3
- - {
4
- role: mtpereira.passenger,
5
- become: true
6
- }
@@ -1,5 +0,0 @@
1
- - name: Add sudoers.d file so that deploy can run passenger-status without entering password.
2
- copy:
3
- src: sudoers-passenger
4
- dest: /etc/sudoers.d/passenger
5
- become: true
@@ -1,2 +0,0 @@
1
- ---
2
- postgis_version: "2.3"
@@ -1,5 +0,0 @@
1
- ---
2
- puma_workers: 1
3
- puma_min_threads: 4
4
- puma_max_threads: 16
5
-
@@ -1,5 +0,0 @@
1
- ---
2
- dependencies:
3
- - {
4
- role: monit
5
- }
@@ -1,5 +0,0 @@
1
- ---
2
- dependencies:
3
- - {
4
- role: monit
5
- }
@@ -1,9 +0,0 @@
1
- [defaults]
2
- inventory = hosts
3
- forks = 10
4
- roles_path = ./roles:<%= File.join(gem_path, 'ansible', 'roles') %>:/etc/ansible/roles
5
- vault_password_file = .vault_pass
6
-
7
- [ssh_connection]
8
- pipelining=True
9
- control_path = %(directory)s/%%h-%%p-%%r
@@ -1,17 +0,0 @@
1
- # Conventions and defaults are defined here
2
- project_name: <%= project_name %>
3
- database_host: localhost
4
- use_sudo: true
5
-
6
- # ruby-common
7
- # pull the checksum/url from https://www.ruby-lang.org/en/downloads/
8
- ruby_version: ruby-2.7.1
9
- ruby_checksum: d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418
10
- ruby_download_location: https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.gz
11
- bundler_version: 2.1.4
12
-
13
- # Other stuff
14
- letsencrypt_email:
15
- nodejs_version: 13.x
16
- ssl_enabled: true
17
- postgresql_version: 11.7
@@ -1,11 +0,0 @@
1
- # rails
2
- rails_env: <%= @env %>
3
- # apache
4
- server_name: "{{ansible_ssh_host}}"
5
-
6
- # postgresql
7
- postgresql_authentication:
8
- - type: local
9
- user: "{{database_user}}"
10
- database: 'all'
11
- method: trust
@@ -1,4 +0,0 @@
1
- ---
2
- ansible_ssh_host: change-me
3
- ansible_ssh_user: ubuntu
4
- hostname: <%= @hostname %>