conjure 0.3.0 → 0.3.1

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.
data/History.md CHANGED
@@ -1,3 +1,9 @@
1
+ ### Version 0.3.1
2
+ 2016-01-08
3
+
4
+ * Firewall all nonessential ports when creating cloud server instances
5
+ * Set up log rotation for deployed apps
6
+
1
7
  ### Version 0.3.0
2
8
  2016-01-04
3
9
 
@@ -0,0 +1,32 @@
1
+ module Conjure
2
+ class Firewall
3
+ def initialize(server)
4
+ @server = server
5
+ end
6
+
7
+ def install
8
+ if exists?
9
+ puts "Firewall detected."
10
+ else
11
+ puts "Firewall not detected, installing..."
12
+ open_ports.each { |port| @server.run "ufw allow #{port}/tcp" }
13
+ @server.run "ufw --force enable"
14
+ puts "Firewall installed."
15
+ end
16
+ end
17
+
18
+ def pending_files
19
+ []
20
+ end
21
+
22
+ private
23
+
24
+ def open_ports
25
+ [22, 80, 443, 2222]
26
+ end
27
+
28
+ def exists?
29
+ @server.run("ufw status").include? "Status: active"
30
+ end
31
+ end
32
+ end
@@ -1,4 +1,5 @@
1
1
  require "conjure/docker/host"
2
+ require "conjure/firewall"
2
3
  require "conjure/rails_application"
3
4
  require "conjure/server"
4
5
  require "conjure/swap"
@@ -49,6 +50,7 @@ module Conjure
49
50
 
50
51
  def components
51
52
  @components ||= [
53
+ Firewall.new(@server),
52
54
  Swap.new(@server),
53
55
  RailsApplication.new(Docker::Host.new(@server), @options),
54
56
  ]
@@ -0,0 +1,28 @@
1
+ module Conjure
2
+ class LogRotate
3
+ def initialize(options)
4
+ @rails_env = options[:rails_env]
5
+ end
6
+
7
+ def apply(template)
8
+ template.add_file_data config_file, "/etc/logrotate.d/application"
9
+ end
10
+
11
+ def system_packages
12
+ end
13
+
14
+ private
15
+
16
+ def config_file
17
+ '/home/app/application/shared/log/*.log {
18
+ daily
19
+ rotate 14
20
+ missingok
21
+ compress
22
+ delaycompress
23
+ copytruncate
24
+ }
25
+ '
26
+ end
27
+ end
28
+ end
@@ -1,4 +1,5 @@
1
1
  require "conjure/delayed_job"
2
+ require "conjure/log_rotate"
2
3
  require "conjure/postgres"
3
4
  require "conjure/passenger"
4
5
 
@@ -24,7 +25,10 @@ module Conjure
24
25
  database = Postgres.new(@container_host),
25
26
  Passenger.new(@container_host, @options.merge(
26
27
  database: database,
27
- services: [DelayedJob.new(@options)],
28
+ services: [
29
+ DelayedJob.new(@options),
30
+ LogRotate.new(@options),
31
+ ],
28
32
  )),
29
33
  ]
30
34
  end
@@ -1,3 +1,3 @@
1
1
  module Conjure
2
- VERSION = "0.3.0" unless defined?(VERSION)
2
+ VERSION = "0.3.1" unless defined?(VERSION)
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-04 00:00:00.000000000 Z
12
+ date: 2016-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-scp
@@ -170,8 +170,10 @@ files:
170
170
  - lib/conjure/digital_ocean/key_set.rb
171
171
  - lib/conjure/docker/host.rb
172
172
  - lib/conjure/docker/template.rb
173
+ - lib/conjure/firewall.rb
173
174
  - lib/conjure/http_request.rb
174
175
  - lib/conjure/instance.rb
176
+ - lib/conjure/log_rotate.rb
175
177
  - lib/conjure/passenger.rb
176
178
  - lib/conjure/postgres.rb
177
179
  - lib/conjure/rails_application.rb