itamae-mitsurin 0.3 → 0.4
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/itamae/backend.rb +6 -2
- data/lib/itamae/mitsurin/creators/templates/project/Gemfile +1 -0
- data/lib/itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/default.rb +1 -0
- data/lib/itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base/spec/default_spec.rb +0 -1
- data/lib/itamae/mitsurin/creators/templates/project/spec/spec_helper.rb +2 -1
- data/lib/itamae/mitsurin/itamae_task.rb +8 -6
- data/lib/itamae/mitsurin/itamae_with_git_task.rb +4 -3
- data/lib/itamae/mitsurin/serverspec_task.rb +5 -1
- data/lib/itamae/mitsurin/version.txt +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb10fdaf74906a17da6f88364c2fd758f20d35ab
|
4
|
+
data.tar.gz: e0a64acfc4099cc9a7bc4f35ab612abefe7d4cb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1aa4b406d867b1fc844bcdba2f096eb2decb1065f7c257f9da8522652ac39e37ef4c1fae1966a0536308ee3721a1b8cbc72614b2f1d0565e0ff952d0058790f4
|
7
|
+
data.tar.gz: 4454340317f8a0e1a905c7b3e3778a17909b06f1a60df20cc1dff3eadd4036d6f3f5d3464168098c5ae67636c9a7d365a6b3f2ea4cc07fcd7526dda4fd78acf9
|
data/lib/itamae/backend.rb
CHANGED
@@ -251,8 +251,12 @@ module Itamae
|
|
251
251
|
|
252
252
|
if @options[:ask_password]
|
253
253
|
print "password: "
|
254
|
-
|
255
|
-
|
254
|
+
unless ENV['SSH_PASSWORD'].nil?
|
255
|
+
password = ENV['SSH_PASSWORD']
|
256
|
+
else
|
257
|
+
password = STDIN.noecho(&:gets).strip
|
258
|
+
end
|
259
|
+
print "\n"
|
256
260
|
opts.merge!(password: password)
|
257
261
|
end
|
258
262
|
|
data/lib/itamae/mitsurin/creators/templates/project/site-cookbooks/_base/_base/recipes/default.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
puts " LOAD : Environment set is " << node[:environments][:set]
|
@@ -23,9 +23,10 @@ attributes = JSON.parse(File.read(node_file), symbolize_names: true)
|
|
23
23
|
set_property attributes
|
24
24
|
|
25
25
|
options = Net::SSH::Config.for(host)
|
26
|
-
options[:user]
|
26
|
+
options[:user] = ENV['SSH_USER']
|
27
27
|
options[:password] = ENV['SSH_PASSWORD']
|
28
28
|
options[:keys] = ENV['SSH_KEY']
|
29
|
+
options[:port] = ENV['SSH_PORT']
|
29
30
|
|
30
31
|
set :host, options[:host_name] || host
|
31
32
|
set :shell, '/bin/bash'
|
@@ -102,7 +102,7 @@ module Itamae
|
|
102
102
|
exit 1
|
103
103
|
end
|
104
104
|
|
105
|
-
# get
|
105
|
+
# get recipes attr
|
106
106
|
recipe_attr_file = []
|
107
107
|
recipes.each do |recipe_h|
|
108
108
|
if recipe_h["#{recipe_h.keys.join}"].nil?
|
@@ -116,25 +116,25 @@ module Itamae
|
|
116
116
|
|
117
117
|
recipe_attr_file.flatten!
|
118
118
|
|
119
|
-
#
|
119
|
+
# recipes attr other=env
|
120
120
|
recipe_env_h_a = []
|
121
121
|
recipe_attr_file.each do |file|
|
122
122
|
recipe_h = JSON.parse(File.read(file), symbolize_names: true)
|
123
123
|
recipe_env_h_a << recipe_h.deep_merge(env_h)
|
124
124
|
end
|
125
125
|
|
126
|
-
# recipe attr other=
|
126
|
+
# recipe attr other=recipes_env
|
127
127
|
moto = recipe_env_h_a[0]
|
128
128
|
recipe_env_h_a.each {|hash| moto.deep_merge!(hash)}
|
129
129
|
recipe_env_h = moto
|
130
130
|
|
131
131
|
if recipe_env_h.nil?
|
132
|
-
#
|
132
|
+
# env attr other=node
|
133
133
|
node_env_h = env_h.deep_merge(node_h)
|
134
134
|
node_env_j = jq node_env_h
|
135
135
|
write_json(bname) {|file| file.puts node_env_j}
|
136
136
|
else
|
137
|
-
#
|
137
|
+
# recipe_env attr other=node
|
138
138
|
recipe_env_node_h = recipe_env_h.deep_merge(node_h)
|
139
139
|
recipe_env_node_j = jq recipe_env_node_h
|
140
140
|
write_json(bname) {|file| file.puts recipe_env_node_j}
|
@@ -145,12 +145,14 @@ module Itamae
|
|
145
145
|
node = node_property[:environments][:hostname]
|
146
146
|
ssh_user = node_property[:environments][:ssh_user]
|
147
147
|
ssh_password = node_property[:environments][:ssh_password]
|
148
|
+
sudo_password = node_property[:environments][:sudo_password]
|
148
149
|
ssh_port = node_property[:environments][:ssh_port]
|
149
150
|
ssh_key = node_property[:environments][:ssh_key]
|
150
151
|
|
151
152
|
ENV['TARGET_HOST'] = node
|
152
153
|
ENV['NODE_FILE'] = node_file
|
153
154
|
ENV['SSH_PASSWORD'] = ssh_password
|
155
|
+
ENV['SUDO_PASSWORD'] = sudo_password
|
154
156
|
|
155
157
|
command = "bundle exec itamae ssh"
|
156
158
|
command << " -h #{node}"
|
@@ -178,7 +180,7 @@ module Itamae
|
|
178
180
|
command << command_recipe.join
|
179
181
|
|
180
182
|
color.echos(:red ,%!Run Itamae to \"#{bname}\"!)
|
181
|
-
color.echos(:blue, %!
|
183
|
+
color.echos(:blue, %!Role List to \"#{get_roles(node_file).join(", ")}\"!)
|
182
184
|
run_list_noti = []
|
183
185
|
command_recipe.each {|c_recipe| run_list_noti << c_recipe.split("/") [2]}
|
184
186
|
color.echos(:green, %!Run List to \"#{run_list_noti.uniq.join(", ")}\"!)
|
@@ -76,7 +76,7 @@ module Itamae
|
|
76
76
|
namespace :itamae do
|
77
77
|
branches = Specinfra.backend.run_command('git branch')
|
78
78
|
branch = branches.stdout.split("\n").select{|a| /\*/ === a }
|
79
|
-
branch = branch.
|
79
|
+
branch = branch.join.gsub(/\* (.+)/, '\1')
|
80
80
|
if branch == 'staging'
|
81
81
|
branch = 'staging/**'
|
82
82
|
elsif branch == 'master'
|
@@ -84,7 +84,6 @@ module Itamae
|
|
84
84
|
else
|
85
85
|
branch = 'other/**'
|
86
86
|
end
|
87
|
-
end
|
88
87
|
|
89
88
|
Dir.glob("nodes/#{branch}/*.json").each do |node_file|
|
90
89
|
|
@@ -162,12 +161,14 @@ module Itamae
|
|
162
161
|
node = node_property[:environments][:hostname]
|
163
162
|
ssh_user = node_property[:environments][:ssh_user]
|
164
163
|
ssh_password = node_property[:environments][:ssh_password]
|
164
|
+
sudo_password = node_property[:environments][:sudo_password]
|
165
165
|
ssh_port = node_property[:environments][:ssh_port]
|
166
166
|
ssh_key = node_property[:environments][:ssh_key]
|
167
167
|
|
168
168
|
ENV['TARGET_HOST'] = node
|
169
169
|
ENV['NODE_FILE'] = node_file
|
170
170
|
ENV['SSH_PASSWORD'] = ssh_password
|
171
|
+
ENV['SUDO_PASSWORD'] = sudo_password
|
171
172
|
|
172
173
|
command = "bundle exec itamae ssh"
|
173
174
|
command << " -h #{node}"
|
@@ -195,7 +196,7 @@ module Itamae
|
|
195
196
|
command << command_recipe.join
|
196
197
|
|
197
198
|
color.echos(:red ,%!Run Itamae to \"#{bname}\"!)
|
198
|
-
color.echos(:blue, %!
|
199
|
+
color.echos(:blue, %!Role List to \"#{get_roles(node_file).join(", ")}\"!)
|
199
200
|
run_list_noti = []
|
200
201
|
command_recipe.each {|c_recipe| run_list_noti << c_recipe.split("/") [2]}
|
201
202
|
color.echos(:green, %!Run List to \"#{run_list_noti.uniq.join(", ")}\"!)
|
@@ -44,6 +44,8 @@ module Itamae
|
|
44
44
|
recipes
|
45
45
|
end
|
46
46
|
|
47
|
+
color = SimpleColor.new
|
48
|
+
|
47
49
|
namespace :spec do
|
48
50
|
all = []
|
49
51
|
Dir.glob("tmp-nodes/**/*.json").each do |node_file|
|
@@ -74,6 +76,7 @@ module Itamae
|
|
74
76
|
node_name = node_attr[:environments][:hostname]
|
75
77
|
ssh_user = node_attr[:environments][:ssh_user]
|
76
78
|
ssh_password = node_attr[:environments][:ssh_password]
|
79
|
+
sudo_password = node_attr[:environments][:sudo_password]
|
77
80
|
ssh_port = node_attr[:environments][:ssh_port]
|
78
81
|
ssh_key = node_attr[:environments][:ssh_key]
|
79
82
|
|
@@ -84,7 +87,9 @@ module Itamae
|
|
84
87
|
ENV['TARGET_HOST'] = node_name
|
85
88
|
ENV['NODE_FILE'] = node_file
|
86
89
|
ENV['SSH_PASSWORD'] = ssh_password
|
90
|
+
ENV['SUDO_PASSWORD'] = sudo_password
|
87
91
|
ENV['SSH_KEY'] = "keys/#{ssh_key}"
|
92
|
+
ENV['SSH_PORT'] = ssh_port
|
88
93
|
|
89
94
|
specs = "bundle exec rspec"
|
90
95
|
|
@@ -105,7 +110,6 @@ module Itamae
|
|
105
110
|
spec_pattern.each {|c_spec| run_list_noti << c_spec.split("/") [2]}
|
106
111
|
color.echos(:red ,%!Run Serverspec to \"#{node_name}\"!)
|
107
112
|
color.echos(:green, %!Run List to \"#{run_list_noti.uniq.join(", ")}\"!)
|
108
|
-
puts color.echos(:white, %!#{specs}!)
|
109
113
|
st = system specs
|
110
114
|
exit 1 unless st
|
111
115
|
end
|
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4
|