deploy_mate 0.18.2 → 0.18.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/deploy-mate.gemspec +2 -2
- data/lib/capistrano/tasks/machine.rake +34 -0
- data/lib/deploy_mate/tasks.rake +18 -17
- data/lib/deploy_mate/templates/deploy.rb.erb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8015a223be95cf034bc92c203370e527b870b59a
|
4
|
+
data.tar.gz: a68d6e4be14b9b7fba434ffb3ca62cded6afdbad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f78cc6d64ad514db68e0e964d2a765bd5d9d20ef6c6410dd27d920ec6db39413376af3fc3db1860410c9cec9bd36f194ae0fad4e6f5771417f584ab7bad50b01
|
7
|
+
data.tar.gz: b4cbdd8fc83c41247a7729a494db321a1762dabb330cdcd23f1f8f9b270a00c165c7c50694159b0589fe923515c003da9381af03700ae834503a5d2aeeaea6ad
|
data/README.md
CHANGED
@@ -29,6 +29,7 @@ It uses the following Capistrano-roles to divide the installed components:
|
|
29
29
|
- **cronjobs**: [OPTIONAL] For environments where `whenever` should manage/run cronjobs
|
30
30
|
|
31
31
|
## Changelog
|
32
|
+
* **0.18.3 (2016-03-22)**: Added mandatory task to install `ssh_key`s
|
32
33
|
* **0.18.2 (2016-03-08)**: Added basic DDoS and flooding-proof via nginx `req_limit` and `fail2ban`
|
33
34
|
* **0.18.1 (2016-03-01)**: Added support for memcached
|
34
35
|
* **0.18 (2016-02-25)**: Added support for capistrano 3.4, Ask before overwriting existing config-files
|
data/deploy-mate.gemspec
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "deploy_mate"
|
3
|
-
s.version = "0.18.
|
3
|
+
s.version = "0.18.3"
|
4
4
|
|
5
5
|
s.authors = ["Tim Adler", "Marcus Geißler", "Johannes Strampe"]
|
6
|
-
s.date = %q{2016-
|
6
|
+
s.date = %q{2016-03-22}
|
7
7
|
s.description = %q{This is how we deploy around here.}
|
8
8
|
s.summary = s.description
|
9
9
|
s.email = %q{development (at) hanseventures (dot) com}
|
@@ -7,6 +7,7 @@ namespace :machine do
|
|
7
7
|
on roles(:app) do
|
8
8
|
apt_get_update
|
9
9
|
end
|
10
|
+
invoke "machine:install:ssh_keys"
|
10
11
|
invoke "machine:install:htop"
|
11
12
|
invoke "machine:install:language_pack_de"
|
12
13
|
invoke "machine:install:unattended_upgrades"
|
@@ -52,6 +53,7 @@ namespace :machine do
|
|
52
53
|
end
|
53
54
|
before :setup, "deploy:ensure_folder"
|
54
55
|
|
56
|
+
desc "Install all dependencies"
|
55
57
|
namespace :install do
|
56
58
|
task :set_defaults do
|
57
59
|
on roles(:app) do
|
@@ -140,6 +142,10 @@ namespace :machine do
|
|
140
142
|
task :ntp do
|
141
143
|
on roles(:app) do
|
142
144
|
apt_get_install("ntp") unless is_package_installed?("ntp")
|
145
|
+
sudo "chmod 666 /etc/timezone"
|
146
|
+
execute 'echo "Europe/Berlin" > /etc/timezone'
|
147
|
+
sudo "chmod 644 /etc/timezone"
|
148
|
+
sudo "dpkg-reconfigure -f noninteractive tzdata"
|
143
149
|
end
|
144
150
|
end
|
145
151
|
|
@@ -179,6 +185,34 @@ namespace :machine do
|
|
179
185
|
end
|
180
186
|
end
|
181
187
|
|
188
|
+
desc "Installs new SSH Keys"
|
189
|
+
task :ssh_keys do
|
190
|
+
on roles(:app) do
|
191
|
+
file_names = fetch(:ssh_file_names)
|
192
|
+
|
193
|
+
puts "Installing SSH Keys from '#{file_names}'..."
|
194
|
+
|
195
|
+
keys = []
|
196
|
+
Dir.glob(File.expand_path(file_names)).each do |file_name|
|
197
|
+
next if File.directory?(file_name)
|
198
|
+
key_as_string = File.read(file_name)
|
199
|
+
|
200
|
+
if key_as_string.start_with?("ssh-rsa")
|
201
|
+
keys << key_as_string
|
202
|
+
puts file_name
|
203
|
+
else
|
204
|
+
warn "#{file_name} is NO publickey"
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
fail "No ssh-keys found in #{file_names}." unless keys.any?
|
209
|
+
|
210
|
+
upload!(StringIO.new(keys.join("")), 'new_keys')
|
211
|
+
sudo "rm ~/.ssh/authorized_keys"
|
212
|
+
sudo "mv new_keys ~/.ssh/authorized_keys"
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
182
216
|
task :update_rvm_key do
|
183
217
|
on roles(:app) do
|
184
218
|
execute :gpg, "--keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3"
|
data/lib/deploy_mate/tasks.rake
CHANGED
@@ -5,23 +5,24 @@ namespace :deploy_mate do
|
|
5
5
|
desc 'Installs the needed capistrano files to deploy with the mate.'
|
6
6
|
task :install do |t,args|
|
7
7
|
puts "I'm your DEPLOY_MATE."
|
8
|
-
puts "We will
|
9
|
-
|
10
|
-
@app_name =
|
11
|
-
@stage_name =
|
12
|
-
@ssh_name =
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
18
|
-
@
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
23
|
-
@
|
24
|
-
@
|
8
|
+
puts "We will set up your deployment now."
|
9
|
+
|
10
|
+
@app_name = ask("[01/16] App-Name (for nginx, servers, etc.)", guess_app_name)
|
11
|
+
@stage_name = ask("[02/16] Give the first stage a name", "prestage")
|
12
|
+
@ssh_name = ask("[03/16] SSH-Hostname for the server", "#{@app_name}-#{@stage_name}")
|
13
|
+
@ssh_file_names = ask("[04/16] SSH Keys to be installed", "~/.ssh/*.pub")
|
14
|
+
@ruby_version = ask("[05/16] Ruby-Version (the RVM-way, e.g. ruby-2.2.0)", guess_ruby_version)
|
15
|
+
@db_engine = ask_until("[06/16] What db are you using?", %w( postgresql mysql ), "mysql")
|
16
|
+
@app_server = ask_until("[07/16] What app server do you want to use?", %w( unicorn puma ), "unicorn")
|
17
|
+
@repo_url = ask("[08/16] Url-Location of git-repo", "git@github.com:hanseventures/#{@app_name}.git")
|
18
|
+
@is_rails = yes_or_no?("[09/16] Is this a RAILS project ?", (rails_present? ? "yes" : "no"))
|
19
|
+
@needs_imagemagick = yes_or_no?("[10/16] Does this project need ImageMagick ?", (needs_imagemagick? ? "yes" : "no"))
|
20
|
+
@uses_sidekiq = yes_or_no?("[11/16] Does this project use Sidekiq ?", (uses_sidekiq? ? "yes" : "no"))
|
21
|
+
@branch_name = ask("[12/16] Branch to deploy '#{@stage_name}' from", "dev")
|
22
|
+
@host_name = ask("[13/16] Web-URL for '#{@stage_name}'", "#{@stage_name}.#{@app_name}")
|
23
|
+
@environment = ask("[14/16] #{@stage_name}'s environment (RACK_ENV/RAILS_ENV)", "#{@stage_name}")
|
24
|
+
@needs_elasticsearch = yes_or_no?("[15/16] Do you need ElasticSearch on this machine ?", "no")
|
25
|
+
@needs_memcached = yes_or_no?("[16/16] Do you need Memcached on this machine ?", (needs_memcached? ? "yes" : "no"))
|
25
26
|
|
26
27
|
puts "Aye!"
|
27
28
|
puts "Worrrrking..."
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: deploy_mate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.18.
|
4
|
+
version: 0.18.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Adler
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-03-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: capistrano
|