serverspec 0.2.7 → 0.2.8
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/.gitignore +1 -0
- data/README.md +11 -51
- data/lib/serverspec.rb +1 -0
- data/lib/serverspec/backend/exec.rb +12 -0
- data/lib/serverspec/helper.rb +1 -0
- data/lib/serverspec/helper/detect_os.rb +9 -0
- data/lib/serverspec/helper/exec.rb +2 -2
- data/lib/serverspec/helper/ssh.rb +2 -2
- data/lib/serverspec/setup.rb +8 -8
- data/lib/serverspec/version.rb +1 -1
- metadata +88 -77
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Serverspec [](http://travis-ci.org/mizzy/serverspec)
|
1
|
+
# Serverspec [](http://travis-ci.org/mizzy/serverspec)
|
2
2
|
|
3
3
|
RSpec tests for your servers provisioned by Puppet, Chef or anything else
|
4
4
|
|
@@ -37,11 +37,11 @@ Input target host name: www.example.jp
|
|
37
37
|
|
38
38
|
Select OS type of target host:
|
39
39
|
|
40
|
-
1)
|
41
|
-
2)
|
42
|
-
3)
|
43
|
-
4)
|
44
|
-
5)
|
40
|
+
1) Auto Detect
|
41
|
+
2) Red Hat
|
42
|
+
3) Debian
|
43
|
+
4) Gentoo
|
44
|
+
5) Solaris
|
45
45
|
|
46
46
|
Select number: 1
|
47
47
|
|
@@ -99,9 +99,12 @@ Finished in 0.99715 seconds
|
|
99
99
|
----
|
100
100
|
## Multi OS support
|
101
101
|
|
102
|
-
Serverspec is supporting Red Hat based OS, Debian based OS, Gentoo and Solaris
|
102
|
+
Serverspec is supporting Red Hat based OS, Debian based OS, Gentoo and Solaris.
|
103
|
+
|
104
|
+
Serverspec can detect target host's OS automatically.
|
105
|
+
|
106
|
+
If you'd like to set target host's OS explicitly, you should include `Serverspec::Helper::OSName` like this.
|
103
107
|
|
104
|
-
If your target host's OS is Debian, you should include `Serverspec::Helper::Debian` like this.
|
105
108
|
|
106
109
|
```ruby
|
107
110
|
require 'serverspec'
|
@@ -128,49 +131,6 @@ RSpec.configure do |c|
|
|
128
131
|
end
|
129
132
|
```
|
130
133
|
|
131
|
-
And you can omit OS type from spec like this.
|
132
|
-
|
133
|
-
```ruby
|
134
|
-
require 'spec_helper'
|
135
|
-
|
136
|
-
describe 'httpd' do
|
137
|
-
it { should be_installed }
|
138
|
-
it { should be_enabled }
|
139
|
-
it { should be_running }
|
140
|
-
end
|
141
|
-
|
142
|
-
describe 'port 80' do
|
143
|
-
it { should be_listening }
|
144
|
-
end
|
145
|
-
|
146
|
-
describe '/etc/httpd/conf/httpd.conf' do
|
147
|
-
it { should be_file }
|
148
|
-
it { should contain "ServerName www.example.jp" }
|
149
|
-
end
|
150
|
-
```
|
151
|
-
|
152
|
-
You can change the target host's OS per spec like this.
|
153
|
-
|
154
|
-
|
155
|
-
```ruby
|
156
|
-
require 'spec_helper'
|
157
|
-
|
158
|
-
describe 'httpd', :os => :debian do
|
159
|
-
it { should be_installed }
|
160
|
-
it { should be_enabled }
|
161
|
-
it { should be_running }
|
162
|
-
end
|
163
|
-
|
164
|
-
describe 'port 80', :os => :debian do
|
165
|
-
it { should be_listening }
|
166
|
-
end
|
167
|
-
|
168
|
-
describe '/etc/httpd/conf/httpd.conf', :os => :debian do
|
169
|
-
it { should be_file }
|
170
|
-
it { should contain "ServerName www.example.jp" }
|
171
|
-
end
|
172
|
-
```
|
173
|
-
|
174
134
|
See details on [serverspec.org](http://serverspec.org)
|
175
135
|
|
176
136
|
----
|
data/lib/serverspec.rb
CHANGED
@@ -17,6 +17,7 @@ RSpec.configure do |c|
|
|
17
17
|
c.include(Serverspec::Helper::Debian, :os => :debian)
|
18
18
|
c.include(Serverspec::Helper::Gentoo, :os => :gentoo)
|
19
19
|
c.include(Serverspec::Helper::Solaris, :os => :solaris)
|
20
|
+
c.add_setting :os, :default => nil
|
20
21
|
c.add_setting :host, :default => nil
|
21
22
|
c.add_setting :ssh, :default => nil
|
22
23
|
c.add_setting :sudo_password, :default => nil
|
@@ -93,6 +93,18 @@ module Serverspec
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
+
def check_os
|
97
|
+
if do_check('ls /etc/redhat-release')[:exit_code] == 0
|
98
|
+
'RedHat'
|
99
|
+
elsif do_check('ls /etc/debian_version')[:exit_code] == 0
|
100
|
+
'Debian'
|
101
|
+
elsif do_check('ls /etc/gentoo-release')[:exit_code] == 0
|
102
|
+
'Gentoo'
|
103
|
+
elsif do_check('uname -s')[:stdout] =~ /SunOS/i
|
104
|
+
'Solaris'
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
96
108
|
end
|
97
109
|
end
|
98
110
|
end
|
data/lib/serverspec/helper.rb
CHANGED
data/lib/serverspec/setup.rb
CHANGED
@@ -28,11 +28,11 @@ EOF
|
|
28
28
|
|
29
29
|
Select OS type of target host:
|
30
30
|
|
31
|
-
1)
|
32
|
-
2)
|
33
|
-
3)
|
34
|
-
4)
|
35
|
-
5)
|
31
|
+
1) Auto Detect
|
32
|
+
2) Red Hat
|
33
|
+
3) Debian
|
34
|
+
4) Gentoo
|
35
|
+
5) Solaris
|
36
36
|
|
37
37
|
Select number:
|
38
38
|
EOF
|
@@ -41,7 +41,7 @@ EOF
|
|
41
41
|
num = gets.to_i - 1
|
42
42
|
puts
|
43
43
|
|
44
|
-
@os_type = [ 'RedHat', 'Debian', 'Gentoo', 'Solaris'
|
44
|
+
@os_type = [ 'DetectOS', 'RedHat', 'Debian', 'Gentoo', 'Solaris' ][num]
|
45
45
|
|
46
46
|
[ 'spec', "spec/#{@hostname}" ].each { |dir| safe_mkdir(dir) }
|
47
47
|
safe_create_spec
|
@@ -121,9 +121,9 @@ EOF
|
|
121
121
|
options = Net::SSH::Config.for(c.host)
|
122
122
|
user = options[:user] || Etc.getlogin
|
123
123
|
c.ssh = Net::SSH.start(c.host, user, options)
|
124
|
+
c.os = backend(Serverspec::Commands::Base).check_os
|
124
125
|
end
|
125
|
-
end
|
126
|
-
")
|
126
|
+
end")
|
127
127
|
when 'Puppet'
|
128
128
|
content.gsub!(/### include requirements ###/, "require 'puppet'\nrequire 'serverspec/backend/puppet'
|
129
129
|
")
|
data/lib/serverspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,89 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 8
|
10
|
+
version: 0.2.8
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Gosuke Miyashita
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2013-04-13 00:00:00 +09:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
15
22
|
name: net-ssh
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ! '>='
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '0'
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
38
33
|
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rspec
|
39
37
|
prerelease: false
|
40
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
47
50
|
name: bundler
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ~>
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '1.3'
|
54
|
-
type: :development
|
55
51
|
prerelease: false
|
56
|
-
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
58
|
-
requirements:
|
54
|
+
requirements:
|
59
55
|
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 9
|
58
|
+
segments:
|
59
|
+
- 1
|
60
|
+
- 3
|
61
|
+
version: "1.3"
|
70
62
|
type: :development
|
63
|
+
version_requirements: *id003
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: rake
|
71
66
|
prerelease: false
|
72
|
-
|
67
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
68
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
type: :development
|
77
|
+
version_requirements: *id004
|
78
|
+
description: RSpec tests for your servers provisioned by Puppet, Chef or anything else
|
79
|
+
email:
|
81
80
|
- gosukenator@gmail.com
|
82
|
-
executables:
|
81
|
+
executables:
|
83
82
|
- serverspec-init
|
84
83
|
extensions: []
|
84
|
+
|
85
85
|
extra_rdoc_files: []
|
86
|
-
|
86
|
+
|
87
|
+
files:
|
87
88
|
- .gitignore
|
88
89
|
- .travis.yml
|
89
90
|
- Gemfile
|
@@ -103,6 +104,7 @@ files:
|
|
103
104
|
- lib/serverspec/commands/solaris.rb
|
104
105
|
- lib/serverspec/helper.rb
|
105
106
|
- lib/serverspec/helper/debian.rb
|
107
|
+
- lib/serverspec/helper/detect_os.rb
|
106
108
|
- lib/serverspec/helper/exec.rb
|
107
109
|
- lib/serverspec/helper/gentoo.rb
|
108
110
|
- lib/serverspec/helper/obsoleted.rb
|
@@ -150,32 +152,41 @@ files:
|
|
150
152
|
- spec/solaris/matchers_spec.rb
|
151
153
|
- spec/spec_helper.rb
|
152
154
|
- spec/support/shared_matcher_examples.rb
|
155
|
+
has_rdoc: true
|
153
156
|
homepage: http://serverspec.org/
|
154
|
-
licenses:
|
157
|
+
licenses:
|
155
158
|
- MIT
|
156
159
|
post_install_message:
|
157
160
|
rdoc_options: []
|
158
|
-
|
161
|
+
|
162
|
+
require_paths:
|
159
163
|
- lib
|
160
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
165
|
none: false
|
162
|
-
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
|
166
|
-
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
170
|
+
segments:
|
171
|
+
- 0
|
172
|
+
version: "0"
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
174
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
175
|
+
requirements:
|
176
|
+
- - ">="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
hash: 3
|
179
|
+
segments:
|
180
|
+
- 0
|
181
|
+
version: "0"
|
172
182
|
requirements: []
|
183
|
+
|
173
184
|
rubyforge_project:
|
174
|
-
rubygems_version: 1.
|
185
|
+
rubygems_version: 1.3.7
|
175
186
|
signing_key:
|
176
187
|
specification_version: 3
|
177
188
|
summary: RSpec tests for your servers provisioned by Puppet, Chef or anything else
|
178
|
-
test_files:
|
189
|
+
test_files:
|
179
190
|
- spec/debian/commands_spec.rb
|
180
191
|
- spec/debian/matchers_spec.rb
|
181
192
|
- spec/gentoo/commands_spec.rb
|