fauxhai 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +20 -0
- data/.rvmrc +48 -0
- data/Gemfile +3 -0
- data/LICENSE +22 -0
- data/README.md +159 -0
- data/Rakefile +2 -0
- data/bin/fauxhai +12 -0
- data/examples/chefspec.md +68 -0
- data/examples/rspec-chef.md +62 -0
- data/fauxhai.gemspec +20 -0
- data/lib/fauxhai.rb +17 -0
- data/lib/fauxhai/exception.rb +8 -0
- data/lib/fauxhai/fetcher.rb +78 -0
- data/lib/fauxhai/keys/id_dsa +12 -0
- data/lib/fauxhai/keys/id_dsa.pub +1 -0
- data/lib/fauxhai/keys/id_rsa +27 -0
- data/lib/fauxhai/keys/id_rsa.pub +1 -0
- data/lib/fauxhai/mocker.rb +79 -0
- data/lib/fauxhai/platforms/centos/6.0.json +404 -0
- data/lib/fauxhai/platforms/centos/default.json +3 -0
- data/lib/fauxhai/platforms/chefspec/0.6.1.json +14 -0
- data/lib/fauxhai/platforms/chefspec/default.json +3 -0
- data/lib/fauxhai/platforms/mac_os_x/10.7.4.json +785 -0
- data/lib/fauxhai/platforms/mac_os_x/default.json +3 -0
- data/lib/fauxhai/platforms/ubuntu/10.04.json +500 -0
- data/lib/fauxhai/platforms/ubuntu/default.json +3 -0
- data/lib/fauxhai/runner.rb +237 -0
- metadata +107 -0
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'digest/sha1'
|
2
|
+
require 'json'
|
3
|
+
require 'net/ssh'
|
4
|
+
|
5
|
+
module Fauxhai
|
6
|
+
class Fetcher
|
7
|
+
def initialize(options = {}, &override_attributes)
|
8
|
+
@options = options
|
9
|
+
|
10
|
+
if !force_cache_miss? && cached?
|
11
|
+
@data = cache
|
12
|
+
else
|
13
|
+
Net::SSH.start(host, user, @options) do |ssh|
|
14
|
+
@data = JSON.parse(ssh.exec!('ohai'))
|
15
|
+
end
|
16
|
+
|
17
|
+
# cache this data so we do not have to SSH again
|
18
|
+
File.open(cache_file, 'w+'){ |f| f.write(@data.to_json) }
|
19
|
+
end
|
20
|
+
|
21
|
+
yield(@data) if block_given?
|
22
|
+
|
23
|
+
if defined?(ChefSpec)
|
24
|
+
data = @data
|
25
|
+
::ChefSpec::ChefRunner.send :define_method, :fake_ohai do |ohai|
|
26
|
+
data.each_pair do |attribute,value|
|
27
|
+
ohai[attribute] = value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
@data
|
33
|
+
end
|
34
|
+
|
35
|
+
def cache
|
36
|
+
@cache ||= JSON.parse(File.read(cache_file))
|
37
|
+
end
|
38
|
+
|
39
|
+
def cached?
|
40
|
+
File.exists?(cache_file)
|
41
|
+
end
|
42
|
+
|
43
|
+
def cache_key
|
44
|
+
Digest::SHA2.hexdigest("#{user}@#{host}")
|
45
|
+
end
|
46
|
+
|
47
|
+
def cache_file
|
48
|
+
File.expand_path( File.join(Fauxhai.root, 'tmp', cache_key) )
|
49
|
+
end
|
50
|
+
|
51
|
+
def force_cache_miss?
|
52
|
+
@force_cache_miss ||= @options.delete(:force_cache_miss) || false
|
53
|
+
end
|
54
|
+
|
55
|
+
# Return the given `@data` attribute as a Ruby hash instead of a JSON object
|
56
|
+
#
|
57
|
+
# @return [Hash] the `@data` represented as a Ruby hash
|
58
|
+
def to_hash(*args)
|
59
|
+
@data.to_hash(*args)
|
60
|
+
end
|
61
|
+
|
62
|
+
def to_s
|
63
|
+
"#<Fauxhai::Fetcher @host=#{host}, @options=#{@options}>"
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
def host
|
68
|
+
@host ||= begin
|
69
|
+
raise ArgumentError, ':host is a required option for Fauxhai.fetch' unless @options[:host]
|
70
|
+
@options.delete(:host)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def user
|
75
|
+
@user ||= (@options.delete(:user) || ENV['USER'] || ENV['USERNAME']).chomp
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
-----BEGIN DSA PRIVATE KEY-----
|
2
|
+
MIIBvAIBAAKBgQCRaPQSwMOFihLOYYIqZOZuNtxcwbA1wmUjHAvXGv6Jv9VWMzKi
|
3
|
+
JosRnt7iAg8zRVFsRaCyU0ADnHMs6OjF2YkKsFiQyxYuajkq+sNl3DMhPs3eMDsj
|
4
|
+
KA4lTOX4s5hvCtxc66rxo8AXB3AXTkJ2r0oo6I9/AzduSfc4a4neQWOFpQIVAPFe
|
5
|
+
sLIbnZcLOfcVXh6PfzAkGSiZAoGAaLxjyeJj9j+gSvJR5dDz25LcEG1paSdd6M+k
|
6
|
+
RCRQ1XFIu71dum1/wY0F/qIc2UM5Y3c9UqVGz3P/J7gOHWq2JFYfdXgYt9OxDfCH
|
7
|
+
cUR49ngYKf2RuMrISHmxt1h68CQ/8VI42dTEX8g09Xq5lYuC744z4Fg8S2Zz6TGk
|
8
|
+
ektZ84ECgYEAj0Vd6DCWslvlsZ8+N53HWsqPi3gnx35JoLPz9Z2epkKIKqmEHav+
|
9
|
+
93G3hdfztVa4I4t3phoPniQchYryF5+RNg8hqxKzjNtrIqUYCeuf2NJrksNsH7OZ
|
10
|
+
ygPHZpqt4kTuwAGZxjxEGfAI0y8DhkU2ntp2LnzRnWH106BQBCmcXwoCFQDry5iu
|
11
|
+
Lv4xvy0I7w/bDtXIGj5RYA==
|
12
|
+
-----END DSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-dss AAAAB3NzaC1kc3MAAACBAJFo9BLAw4WKEs5hgipk5m423FzBsDXCZSMcC9ca/om/1VYzMqImixGe3uICDzNFUWxFoLJTQAOccyzo6MXZiQqwWJDLFi5qOSr6w2XcMyE+zd4wOyMoDiVM5fizmG8K3FzrqvGjwBcHcBdOQnavSijoj38DN25J9zhrid5BY4WlAAAAFQDxXrCyG52XCzn3FV4ej38wJBkomQAAAIBovGPJ4mP2P6BK8lHl0PPbktwQbWlpJ13oz6REJFDVcUi7vV26bX/BjQX+ohzZQzljdz1SpUbPc/8nuA4darYkVh91eBi307EN8IdxRHj2eBgp/ZG4yshIebG3WHrwJD/xUjjZ1MRfyDT1ermVi4LvjjPgWDxLZnPpMaR6S1nzgQAAAIEAj0Vd6DCWslvlsZ8+N53HWsqPi3gnx35JoLPz9Z2epkKIKqmEHav+93G3hdfztVa4I4t3phoPniQchYryF5+RNg8hqxKzjNtrIqUYCeuf2NJrksNsH7OZygPHZpqt4kTuwAGZxjxEGfAI0y8DhkU2ntp2LnzRnWH106BQBCmcXwo= fauxhai.local
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpAIBAAKCAQEArSwnqraq/x25zkXJMNbpHS4aXxqDjxYuf3rChKJM06qtYLIE
|
3
|
+
NlfHppso36tYul130bUgcZHZR7/xlnT+cAU7hNhvOTMwZFUkD75sEDfJV/yTDxBL
|
4
|
+
Sl5HjqNKPdvz4kpr2OHkbHRdJsONFL4O47RN3938Y+Pe5M4eXyrZKx5xeMfYFwm1
|
5
|
+
Xa9xalyX4IEeSCcAMU6Hq2yu8f7kUvu2LmSPT4qd7bdeJ7/Xs8F3Lhm/7b41jmSD
|
6
|
+
YhZfIs1SBSou7MX019PaeDYGpsUUu0w9mHdI0/JxKBfVGU7IF3CdZA0sezezcRXz
|
7
|
+
Xz+qwnThkUc+IFIV7bFIxv15MT3gsGewPVZzgwIDAQABAoIBAHgnSt6IH90jIuic
|
8
|
+
QxxAAT7d3i5elymQmnKZGp4sfmHe6q1M1t9dyIkw3wtSOB4W/CvlIL2sFLZT16wt
|
9
|
+
QN04xDNIeOOXQNxctsi1twUJsAn8lYy+IX9YKw4s/jYthupb+LhjA7q8gmWDCUB7
|
10
|
+
HpmfYOkTfStR0DWxTiF5+XSRiunhmz0qidpAA0Rv8Fz5B1PL7zI0yyV1oJwVATc8
|
11
|
+
f1wEl53TDel+udwJ5rnWihiJMehLqsAa68WkQIOig77Logrz+WybMQYpF3D3SqRL
|
12
|
+
cx0vc2cStbvnpcuG8UtAz61fi029rkWmAj6sa7BSgngFXphCezZ9dFDBtahc+Kzw
|
13
|
+
ncMsyAECgYEA0++mKDq2oMN+i7Nc1VcvmfwxtkWMK6y+qusVpEhJB/u6E0Adxdxa
|
14
|
+
wHuRhiD623lGHduzHxO8GqSKAFSR5KDOwcDFduiq/K9f2rHJE4eL3BHnm28/0T0e
|
15
|
+
2VGYXebs4IPxuGjpNOAWPw/jo0tMSU+xr7ajELi3PU5DAD1SUiHJWaECgYEA0S1N
|
16
|
+
LC+1Fz9ZsmL0hQpwoGhvKeLmbHinSbskovczMtI5JUU4HLzfCjovMuct93PxOsMO
|
17
|
+
Gsy7J/v+dVpk8P4x58g2ZYjpF98r9lLkIs+wa7r7XAkHBqJ3SrrA2z4qm1bijr15
|
18
|
+
/HGRT8q33umESYBFfdrbiN2CMHrs/72dgSBbIqMCgYEAtN5e1RJWbZipVJv76+3+
|
19
|
+
J9H8sutjlppUFhWOYKd3/CIuSON9BTDrGj3akbdvnwI+fpjSowD6lVo6k9GYuJ8s
|
20
|
+
FFppqvMhiYg5q6/yRIJ3L5bwK8yjj/QzcY+bEvhSy8CO96xA6ekb0zHCOce3ERG8
|
21
|
+
OJMLUufxKZayw2+R45oF9kECgYEAsn3Yk3LmMT8ymADOrFP7RTW4XeKrQzY1cboK
|
22
|
+
ijEsdBpk/wOw3PzhygVaTzJry/MYjk7xUzcOIRFr0dHfvrD5/tGecUfBt0gNaHTV
|
23
|
+
DUtyPItif+eIIkYySwdPGAZVLxaV3r2aQSrbl13hRoq3Ak09fyZpHMH/nMTYRWYU
|
24
|
+
56GngscCgYB3/vF1j+fxoqjhecMuhxNB3KDxuj3kW6ZBFC1yI3tsiHU+cTDBzdlG
|
25
|
+
fANBAUvFxMyd7FV8DxRKsfv+YX4U3oET2SB5xxVyZZ5km+X4nWdzJdEXl2JNiBCr
|
26
|
+
yDsMDWkmavqDJTZkngJnQ43pwdEOZlv8ePLj453YcVGACziizDlsyw==
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtLCeqtqr/HbnORckw1ukdLhpfGoOPFi5/esKEokzTqq1gsgQ2V8emmyjfq1i6XXfRtSBxkdlHv/GWdP5wBTuE2G85MzBkVSQPvmwQN8lX/JMPEEtKXkeOo0o92/PiSmvY4eRsdF0mw40Uvg7jtE3f3fxj497kzh5fKtkrHnF4x9gXCbVdr3FqXJfggR5IJwAxToerbK7x/uRS+7YuZI9Pip3tt14nv9ezwXcuGb/tvjWOZINiFl8izVIFKi7sxfTX09p4NgamxRS7TD2Yd0jT8nEoF9UZTsgXcJ1kDSx7N7NxFfNfP6rCdOGRRz4gUhXtsUjG/XkxPeCwZ7A9VnOD fauxhai.local
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Fauxhai
|
4
|
+
class Mocker
|
5
|
+
def initialize(options = {}, &override_attributes)
|
6
|
+
@options = options
|
7
|
+
|
8
|
+
@data = fauxhai_data
|
9
|
+
yield(@data) if block_given?
|
10
|
+
|
11
|
+
if defined?(ChefSpec)
|
12
|
+
data = @data
|
13
|
+
::ChefSpec::ChefRunner.send :define_method, :fake_ohai do |ohai|
|
14
|
+
data.each_pair do |attribute,value|
|
15
|
+
ohai[attribute] = value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
@data
|
21
|
+
end
|
22
|
+
|
23
|
+
# Return the given `@data` attribute as a Ruby hash instead of a JSON object
|
24
|
+
#
|
25
|
+
# @return [Hash] the `@data` represented as a Ruby hash
|
26
|
+
def to_hash(*args)
|
27
|
+
@data.to_hash(*args)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def default_version
|
32
|
+
@default_version ||= lambda do
|
33
|
+
default_filepath = File.join(platform_path, 'default.json')
|
34
|
+
|
35
|
+
if File.exists?(default_filepath)
|
36
|
+
JSON.parse( File.read(default_filepath) )['version']
|
37
|
+
else
|
38
|
+
filename = Dir["#{platform_path}/*.json"].sort.pop
|
39
|
+
|
40
|
+
if filename
|
41
|
+
filename.split('/').last.gsub(/\.json/, '')
|
42
|
+
else
|
43
|
+
raise Fauxhai::Exception::NoDefaultVersion.new('Could not detect default version!')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end.call
|
47
|
+
end
|
48
|
+
|
49
|
+
def fauxhai_data
|
50
|
+
@fauxhai_data ||= lambda do
|
51
|
+
filepath = File.join(platform_path, "#{version}.json")
|
52
|
+
|
53
|
+
if File.exists?(filepath)
|
54
|
+
JSON.parse( File.read(filepath) )
|
55
|
+
else
|
56
|
+
raise Fauxhai::Exception::InvalidVersion.new("Could not find version #{@options[:version]} in any of the sources!")
|
57
|
+
end
|
58
|
+
end.call
|
59
|
+
end
|
60
|
+
|
61
|
+
def platform
|
62
|
+
@options[:platform] ||= 'chefspec'
|
63
|
+
end
|
64
|
+
|
65
|
+
def platform_path
|
66
|
+
@platform_path ||= lambda do
|
67
|
+
if path = File.join(Fauxhai.root, 'lib', 'fauxhai', 'platforms', platform)
|
68
|
+
path
|
69
|
+
else
|
70
|
+
raise Fauxhai::Exception::InvalidPlatform.new('Platform not found!')
|
71
|
+
end
|
72
|
+
end.call
|
73
|
+
end
|
74
|
+
|
75
|
+
def version
|
76
|
+
@version ||= @options[:version] || default_version
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,404 @@
|
|
1
|
+
{
|
2
|
+
"kernel": {
|
3
|
+
"name": "Linux",
|
4
|
+
"release": "2.6.32-71.el6.x86_64",
|
5
|
+
"version": "#1 SMP Fri May 20 03:51:51 BST 2011",
|
6
|
+
"machine": "x86_64",
|
7
|
+
"modules": {
|
8
|
+
"vboxsf": {
|
9
|
+
"size": "36683",
|
10
|
+
"refcount": "1"
|
11
|
+
},
|
12
|
+
"8021q": {
|
13
|
+
"size": "24221",
|
14
|
+
"refcount": "0"
|
15
|
+
},
|
16
|
+
"garp": {
|
17
|
+
"size": "7310",
|
18
|
+
"refcount": "1"
|
19
|
+
},
|
20
|
+
"stp": {
|
21
|
+
"size": "2107",
|
22
|
+
"refcount": "1"
|
23
|
+
},
|
24
|
+
"llc": {
|
25
|
+
"size": "5608",
|
26
|
+
"refcount": "2"
|
27
|
+
},
|
28
|
+
"fcoe": {
|
29
|
+
"size": "21769",
|
30
|
+
"refcount": "0"
|
31
|
+
},
|
32
|
+
"libfcoe": {
|
33
|
+
"size": "16181",
|
34
|
+
"refcount": "1"
|
35
|
+
},
|
36
|
+
"libfc": {
|
37
|
+
"size": "93401",
|
38
|
+
"refcount": "2"
|
39
|
+
},
|
40
|
+
"scsi_transport_fc": {
|
41
|
+
"size": "50893",
|
42
|
+
"refcount": "2"
|
43
|
+
},
|
44
|
+
"scsi_tgt": {
|
45
|
+
"size": "12107",
|
46
|
+
"refcount": "1"
|
47
|
+
},
|
48
|
+
"sunrpc": {
|
49
|
+
"size": "241630",
|
50
|
+
"refcount": "1"
|
51
|
+
},
|
52
|
+
"ipv6": {
|
53
|
+
"size": "321209",
|
54
|
+
"refcount": "0"
|
55
|
+
},
|
56
|
+
"ppdev": {
|
57
|
+
"size": "8695",
|
58
|
+
"refcount": "0"
|
59
|
+
},
|
60
|
+
"parport_pc": {
|
61
|
+
"size": "22944",
|
62
|
+
"refcount": "0"
|
63
|
+
},
|
64
|
+
"parport": {
|
65
|
+
"size": "37327",
|
66
|
+
"refcount": "2"
|
67
|
+
},
|
68
|
+
"vboxguest": {
|
69
|
+
"size": "237840",
|
70
|
+
"refcount": "2"
|
71
|
+
},
|
72
|
+
"i2c_piix4": {
|
73
|
+
"size": "12574",
|
74
|
+
"refcount": "0"
|
75
|
+
},
|
76
|
+
"i2c_core": {
|
77
|
+
"size": "31274",
|
78
|
+
"refcount": "1"
|
79
|
+
},
|
80
|
+
"sg": {
|
81
|
+
"size": "30186",
|
82
|
+
"refcount": "0"
|
83
|
+
},
|
84
|
+
"ext4": {
|
85
|
+
"size": "353979",
|
86
|
+
"refcount": "2"
|
87
|
+
},
|
88
|
+
"mbcache": {
|
89
|
+
"size": "7918",
|
90
|
+
"refcount": "1"
|
91
|
+
},
|
92
|
+
"jbd2": {
|
93
|
+
"size": "89033",
|
94
|
+
"refcount": "1"
|
95
|
+
},
|
96
|
+
"sd_mod": {
|
97
|
+
"size": "37221",
|
98
|
+
"refcount": "3"
|
99
|
+
},
|
100
|
+
"crc_t10dif": {
|
101
|
+
"size": "1507",
|
102
|
+
"refcount": "1"
|
103
|
+
},
|
104
|
+
"sr_mod": {
|
105
|
+
"size": "16162",
|
106
|
+
"refcount": "0"
|
107
|
+
},
|
108
|
+
"cdrom": {
|
109
|
+
"size": "39769",
|
110
|
+
"refcount": "1"
|
111
|
+
},
|
112
|
+
"ahci": {
|
113
|
+
"size": "39105",
|
114
|
+
"refcount": "2"
|
115
|
+
},
|
116
|
+
"e1000": {
|
117
|
+
"size": "107170",
|
118
|
+
"refcount": "0"
|
119
|
+
},
|
120
|
+
"pata_acpi": {
|
121
|
+
"size": "3667",
|
122
|
+
"refcount": "0"
|
123
|
+
},
|
124
|
+
"ata_generic": {
|
125
|
+
"size": "3611",
|
126
|
+
"refcount": "0"
|
127
|
+
},
|
128
|
+
"ata_piix": {
|
129
|
+
"size": "22588",
|
130
|
+
"refcount": "0"
|
131
|
+
},
|
132
|
+
"dm_mod": {
|
133
|
+
"size": "76856",
|
134
|
+
"refcount": "6"
|
135
|
+
}
|
136
|
+
},
|
137
|
+
"os": "GNU/Linux"
|
138
|
+
},
|
139
|
+
"os": "linux",
|
140
|
+
"os_version": "2.6.32-71.el6.x86_64",
|
141
|
+
"ohai_time": 1341249933.6599944,
|
142
|
+
"command": {
|
143
|
+
"ps": "ps -ef"
|
144
|
+
},
|
145
|
+
"platform": "centos",
|
146
|
+
"platform_version": "6.0",
|
147
|
+
"dmi": {
|
148
|
+
},
|
149
|
+
"filesystem": {
|
150
|
+
"/dev/mapper/VolGroup-lv_root": {
|
151
|
+
"kb_size": "39776876",
|
152
|
+
"kb_used": "1362884",
|
153
|
+
"kb_available": "36393436",
|
154
|
+
"percent_used": "4%",
|
155
|
+
"mount": "/",
|
156
|
+
"fs_type": "ext4",
|
157
|
+
"mount_options": [
|
158
|
+
"rw"
|
159
|
+
]
|
160
|
+
},
|
161
|
+
"tmpfs": {
|
162
|
+
"kb_size": "1961796",
|
163
|
+
"kb_used": "0",
|
164
|
+
"kb_available": "1961796",
|
165
|
+
"percent_used": "0%",
|
166
|
+
"mount": "/dev/shm",
|
167
|
+
"fs_type": "tmpfs",
|
168
|
+
"mount_options": [
|
169
|
+
"rw",
|
170
|
+
"rootcontext=\"system_u:object_r:tmpfs_t:s0\""
|
171
|
+
]
|
172
|
+
},
|
173
|
+
"/dev/sda1": {
|
174
|
+
"kb_size": "495844",
|
175
|
+
"kb_used": "35739",
|
176
|
+
"kb_available": "434505",
|
177
|
+
"percent_used": "8%",
|
178
|
+
"mount": "/boot",
|
179
|
+
"fs_type": "ext4",
|
180
|
+
"mount_options": [
|
181
|
+
"rw"
|
182
|
+
]
|
183
|
+
},
|
184
|
+
"v-root": {
|
185
|
+
"kb_size": "731423676",
|
186
|
+
"kb_used": "32065252",
|
187
|
+
"kb_available": "699358424",
|
188
|
+
"percent_used": "5%",
|
189
|
+
"mount": "/vagrant",
|
190
|
+
"fs_type": "vboxsf",
|
191
|
+
"mount_options": [
|
192
|
+
"uid=500",
|
193
|
+
"gid=503",
|
194
|
+
"rw"
|
195
|
+
]
|
196
|
+
},
|
197
|
+
"proc": {
|
198
|
+
"mount": "/proc",
|
199
|
+
"fs_type": "proc",
|
200
|
+
"mount_options": [
|
201
|
+
"rw"
|
202
|
+
]
|
203
|
+
},
|
204
|
+
"sysfs": {
|
205
|
+
"mount": "/sys",
|
206
|
+
"fs_type": "sysfs",
|
207
|
+
"mount_options": [
|
208
|
+
"rw"
|
209
|
+
]
|
210
|
+
},
|
211
|
+
"devpts": {
|
212
|
+
"mount": "/dev/pts",
|
213
|
+
"fs_type": "devpts",
|
214
|
+
"mount_options": [
|
215
|
+
"rw",
|
216
|
+
"gid=5",
|
217
|
+
"mode=620"
|
218
|
+
]
|
219
|
+
},
|
220
|
+
"none": {
|
221
|
+
"mount": "/proc/sys/fs/binfmt_misc",
|
222
|
+
"fs_type": "binfmt_misc",
|
223
|
+
"mount_options": [
|
224
|
+
"rw"
|
225
|
+
]
|
226
|
+
},
|
227
|
+
"sunrpc": {
|
228
|
+
"mount": "/var/lib/nfs/rpc_pipefs",
|
229
|
+
"fs_type": "rpc_pipefs",
|
230
|
+
"mount_options": [
|
231
|
+
"rw"
|
232
|
+
]
|
233
|
+
},
|
234
|
+
"rootfs": {
|
235
|
+
"mount": "/",
|
236
|
+
"fs_type": "rootfs",
|
237
|
+
"mount_options": [
|
238
|
+
"rw"
|
239
|
+
]
|
240
|
+
},
|
241
|
+
"/proc": {
|
242
|
+
"mount": "/proc",
|
243
|
+
"fs_type": "proc",
|
244
|
+
"mount_options": [
|
245
|
+
"rw",
|
246
|
+
"relatime"
|
247
|
+
]
|
248
|
+
},
|
249
|
+
"/sys": {
|
250
|
+
"mount": "/sys",
|
251
|
+
"fs_type": "sysfs",
|
252
|
+
"mount_options": [
|
253
|
+
"rw",
|
254
|
+
"seclabel",
|
255
|
+
"relatime"
|
256
|
+
]
|
257
|
+
},
|
258
|
+
"udev": {
|
259
|
+
"mount": "/dev",
|
260
|
+
"fs_type": "devtmpfs",
|
261
|
+
"mount_options": [
|
262
|
+
"rw",
|
263
|
+
"seclabel",
|
264
|
+
"relatime",
|
265
|
+
"size=1951876k",
|
266
|
+
"nr_inodes=487969",
|
267
|
+
"mode=755"
|
268
|
+
]
|
269
|
+
},
|
270
|
+
"/proc/bus/usb": {
|
271
|
+
"mount": "/proc/bus/usb",
|
272
|
+
"fs_type": "usbfs",
|
273
|
+
"mount_options": [
|
274
|
+
"rw",
|
275
|
+
"relatime"
|
276
|
+
]
|
277
|
+
}
|
278
|
+
},
|
279
|
+
"languages": {
|
280
|
+
"ruby": {
|
281
|
+
"platform": "x86_64-linux",
|
282
|
+
"version": "1.9.2",
|
283
|
+
"release_date": "2011-07-09",
|
284
|
+
"target": "x86_64-unknown-linux-gnu",
|
285
|
+
"target_cpu": "x86_64",
|
286
|
+
"target_vendor": "unknown",
|
287
|
+
"target_os": "linux",
|
288
|
+
"host": "x86_64-unknown-linux-gnu",
|
289
|
+
"host_cpu": "x86_64",
|
290
|
+
"host_os": "linux-gnu",
|
291
|
+
"host_vendor": "unknown",
|
292
|
+
"bin_dir": "/usr/local/bin",
|
293
|
+
"ruby_bin": "/usr/local/bin/ruby",
|
294
|
+
"gems_dir": "/usr/local/gems",
|
295
|
+
"gem_bin": "/usr/local/bin/gem"
|
296
|
+
}
|
297
|
+
},
|
298
|
+
"chef_packages": {
|
299
|
+
"chef": {
|
300
|
+
"version": "10.12.0",
|
301
|
+
"chef_root": "/usr/local/gems/chef-10.12.0/lib"
|
302
|
+
},
|
303
|
+
"ohai": {
|
304
|
+
"version": "0.6.4",
|
305
|
+
"ohai_root": "/usr/local/gems/ohai-0.6.4/lib/ohai"
|
306
|
+
}
|
307
|
+
},
|
308
|
+
"counters": {
|
309
|
+
"network": {
|
310
|
+
"interfaces": {
|
311
|
+
"eth0": {
|
312
|
+
"rx": {
|
313
|
+
"bytes": "0",
|
314
|
+
"packets": "0",
|
315
|
+
"errors": "0",
|
316
|
+
"drop": 0,
|
317
|
+
"overrun": 0,
|
318
|
+
"frame": 0,
|
319
|
+
"compressed": 0,
|
320
|
+
"multicast": 0
|
321
|
+
},
|
322
|
+
"tx": {
|
323
|
+
"bytes": "342",
|
324
|
+
"packets": "0",
|
325
|
+
"errors": "0",
|
326
|
+
"drop": 0,
|
327
|
+
"overrun": 0,
|
328
|
+
"collisions": "0",
|
329
|
+
"carrier": 0,
|
330
|
+
"compressed": 0
|
331
|
+
}
|
332
|
+
}
|
333
|
+
}
|
334
|
+
}
|
335
|
+
},
|
336
|
+
"current_user": "fauxhai",
|
337
|
+
"domain": "local",
|
338
|
+
"etc": {
|
339
|
+
"passwd": {
|
340
|
+
"fauxhai": {
|
341
|
+
"dir": "/home/fauxhai",
|
342
|
+
"gid": 0,
|
343
|
+
"uid": 0,
|
344
|
+
"shell": "/bin/bash",
|
345
|
+
"gecos": "Fauxhai"
|
346
|
+
}
|
347
|
+
},
|
348
|
+
"group": {
|
349
|
+
"fauxhai": {
|
350
|
+
"gid": 0,
|
351
|
+
"members": [
|
352
|
+
"fauxhai"
|
353
|
+
]
|
354
|
+
}
|
355
|
+
}
|
356
|
+
},
|
357
|
+
"hostname": "Fauxhai",
|
358
|
+
"fqdn": "fauxhai.local",
|
359
|
+
"ipaddress": "10.0.0.2",
|
360
|
+
"keys": {
|
361
|
+
"ssh": {
|
362
|
+
"host_dsa_public": "ssh-dss AAAAB3NzaC1kc3MAAACBAJFo9BLAw4WKEs5hgipk5m423FzBsDXCZSMcC9ca/om/1VYzMqImixGe3uICDzNFUWxFoLJTQAOccyzo6MXZiQqwWJDLFi5qOSr6w2XcMyE+zd4wOyMoDiVM5fizmG8K3FzrqvGjwBcHcBdOQnavSijoj38DN25J9zhrid5BY4WlAAAAFQDxXrCyG52XCzn3FV4ej38wJBkomQAAAIBovGPJ4mP2P6BK8lHl0PPbktwQbWlpJ13oz6REJFDVcUi7vV26bX/BjQX+ohzZQzljdz1SpUbPc/8nuA4darYkVh91eBi307EN8IdxRHj2eBgp/ZG4yshIebG3WHrwJD/xUjjZ1MRfyDT1ermVi4LvjjPgWDxLZnPpMaR6S1nzgQAAAIEAj0Vd6DCWslvlsZ8+N53HWsqPi3gnx35JoLPz9Z2epkKIKqmEHav+93G3hdfztVa4I4t3phoPniQchYryF5+RNg8hqxKzjNtrIqUYCeuf2NJrksNsH7OZygPHZpqt4kTuwAGZxjxEGfAI0y8DhkU2ntp2LnzRnWH106BQBCmcXwo= fauxhai.local",
|
363
|
+
"host_rsa_public": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtLCeqtqr/HbnORckw1ukdLhpfGoOPFi5/esKEokzTqq1gsgQ2V8emmyjfq1i6XXfRtSBxkdlHv/GWdP5wBTuE2G85MzBkVSQPvmwQN8lX/JMPEEtKXkeOo0o92/PiSmvY4eRsdF0mw40Uvg7jtE3f3fxj497kzh5fKtkrHnF4x9gXCbVdr3FqXJfggR5IJwAxToerbK7x/uRS+7YuZI9Pip3tt14nv9ezwXcuGb/tvjWOZINiFl8izVIFKi7sxfTX09p4NgamxRS7TD2Yd0jT8nEoF9UZTsgXcJ1kDSx7N7NxFfNfP6rCdOGRRz4gUhXtsUjG/XkxPeCwZ7A9VnOD fauxhai.local"
|
364
|
+
}
|
365
|
+
},
|
366
|
+
"macaddress": "11:11:11:11:11:11",
|
367
|
+
"network": {
|
368
|
+
"default_gateway": "10.0.0.1",
|
369
|
+
"default_interface": "eth0",
|
370
|
+
"eth0": {
|
371
|
+
"addresses": {
|
372
|
+
"10.0.0.2": {
|
373
|
+
"broadcast": "10.0.0.255",
|
374
|
+
"family": "inet",
|
375
|
+
"netmask": "255.255.255.0",
|
376
|
+
"prefixlen": "23",
|
377
|
+
"scope": "Global"
|
378
|
+
}
|
379
|
+
},
|
380
|
+
"arp": {
|
381
|
+
"10.0.0.1": "fe:ff:ff:ff:ff:ff"
|
382
|
+
},
|
383
|
+
"encapsulation": "Ethernet",
|
384
|
+
"flags": [
|
385
|
+
"BROADCAST",
|
386
|
+
"MULTICAST",
|
387
|
+
"UP",
|
388
|
+
"LOWER_UP"
|
389
|
+
],
|
390
|
+
"mtu": "1500",
|
391
|
+
"number": "0",
|
392
|
+
"routes": {
|
393
|
+
"10.0.0.0/255": {
|
394
|
+
"scope": "link",
|
395
|
+
"src": "10.0.0.2"
|
396
|
+
}
|
397
|
+
},
|
398
|
+
"state": "up",
|
399
|
+
"type": "eth"
|
400
|
+
}
|
401
|
+
},
|
402
|
+
"uptime": "30 days 15 hours 07 minutes 30 seconds",
|
403
|
+
"uptime_seconds": 2646450
|
404
|
+
}
|