avm-tools 0.19.0 → 0.20.0
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/lib/avm/instances/base/auto_values.rb +1 -1
- data/lib/avm/instances/base/auto_values/admin.rb +19 -0
- data/lib/avm/instances/base/auto_values/web.rb +19 -0
- data/lib/avm/stereotypes/eac_rails_base0/apache_host.rb +82 -0
- data/lib/avm/stereotypes/eac_ubuntu_base0.rb +11 -0
- data/lib/avm/stereotypes/eac_ubuntu_base0/apache.rb +27 -0
- data/lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb +61 -0
- data/lib/avm/tools/runner/eac_rails_base0/apache_host.rb +40 -0
- data/lib/avm/tools/version.rb +1 -1
- data/template/avm/stereotypes/eac_rails_base0/apache_host/no_ssl.conf +11 -0
- metadata +9 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 243acbdeb6bf47023be05c689219226cb43d7d688b660f4239d3371ef0c8f77d
|
4
|
+
data.tar.gz: 60bf3e35ee6372cfaff53f9e37851087575ffee5906078307e6e73bfbf2e3b69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38b11f783aab60e1d7008fe0925c8782f1e2833d9e071d93bdc322b3a475863e47b57e308650febf5dcb06c095402d43d345d31f6d8b0032ed1751d638ca13c0
|
7
|
+
data.tar.gz: bd3f4ec62f6e1b30559a309d8cd44c6ceb565aa4e7413be3b85d0ff4251927977884259f8cec8d51b0f7de56a4566f8f851b42f3a83f4b5a489ea36fdeaec498
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avm
|
4
|
+
module Instances
|
5
|
+
class Base
|
6
|
+
module AutoValues
|
7
|
+
module Admin
|
8
|
+
def auto_admin_email
|
9
|
+
inherited_entry_value(:host_id, 'admin.email')
|
10
|
+
end
|
11
|
+
|
12
|
+
def auto_admin_name
|
13
|
+
inherited_entry_value(:host_id, 'admin.name')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'addressable'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Instances
|
7
|
+
class Base
|
8
|
+
module AutoValues
|
9
|
+
module Web
|
10
|
+
def auto_web_hostname
|
11
|
+
read_entry_optional('web.url').if_present do |v|
|
12
|
+
::Addressable::URI.parse(v).host
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'avm/stereotypes/eac_ubuntu_base0/apache'
|
5
|
+
require 'avm/templates/file'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Stereotypes
|
9
|
+
module EacRailsBase0
|
10
|
+
class ApacheHost
|
11
|
+
enable_console_speaker
|
12
|
+
enable_simple_cache
|
13
|
+
common_constructor :instance
|
14
|
+
|
15
|
+
def run
|
16
|
+
write_available_no_ssl_site
|
17
|
+
enable_no_ssl_site
|
18
|
+
remove_ssl_site
|
19
|
+
reload_apache
|
20
|
+
run_certbot
|
21
|
+
enable_ssl_site
|
22
|
+
reload_apache
|
23
|
+
::Avm::Result.success('Done')
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def apache_uncached
|
29
|
+
::Avm::Stereotypes::EacUbuntuBase0::Apache.new(instance.host_env)
|
30
|
+
end
|
31
|
+
|
32
|
+
def enable_no_ssl_site
|
33
|
+
infom 'Enabling no SSL site...'
|
34
|
+
no_ssl_site.enable
|
35
|
+
end
|
36
|
+
|
37
|
+
def enable_ssl_site
|
38
|
+
infom 'Enabling SSL site...'
|
39
|
+
ssl_site.enable
|
40
|
+
end
|
41
|
+
|
42
|
+
def no_ssl_site_content
|
43
|
+
::Avm::Templates::File.new(
|
44
|
+
::File.join(template_path, 'no_ssl.conf')
|
45
|
+
).apply(instance)
|
46
|
+
end
|
47
|
+
|
48
|
+
def no_ssl_site_uncached
|
49
|
+
apache.site(instance.id)
|
50
|
+
end
|
51
|
+
|
52
|
+
def reload_apache
|
53
|
+
infom 'Reloading Apache...'
|
54
|
+
apache.service('reload')
|
55
|
+
end
|
56
|
+
|
57
|
+
def remove_ssl_site
|
58
|
+
infom 'Removing SSL site...'
|
59
|
+
ssl_site.remove
|
60
|
+
end
|
61
|
+
|
62
|
+
def run_certbot
|
63
|
+
infom 'Running Certbot...'
|
64
|
+
instance.host_env.command(
|
65
|
+
'sudo', 'certbot', '--apache', '--domain', instance.read_entry('web.hostname'),
|
66
|
+
'--redirect', '--non-interactive', '--agree-tos',
|
67
|
+
'--email', instance.read_entry('admin.email')
|
68
|
+
).system!
|
69
|
+
end
|
70
|
+
|
71
|
+
def ssl_site_uncached
|
72
|
+
apache.site(no_ssl_site.name + '-le-ssl')
|
73
|
+
end
|
74
|
+
|
75
|
+
def write_available_no_ssl_site
|
76
|
+
infom 'Writing no SSL site conf...'
|
77
|
+
no_ssl_site.write(no_ssl_site_content)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/require_sub'
|
5
|
+
::EacRubyUtils.require_sub(__FILE__)
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Stereotypes
|
9
|
+
module EacUbuntuBase0
|
10
|
+
class Apache
|
11
|
+
common_constructor :host_env
|
12
|
+
|
13
|
+
def etc_root
|
14
|
+
'/etc/apache2'
|
15
|
+
end
|
16
|
+
|
17
|
+
def service(command)
|
18
|
+
host_env.command('sudo', 'service', 'apache2', command)
|
19
|
+
end
|
20
|
+
|
21
|
+
def site(name)
|
22
|
+
::Avm::Stereotypes::EacUbuntuBase0::Apache::Site.new(self, name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Stereotypes
|
7
|
+
module EacUbuntuBase0
|
8
|
+
class Apache
|
9
|
+
class Site
|
10
|
+
common_constructor :apache, :name
|
11
|
+
|
12
|
+
def available_path
|
13
|
+
::File.join(apache.etc_root, 'sites-available', "#{name}.conf")
|
14
|
+
end
|
15
|
+
|
16
|
+
def available?
|
17
|
+
apache.host_env.file(available_path).exist?
|
18
|
+
end
|
19
|
+
|
20
|
+
def disable
|
21
|
+
apache.host_env.command('sudo', 'a2dissite', name).execute!
|
22
|
+
end
|
23
|
+
|
24
|
+
def enable
|
25
|
+
apache.host_env.command('sudo', 'a2ensite', name).execute!
|
26
|
+
end
|
27
|
+
|
28
|
+
def enabled_path
|
29
|
+
::File.join(apache.etc_root, 'sites-enabled', "#{name}.conf")
|
30
|
+
end
|
31
|
+
|
32
|
+
def enabled?
|
33
|
+
apache.host_env.file(enabled_path).exist?
|
34
|
+
end
|
35
|
+
|
36
|
+
def remove
|
37
|
+
remove_disabled
|
38
|
+
remove_available
|
39
|
+
end
|
40
|
+
|
41
|
+
def remove_available
|
42
|
+
raise 'Remove enabled before' if enabled?
|
43
|
+
|
44
|
+
apache.host_env.command('sudo', 'rm', '-f', available_path).execute! if available?
|
45
|
+
end
|
46
|
+
|
47
|
+
def remove_disabled
|
48
|
+
disable if enabled?
|
49
|
+
apache.host_env.command('sudo', 'rm', '-f', enabled_path).execute! if enabled?
|
50
|
+
end
|
51
|
+
|
52
|
+
def write(content)
|
53
|
+
::EacRubyUtils::Envs.local.command('echo', content).pipe(
|
54
|
+
apache.host_env.command('sudo', 'tee', available_path)
|
55
|
+
).execute!
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
4
|
+
require 'eac_ruby_utils/console/speaker'
|
5
|
+
require 'avm/stereotypes/eac_rails_base0/apache_host'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Tools
|
9
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
10
|
+
class EacRailsBase0 < ::EacRubyUtils::Console::DocoptRunner
|
11
|
+
class ApacheHost < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
include ::EacRubyUtils::Console::Speaker
|
13
|
+
|
14
|
+
DOC = <<~DOCOPT
|
15
|
+
Deploy for EacRailsBase0 instance.
|
16
|
+
|
17
|
+
Usage:
|
18
|
+
__PROGRAM__ [options]
|
19
|
+
__PROGRAM__ -h | --help
|
20
|
+
|
21
|
+
Options:
|
22
|
+
-h --help Show this screen.
|
23
|
+
-r --reference=<git-reference> Git reference to deploy.
|
24
|
+
DOCOPT
|
25
|
+
|
26
|
+
def run
|
27
|
+
result = ::Avm::Stereotypes::EacRailsBase0::ApacheHost.new(
|
28
|
+
context(:instance)
|
29
|
+
).run
|
30
|
+
if result.error?
|
31
|
+
fatal_error result.to_s
|
32
|
+
else
|
33
|
+
infov 'Result', result.label
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/avm/tools/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
@@ -204,9 +204,11 @@ files:
|
|
204
204
|
- lib/avm/instances/base.rb
|
205
205
|
- lib/avm/instances/base/auto_values.rb
|
206
206
|
- lib/avm/instances/base/auto_values/access.rb
|
207
|
+
- lib/avm/instances/base/auto_values/admin.rb
|
207
208
|
- lib/avm/instances/base/auto_values/database.rb
|
208
209
|
- lib/avm/instances/base/auto_values/filesystem.rb
|
209
210
|
- lib/avm/instances/base/auto_values/source.rb
|
211
|
+
- lib/avm/instances/base/auto_values/web.rb
|
210
212
|
- lib/avm/instances/entries.rb
|
211
213
|
- lib/avm/instances/entries/entry_reader.rb
|
212
214
|
- lib/avm/patches.rb
|
@@ -215,8 +217,12 @@ files:
|
|
215
217
|
- lib/avm/result.rb
|
216
218
|
- lib/avm/stereotypes.rb
|
217
219
|
- lib/avm/stereotypes/eac_rails_base0.rb
|
220
|
+
- lib/avm/stereotypes/eac_rails_base0/apache_host.rb
|
218
221
|
- lib/avm/stereotypes/eac_rails_base0/deploy.rb
|
219
222
|
- lib/avm/stereotypes/eac_rails_base0/instance.rb
|
223
|
+
- lib/avm/stereotypes/eac_ubuntu_base0.rb
|
224
|
+
- lib/avm/stereotypes/eac_ubuntu_base0/apache.rb
|
225
|
+
- lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb
|
220
226
|
- lib/avm/stereotypes/eac_webapp_base0.rb
|
221
227
|
- lib/avm/stereotypes/eac_webapp_base0/deploy.rb
|
222
228
|
- lib/avm/stereotypes/eac_webapp_base0/instance.rb
|
@@ -233,6 +239,7 @@ files:
|
|
233
239
|
- lib/avm/tools/git.rb
|
234
240
|
- lib/avm/tools/runner.rb
|
235
241
|
- lib/avm/tools/runner/eac_rails_base0.rb
|
242
|
+
- lib/avm/tools/runner/eac_rails_base0/apache_host.rb
|
236
243
|
- lib/avm/tools/runner/eac_rails_base0/deploy.rb
|
237
244
|
- lib/avm/tools/runner/eac_wordpress_base0.rb
|
238
245
|
- lib/avm/tools/runner/eac_wordpress_base0/data.rb
|
@@ -249,6 +256,7 @@ files:
|
|
249
256
|
- lib/avm/tools/runner/git/issue.rb
|
250
257
|
- lib/avm/tools/runner/git/issue/complete.rb
|
251
258
|
- lib/avm/tools/version.rb
|
259
|
+
- template/avm/stereotypes/eac_rails_base0/apache_host/no_ssl.conf
|
252
260
|
- template/avm/stereotypes/eac_rails_base0/deploy/config/database.yml.template
|
253
261
|
- template/avm/stereotypes/eac_wordpress_base0/deploy/wp-config.php.template
|
254
262
|
homepage:
|