demae 0.1.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 +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/README.md +53 -0
- data/Rakefile +10 -0
- data/bin/demae +4 -0
- data/demae.gemspec +27 -0
- data/lib/demae/cli.rb +50 -0
- data/lib/demae/templates/environment.yml +7 -0
- data/lib/demae/version.rb +3 -0
- data/lib/demae.rb +5 -0
- data/test/demae_test.rb +11 -0
- data/test/test_helper.rb +4 -0
- metadata +141 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cfdd036fcd9b7d17754f8a3551ca5d3b4cb45d33
|
4
|
+
data.tar.gz: 370a756770f65602945f4b7ee50bc83a5b4d7fa4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c2ff3d5edb1e17ae9e9c8db0a7f9696140b2f9f1aae7bbe538632f3801ecf40f3a6cd4d918228270070b8425b17926dd117a380ed27ec1ebbbb8ca93c947f37a
|
7
|
+
data.tar.gz: 4d7551897e24146c6e054b929fbff9a09f3605a63149cd69a7240217637b547db5f25ceaf84c7b188ca82348aacda6423ab99ac14c86bb222d597b73cf8d119a
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# Demae
|
2
|
+
|
3
|
+
**Demae** is Itamae ssh runner for nodes on environment.
|
4
|
+
|
5
|
+
This enable:
|
6
|
+
|
7
|
+
```
|
8
|
+
$ bundle exec demae apply staging
|
9
|
+
```
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'demae'
|
17
|
+
```
|
18
|
+
|
19
|
+
And then execute:
|
20
|
+
|
21
|
+
```
|
22
|
+
$ bundle
|
23
|
+
```
|
24
|
+
|
25
|
+
## Initialize
|
26
|
+
|
27
|
+
Execute:
|
28
|
+
|
29
|
+
```
|
30
|
+
$ bundle exec demae install
|
31
|
+
```
|
32
|
+
|
33
|
+
Then these files are created.
|
34
|
+
|
35
|
+
```
|
36
|
+
.
|
37
|
+
└── config
|
38
|
+
└── demae
|
39
|
+
├── production.yml
|
40
|
+
└── staging.yml
|
41
|
+
|
42
|
+
```
|
43
|
+
|
44
|
+
## Usage
|
45
|
+
|
46
|
+
First, write itamae recipes.
|
47
|
+
And modify config/demae/staging.yml.
|
48
|
+
|
49
|
+
And then execute:
|
50
|
+
|
51
|
+
```
|
52
|
+
$ bundle exec demae apply staging
|
53
|
+
```
|
data/Rakefile
ADDED
data/bin/demae
ADDED
data/demae.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'demae/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'demae'
|
8
|
+
spec.version = Demae::VERSION
|
9
|
+
spec.authors = ['maruware']
|
10
|
+
spec.email = ['me@maruware.com']
|
11
|
+
|
12
|
+
spec.summary = 'Itamae ssh runner for nodes on environment.'
|
13
|
+
spec.description = 'Itamae ssh runner for nodes on environment.'
|
14
|
+
spec.homepage = 'https://github.com/maruware/demae'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
17
|
+
spec.bindir = 'bin'
|
18
|
+
spec.executables = ['demae']
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_dependency 'hashie'
|
22
|
+
spec.add_dependency 'thor'
|
23
|
+
spec.add_dependency 'itamae'
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.11'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
27
|
+
end
|
data/lib/demae/cli.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'yaml'
|
3
|
+
require 'itamae/cli'
|
4
|
+
|
5
|
+
module Demae
|
6
|
+
class CLI < Thor
|
7
|
+
CONFIG_DIR = 'config/demae'
|
8
|
+
|
9
|
+
def initialize(*)
|
10
|
+
super
|
11
|
+
Itamae.logger.level = ::Logger.const_get('INFO')
|
12
|
+
Itamae.logger.formatter.colored = true
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'install', 'create initial config file'
|
16
|
+
def install
|
17
|
+
templates_dir = File.expand_path('../templates', __FILE__)
|
18
|
+
FileUtils.mkdir_p(CONFIG_DIR)
|
19
|
+
%w(staging production).each do |environment|
|
20
|
+
FileUtils.copy("#{templates_dir}/environment.yml", config_path(environment))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'apply', 'apply itamae recipes to environment'
|
25
|
+
def apply(environment)
|
26
|
+
config = YAML.load_file(config_path(environment))
|
27
|
+
config.each do |server|
|
28
|
+
server['hosts'].each do |host|
|
29
|
+
options = {
|
30
|
+
host: host,
|
31
|
+
vagrant: false,
|
32
|
+
ask_password: false,
|
33
|
+
sudo: true
|
34
|
+
}
|
35
|
+
o = server.reject { |k, _| %w(hosts recipes).include? k }
|
36
|
+
o = o.each_with_object({}) { |(k, v), memo| memo[k.to_sym] = v }
|
37
|
+
options.merge!(o)
|
38
|
+
|
39
|
+
runner = Itamae::Runner.run(server['recipes'], :ssh, options)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def config_path(environment)
|
47
|
+
"#{CONFIG_DIR}/#{environment}.yml"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
data/lib/demae.rb
ADDED
data/test/demae_test.rb
ADDED
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: demae
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- maruware
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: hashie
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: thor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: itamae
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.11'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.11'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '5.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '5.0'
|
97
|
+
description: Itamae ssh runner for nodes on environment.
|
98
|
+
email:
|
99
|
+
- me@maruware.com
|
100
|
+
executables:
|
101
|
+
- demae
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
107
|
+
- Gemfile
|
108
|
+
- README.md
|
109
|
+
- Rakefile
|
110
|
+
- bin/demae
|
111
|
+
- demae.gemspec
|
112
|
+
- lib/demae.rb
|
113
|
+
- lib/demae/cli.rb
|
114
|
+
- lib/demae/templates/environment.yml
|
115
|
+
- lib/demae/version.rb
|
116
|
+
- test/demae_test.rb
|
117
|
+
- test/test_helper.rb
|
118
|
+
homepage: https://github.com/maruware/demae
|
119
|
+
licenses: []
|
120
|
+
metadata: {}
|
121
|
+
post_install_message:
|
122
|
+
rdoc_options: []
|
123
|
+
require_paths:
|
124
|
+
- lib
|
125
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
130
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
|
+
requirements:
|
132
|
+
- - ">="
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '0'
|
135
|
+
requirements: []
|
136
|
+
rubyforge_project:
|
137
|
+
rubygems_version: 2.4.5.1
|
138
|
+
signing_key:
|
139
|
+
specification_version: 4
|
140
|
+
summary: Itamae ssh runner for nodes on environment.
|
141
|
+
test_files: []
|