deploy_mate 0.18.2 → 0.18.3
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/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
|