facterdb 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/CHANGELOG.md +7 -0
- data/README.md +3 -0
- data/facts/1.6/ubuntu-15.10-x86_64.facts +74 -0
- data/facts/1.7/centos-7-x86_64.facts +18 -16
- data/facts/1.7/ubuntu-15.10-x86_64.facts +90 -0
- data/facts/2.0/centos-7-x86_64.facts +18 -16
- data/facts/2.0/ubuntu-15.10-x86_64.facts +91 -0
- data/facts/2.1/centos-7-x86_64.facts +19 -17
- data/facts/2.1/ubuntu-15.10-x86_64.facts +99 -0
- data/facts/2.2/centos-7-x86_64.facts +22 -20
- data/facts/2.2/ubuntu-14.04-x86_64.facts +85 -83
- data/facts/2.2/ubuntu-15.10-x86_64.facts +129 -0
- data/facts/2.3/centos-7-x86_64.facts +22 -20
- data/facts/2.3/ubuntu-14.04-x86_64.facts +85 -83
- data/facts/2.3/ubuntu-15.10-x86_64.facts +130 -0
- data/facts/2.4/centos-7-x86_64.facts +23 -21
- data/facts/2.4/ubuntu-14.04-x86_64.facts +85 -83
- data/facts/2.4/ubuntu-15.10-x86_64.facts +131 -0
- data/facts/3.0/ubuntu-14.04-x86_64.facts +134 -47
- data/facts/3.0/ubuntu-15.10-x86_64.facts +212 -0
- data/facts/3.1/ubuntu-15.10-x86_64.facts +255 -0
- data/facts/Vagrantfile +6 -20
- data/facts/get_facts.sh +48 -71
- data/lib/facterdb/version.rb +1 -1
- data/spec/facterdb_spec.rb +36 -0
- metadata +30 -21
@@ -0,0 +1,255 @@
|
|
1
|
+
{
|
2
|
+
"augeas": {
|
3
|
+
"version": "1.4.0"
|
4
|
+
},
|
5
|
+
"disks": {
|
6
|
+
"sda": {
|
7
|
+
"model": "VBOX HARDDISK",
|
8
|
+
"size": "40.00 GiB",
|
9
|
+
"size_bytes": 42949672960,
|
10
|
+
"vendor": "ATA"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"dmi": {
|
14
|
+
"bios": {
|
15
|
+
"release_date": "12/01/2006",
|
16
|
+
"vendor": "innotek GmbH",
|
17
|
+
"version": "VirtualBox"
|
18
|
+
},
|
19
|
+
"board": {
|
20
|
+
"manufacturer": "Oracle Corporation",
|
21
|
+
"product": "VirtualBox",
|
22
|
+
"serial_number": "0"
|
23
|
+
},
|
24
|
+
"chassis": {
|
25
|
+
"type": "Other"
|
26
|
+
},
|
27
|
+
"manufacturer": "innotek GmbH",
|
28
|
+
"product": {
|
29
|
+
"name": "VirtualBox",
|
30
|
+
"serial_number": "0",
|
31
|
+
"uuid": "FA4ED213-6351-4238-9DDE-E28CF955AF7C"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"facterversion": "3.1.1",
|
35
|
+
"filesystems": "ext2,ext3,ext4,vfat",
|
36
|
+
"identity": {
|
37
|
+
"gid": 0,
|
38
|
+
"group": "root",
|
39
|
+
"uid": 0,
|
40
|
+
"user": "root"
|
41
|
+
},
|
42
|
+
"is_virtual": true,
|
43
|
+
"kernel": "Linux",
|
44
|
+
"kernelmajversion": "4.2",
|
45
|
+
"kernelrelease": "4.2.0-16-generic",
|
46
|
+
"kernelversion": "4.2.0",
|
47
|
+
"load_averages": {
|
48
|
+
"15m": 0.04,
|
49
|
+
"1m": 0.55,
|
50
|
+
"5m": 0.13
|
51
|
+
},
|
52
|
+
"memory": {
|
53
|
+
"system": {
|
54
|
+
"available": "336.66 MiB",
|
55
|
+
"available_bytes": 353009664,
|
56
|
+
"capacity": "31.14%",
|
57
|
+
"total": "488.91 MiB",
|
58
|
+
"total_bytes": 512659456,
|
59
|
+
"used": "152.25 MiB",
|
60
|
+
"used_bytes": 159649792
|
61
|
+
}
|
62
|
+
},
|
63
|
+
"mountpoints": {
|
64
|
+
"/": {
|
65
|
+
"available": "37.21 GiB",
|
66
|
+
"available_bytes": 39953924096,
|
67
|
+
"capacity": "4.22%",
|
68
|
+
"device": "/dev/sda1",
|
69
|
+
"filesystem": "ext4",
|
70
|
+
"options": [
|
71
|
+
"rw",
|
72
|
+
"relatime",
|
73
|
+
"data=ordered"
|
74
|
+
],
|
75
|
+
"size": "38.85 GiB",
|
76
|
+
"size_bytes": 41712922624,
|
77
|
+
"used": "1.64 GiB",
|
78
|
+
"used_bytes": 1758998528
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"networking": {
|
82
|
+
"dhcp": "10.0.2.2",
|
83
|
+
"domain": "example.com",
|
84
|
+
"fqdn": "foo.example.com",
|
85
|
+
"hostname": "foo",
|
86
|
+
"interfaces": {
|
87
|
+
"eth0": {
|
88
|
+
"bindings": [
|
89
|
+
{
|
90
|
+
"address": "10.0.2.15",
|
91
|
+
"netmask": "255.255.255.0",
|
92
|
+
"network": "10.0.2.0"
|
93
|
+
}
|
94
|
+
],
|
95
|
+
"bindings6": [
|
96
|
+
{
|
97
|
+
"address": "fe80::a00:27ff:fe03:8001",
|
98
|
+
"netmask": "ffff:ffff:ffff:ffff::",
|
99
|
+
"network": "fe80::"
|
100
|
+
}
|
101
|
+
],
|
102
|
+
"dhcp": "10.0.2.2",
|
103
|
+
"ip": "10.0.2.15",
|
104
|
+
"ip6": "fe80::a00:27ff:fe03:8001",
|
105
|
+
"mac": "08:00:27:03:80:01",
|
106
|
+
"mtu": 1500,
|
107
|
+
"netmask": "255.255.255.0",
|
108
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
109
|
+
"network": "10.0.2.0",
|
110
|
+
"network6": "fe80::"
|
111
|
+
},
|
112
|
+
"lo": {
|
113
|
+
"bindings": [
|
114
|
+
{
|
115
|
+
"address": "127.0.0.1",
|
116
|
+
"netmask": "255.0.0.0",
|
117
|
+
"network": "127.0.0.0"
|
118
|
+
}
|
119
|
+
],
|
120
|
+
"bindings6": [
|
121
|
+
{
|
122
|
+
"address": "::1",
|
123
|
+
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
124
|
+
"network": "::1"
|
125
|
+
}
|
126
|
+
],
|
127
|
+
"ip": "127.0.0.1",
|
128
|
+
"ip6": "::1",
|
129
|
+
"mtu": 65536,
|
130
|
+
"netmask": "255.0.0.0",
|
131
|
+
"netmask6": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
|
132
|
+
"network": "127.0.0.0",
|
133
|
+
"network6": "::1"
|
134
|
+
},
|
135
|
+
"lxcbr0": {
|
136
|
+
"bindings": [
|
137
|
+
{
|
138
|
+
"address": "10.0.3.1",
|
139
|
+
"netmask": "255.255.255.0",
|
140
|
+
"network": "10.0.3.0"
|
141
|
+
}
|
142
|
+
],
|
143
|
+
"bindings6": [
|
144
|
+
{
|
145
|
+
"address": "fe80::9859:61ff:feb0:e064",
|
146
|
+
"netmask": "ffff:ffff:ffff:ffff::",
|
147
|
+
"network": "fe80::"
|
148
|
+
}
|
149
|
+
],
|
150
|
+
"ip": "10.0.3.1",
|
151
|
+
"ip6": "fe80::9859:61ff:feb0:e064",
|
152
|
+
"mac": "9a:59:61:b0:e0:64",
|
153
|
+
"mtu": 1500,
|
154
|
+
"netmask": "255.255.255.0",
|
155
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
156
|
+
"network": "10.0.3.0",
|
157
|
+
"network6": "fe80::"
|
158
|
+
}
|
159
|
+
},
|
160
|
+
"ip": "10.0.2.15",
|
161
|
+
"ip6": "fe80::a00:27ff:fe03:8001",
|
162
|
+
"mac": "08:00:27:03:80:01",
|
163
|
+
"mtu": 1500,
|
164
|
+
"netmask": "255.255.255.0",
|
165
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
166
|
+
"network": "10.0.2.0",
|
167
|
+
"network6": "fe80::",
|
168
|
+
"primary": "eth0"
|
169
|
+
},
|
170
|
+
"os": {
|
171
|
+
"architecture": "amd64",
|
172
|
+
"distro": {
|
173
|
+
"codename": "wily",
|
174
|
+
"description": "Ubuntu 15.10",
|
175
|
+
"id": "Ubuntu",
|
176
|
+
"release": {
|
177
|
+
"full": "15.10",
|
178
|
+
"major": "15.10"
|
179
|
+
}
|
180
|
+
},
|
181
|
+
"family": "Debian",
|
182
|
+
"hardware": "x86_64",
|
183
|
+
"name": "Ubuntu",
|
184
|
+
"release": {
|
185
|
+
"full": "15.10",
|
186
|
+
"major": "15.10"
|
187
|
+
},
|
188
|
+
"selinux": {
|
189
|
+
"enabled": false
|
190
|
+
}
|
191
|
+
},
|
192
|
+
"partitions": {
|
193
|
+
"/dev/sda1": {
|
194
|
+
"filesystem": "ext4",
|
195
|
+
"label": "cloudimg-rootfs",
|
196
|
+
"mount": "/",
|
197
|
+
"partuuid": "0006d50e-01",
|
198
|
+
"size": "40.00 GiB",
|
199
|
+
"size_bytes": 42948607488,
|
200
|
+
"uuid": "20829231-1cab-41a3-9d95-4a0bc22b40c1"
|
201
|
+
}
|
202
|
+
},
|
203
|
+
"path": "/opt/puppetlabs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
204
|
+
"processors": {
|
205
|
+
"count": 1,
|
206
|
+
"isa": "x86_64",
|
207
|
+
"models": [
|
208
|
+
"Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz"
|
209
|
+
],
|
210
|
+
"physicalcount": 1
|
211
|
+
},
|
212
|
+
"ruby": {
|
213
|
+
"platform": "x86_64-linux",
|
214
|
+
"sitedir": "/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0",
|
215
|
+
"version": "2.1.7"
|
216
|
+
},
|
217
|
+
"ssh": {
|
218
|
+
"dsa": {
|
219
|
+
"fingerprints": {
|
220
|
+
"sha1": "SSHFP 2 1 5a670a1c93514d6ee55a99dab5145a681b664ed0",
|
221
|
+
"sha256": "SSHFP 2 2 48908cee3e84531c8a2f08590fb9fabe04e99f3830481a0cf0affdb98690fb73"
|
222
|
+
},
|
223
|
+
"key": "AAAAB3NzaC1kc3MAAACBAJylejKGL25K+qM26k35UubUXs3YF20X2ARfoC16McT7kzRaJXhYbDqE5jfxrWaSiRH8dSfXWEbYCGdYBSGKbv4ksmNynE1ztmxCC8aSwmfPDXpWIEamnXwr0drW/puLfB8I6tZP1FwjeBkNKMb51vVW/BlBT3LnLWXDVpYKyim1AAAAFQCnBi/d6xxDrfFKz4biNWPvuyHYxwAAAIADtddNIuva+q7gDDmItd0WQGkQE/XxLlUCkRFmvND1mDnxWKRrS3Vqn4YQUPHpTwRSU6RukFh8oKKWvC/ckC+wgUnpH2rdepDshWDCp8933+QPZWWRuhFY99XUsZGlUtwuIjxs0iQqJBEjQ2f+ZX3tNMfSswt/BcfzqKLNTDU/kQAAAIBLnAca7OJWgrTStDbClKriP0forBmQq+sKenbY5gnnE6tUmHLLCjqvuzdpl2wAvXhcerks1wsvnebLe40pucx/1MjqqZgCu8ki3nW5yn4vLG/y2JW17oET3gSj5ixLqSKqIXHQlUNptrDsVCPL+MEhYgY5ktMy9RF/JACmScxp9w=="
|
224
|
+
},
|
225
|
+
"ecdsa": {
|
226
|
+
"fingerprints": {
|
227
|
+
"sha1": "SSHFP 3 1 099830f601f15c2055dd608dd77caa44515aa028",
|
228
|
+
"sha256": "SSHFP 3 2 6eb39571c7e7766b97ff2814f2204b12ba696650079d7e2db267c2d853ecd0bd"
|
229
|
+
},
|
230
|
+
"key": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMYtI5Sf67iAndcuuacxLqX2UM5m9qP81iZy7NDsI+HVA0yNV+T3OBQxYVlNq9UwX30I4J+Da20pM0iU4Ipn0xA="
|
231
|
+
},
|
232
|
+
"ed25519": {
|
233
|
+
"fingerprints": {
|
234
|
+
"sha1": "SSHFP 4 1 90655b7d1a5b0fd3ffb34fbbd4cde8bfdf0ec0bf",
|
235
|
+
"sha256": "SSHFP 4 2 574690e400a6291c17617aca181521d2d606198d24d9febf039fabfdcd28a83c"
|
236
|
+
},
|
237
|
+
"key": "AAAAC3NzaC1lZDI1NTE5AAAAIPTI/mTDnXgBs/nbiJ0zYHCfKrcBEVnckTg5pQsmzrUa"
|
238
|
+
},
|
239
|
+
"rsa": {
|
240
|
+
"fingerprints": {
|
241
|
+
"sha1": "SSHFP 1 1 997487332c9bc67b02c1536041c08c60fccdd403",
|
242
|
+
"sha256": "SSHFP 1 2 f8c898dcb8f0470058a25806def5775b318cd8c46320c7199c5feec45eb614f7"
|
243
|
+
},
|
244
|
+
"key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDZuid9vUZKhPJT3V6CC1DuyTOd4JbAjL83P66plKEKvWaml9RNry31AEsSRrD09cVFEbswv/z2kb2KKxTkMIg9EfPogAddh3XMOQOQgWbihFt0vRmJzG7MC8klxufs9nqaqGeQCyoXld3Xp1tvrY+izu/TaJvx2mrkl1XdtFGMDzRuPLNjmSNP4g6S47CfHA2c2foazz0I2/ERrpCCCf2DvYE/iIoDMZSUvu5Boa6xuRwAhZd3LBlr5GYffBGa920ZlJ+sq+9Nf5YT9EXkLRWQ09Uq8rvnLotQtaBUUZNx+YBDXw4k8gL+fBNZlh8xt6Jy0WuODjVe7DcNYARiV9eJ"
|
245
|
+
}
|
246
|
+
},
|
247
|
+
"system_uptime": {
|
248
|
+
"days": 0,
|
249
|
+
"hours": 0,
|
250
|
+
"seconds": 39,
|
251
|
+
"uptime": "0:00 hours"
|
252
|
+
},
|
253
|
+
"timezone": "UTC",
|
254
|
+
"virtual": "virtualbox"
|
255
|
+
}
|
data/facts/Vagrantfile
CHANGED
@@ -4,20 +4,6 @@
|
|
4
4
|
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
5
5
|
VAGRANTFILE_API_VERSION = "2"
|
6
6
|
|
7
|
-
$install_rvm = <<SCRIPT
|
8
|
-
# Install mpapis public key
|
9
|
-
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 ||
|
10
|
-
curl -sSL https://rvm.io/mpapis.asc | gpg --import - &&
|
11
|
-
|
12
|
-
# Run the installer
|
13
|
-
\\curl -sSL https://get.rvm.io | bash -s stable &&
|
14
|
-
|
15
|
-
# Install Ruby
|
16
|
-
source /etc/profile.d/rvm.sh &&
|
17
|
-
rvm install 1.9.3 &&
|
18
|
-
rvm use --create 1.9.3
|
19
|
-
SCRIPT
|
20
|
-
|
21
7
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
22
8
|
|
23
9
|
config.vm.hostname = "foo.example.com"
|
@@ -77,29 +63,30 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|
77
63
|
end
|
78
64
|
config.vm.define "ubuntu-15.04-x86_64" do |host|
|
79
65
|
host.vm.box = "ubuntu/vivid64"
|
80
|
-
host.vm.provision "
|
66
|
+
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
67
|
+
host.vm.provision "shell", path: "get_facts.sh"
|
68
|
+
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
69
|
+
end
|
70
|
+
config.vm.define "ubuntu-15.10-x86_64" do |host|
|
71
|
+
host.vm.box = "ubuntu/wily64"
|
81
72
|
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
82
73
|
host.vm.provision "shell", path: "get_facts.sh"
|
83
74
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
84
75
|
end
|
85
76
|
config.vm.define "centos-5-x86_64" do |host|
|
86
77
|
host.vm.box = "puppetlabs/centos-5.11-64-nocm"
|
87
|
-
host.vm.provision "shell", inline: "curl -sSL https://rvm.io/mpapis.asc | gpg --import - && \\curl -sSL https://get.rvm.io | bash -s stable"
|
88
|
-
host.vm.provision "shell", inline: "source /etc/profile.d/rvm.sh && rvm install 1.9.3 && rvm use --create 1.9.3"
|
89
78
|
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
90
79
|
host.vm.provision "shell", path: "get_facts.sh"
|
91
80
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
92
81
|
end
|
93
82
|
config.vm.define "centos-6-x86_64" do |host|
|
94
83
|
host.vm.box = "puppetlabs/centos-6.6-64-nocm"
|
95
|
-
host.vm.provision "shell", inline: "yum -y install ruby-devel rubygems"
|
96
84
|
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
97
85
|
host.vm.provision "shell", path: "get_facts.sh"
|
98
86
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
99
87
|
end
|
100
88
|
config.vm.define "centos-7-x86_64" do |host|
|
101
89
|
host.vm.box = "puppetlabs/centos-7.0-64-nocm"
|
102
|
-
host.vm.provision "shell", inline: "yum -y install ruby ruby-devel"
|
103
90
|
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
104
91
|
host.vm.provision "shell", path: "get_facts.sh"
|
105
92
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
@@ -159,7 +146,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|
159
146
|
config.vm.define "gentoo-x86_64" do |host|
|
160
147
|
host.vm.box = "cmiles/gentoo-amd64-minimal"
|
161
148
|
host.vm.provision "shell", inline: "emerge-webrsync && emerge app-crypt/gnupg net-misc/curl"
|
162
|
-
host.vm.provision "shell", inline: $install_rvm
|
163
149
|
host.vm.provision "file", source: "Gemfile", destination: "Gemfile"
|
164
150
|
host.vm.provision "shell", path: "get_facts.sh"
|
165
151
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
data/facts/get_facts.sh
CHANGED
@@ -1,84 +1,61 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
export PATH=/opt/puppetlabs/bin:$PATH
|
4
|
+
|
5
|
+
if test -f /usr/bin/apt-get; then
|
6
|
+
lsbdistcodename=$(lsb_release -sc)
|
7
|
+
operatingsystem=$(lsb_release -si)
|
8
|
+
operatingsystemmajrelease=$(lsb_release -sr)
|
9
|
+
osfamily='Debian'
|
10
|
+
elif test -f /usr/bin/yum; then
|
11
|
+
operatingsystemmajrelease=$(cat /etc/redhat-release | cut -d' ' -f4 | cut -c1)
|
12
|
+
osfamily='RedHat'
|
13
|
+
else
|
14
|
+
echo 'Could not detect OS family, aborting!'
|
15
|
+
exit 1
|
16
|
+
fi
|
17
|
+
|
18
|
+
case "${osfamily}" in
|
19
|
+
'RedHat')
|
20
|
+
wget "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-${operatingsystemmajrelease}.noarch.rpm" -O /tmp/puppetlabs-release-pc1.rpm
|
21
|
+
rpm -ivh /tmp/puppetlabs-release-pc1.rpm
|
22
|
+
for puppet_agent_version in 1.2.2 1.2.7; do
|
23
|
+
yum install -y puppet-agent-${puppet_agent_version}
|
24
|
+
output_file="/vagrant/$(facter --version | cut -c1-3)/$(facter operatingsystem | tr '[:upper:]' '[:lower:]')-$(facter operatingsystemmajrelease)-$(facter hardwaremodel).facts"
|
25
|
+
mkdir -p $(dirname ${output_file})
|
26
|
+
facter -j | tee ${output_file}
|
27
|
+
done
|
28
|
+
;;
|
29
|
+
|
30
|
+
'Debian')
|
31
|
+
if [[ "wily" =~ ${lsbdistcodename} ]]; then
|
32
|
+
lsbdistcodename='trusty'
|
33
|
+
fi
|
34
|
+
wget "https://apt.puppetlabs.com/puppetlabs-release-pc1-${lsbdistcodename}.deb" -O /tmp/puppetlabs-release-pc1.deb
|
35
|
+
dpkg --install /tmp/puppetlabs-release-pc1.deb
|
36
|
+
apt-get update
|
37
|
+
for puppet_agent_version in 1.2.2 1.2.7; do
|
38
|
+
apt-get -y --force-yes install puppet-agent=${puppet_agent_version}*
|
39
|
+
output_file="/vagrant/$(facter --version | cut -c1-3)/$(facter operatingsystem | tr '[:upper:]' '[:lower:]')-$(facter operatingsystemmajrelease)-$(facter hardwaremodel).facts"
|
40
|
+
mkdir -p $(dirname ${output_file})
|
41
|
+
facter -j | tee ${output_file}
|
42
|
+
done
|
43
|
+
;;
|
44
|
+
esac
|
7
45
|
|
8
|
-
|
9
|
-
|
46
|
+
operatingsystem=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
|
47
|
+
operatingsystemmajrelease=$(facter operatingsystemmajrelease)
|
48
|
+
hardwaremodel=$(facter hardwaremodel)
|
10
49
|
|
11
|
-
|
50
|
+
PATH=/opt/puppetlabs/puppet/bin:$PATH
|
12
51
|
gem install bundler --no-ri --no-rdoc --no-format-executable
|
13
52
|
bundle install --path vendor/bundler
|
14
|
-
operatingsystem=$(bundle exec facter operatingsystem | tr '[:upper:]' '[:lower:]')
|
15
|
-
operatingsystemrelease=$(bundle exec facter operatingsystemrelease)
|
16
|
-
operatingsystemmajrelease=$(bundle exec facter operatingsystemmajrelease)
|
17
|
-
lsbdistcodename=$(bundle exec facter lsbdistcodename)
|
18
|
-
hardwaremodel=$(bundle exec facter hardwaremodel)
|
19
|
-
|
20
|
-
# Fix for FreeBSD
|
21
|
-
[ "${hardwaremodel}" = 'amd64' ] && hardwaremodel='x86_64'
|
22
|
-
|
23
|
-
# Fix for Solaris
|
24
|
-
[ "${hardwaremodel}" = 'i86pc' ] && hardwaremodel='x86_64'
|
25
53
|
|
26
54
|
for version in 1.6.0 1.7.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0; do
|
27
55
|
FACTER_GEM_VERSION="~> ${version}" bundle update
|
28
|
-
|
29
|
-
|
30
|
-
mkdir -p $output_dir
|
31
|
-
case "${operatingsystem}" in
|
32
|
-
archlinux|gentoo)
|
33
|
-
output_file="${output_dir}/${operatingsystem}-${hardwaremodel}.facts"
|
34
|
-
;;
|
35
|
-
openbsd)
|
36
|
-
output_file="${output_dir}/${operatingsystem}-${operatingsystemrelease}-${hardwaremodel}.facts"
|
37
|
-
;;
|
38
|
-
*)
|
39
|
-
output_file="${output_dir}/${operatingsystem}-${operatingsystemmajrelease}-${hardwaremodel}.facts"
|
40
|
-
;;
|
41
|
-
esac
|
56
|
+
output_file="/vagrant/$(bundle exec facter --version | cut -c1-3)/${operatingsystem}-${operatingsystemmajrelease}-${hardwaremodel}.facts"
|
57
|
+
mkdir -p $(dirname $output_file)
|
42
58
|
echo $version | grep -q -E '^1\.' &&
|
43
59
|
FACTER_GEM_VERSION="~> ${version}" bundle exec facter -j | bundle exec ruby -e 'require "json"; jj JSON.parse gets' | tee $output_file ||
|
44
60
|
FACTER_GEM_VERSION="~> ${version}" bundle exec facter -j | tee $output_file
|
45
61
|
done
|
46
|
-
|
47
|
-
minor_version=3.0
|
48
|
-
output_dir="/vagrant/${minor_version}"
|
49
|
-
mkdir -p $output_dir
|
50
|
-
case "${operatingsystem}" in
|
51
|
-
archlinux|gentoo)
|
52
|
-
output_file="${output_dir}/${operatingsystem}-${hardwaremodel}.facts"
|
53
|
-
;;
|
54
|
-
openbsd)
|
55
|
-
output_file="${output_dir}/${operatingsystem}-${operatingsystemrelease}-${hardwaremodel}.facts"
|
56
|
-
;;
|
57
|
-
*)
|
58
|
-
output_file="${output_dir}/${operatingsystem}-${operatingsystemmajrelease}-${hardwaremodel}.facts"
|
59
|
-
;;
|
60
|
-
esac
|
61
|
-
|
62
|
-
case "${operatingsystem}" in
|
63
|
-
redhat)
|
64
|
-
case "${operatingsystemmajrelease}" in
|
65
|
-
5)
|
66
|
-
curl "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-${operatingsystemmajrelease}.noarch.rpm" > /tmp/puppetlabs-release-pc1.rpm
|
67
|
-
rpm -ivh /tmp/puppetlabs-release-pc1.rpm ;;
|
68
|
-
*)
|
69
|
-
rpm -ivh "https://yum.puppetlabs.com/puppetlabs-release-pc1-el-${operatingsystemmajrelease}.noarch.rpm"
|
70
|
-
yum -y install puppet-agent
|
71
|
-
;;
|
72
|
-
esac
|
73
|
-
|
74
|
-
/opt/puppetlabs/bin/facter -j | tee $output_file
|
75
|
-
;;
|
76
|
-
debian|ubuntu)
|
77
|
-
[ $lsbdistcodename = "lucid" ] && exit # puppet-agent is not supported on lucid
|
78
|
-
wget "https://apt.puppetlabs.com/puppetlabs-release-pc1-${lsbdistcodename}.deb" -O /tmp/puppetlabs-release-pc1.deb
|
79
|
-
dpkg --install /tmp/puppetlabs-release-pc1.deb
|
80
|
-
apt-get update
|
81
|
-
apt-get -y install puppet-agent
|
82
|
-
/opt/puppetlabs/bin/facter -j | tee $output_file
|
83
|
-
;;
|
84
|
-
esac
|
data/lib/facterdb/version.rb
CHANGED
data/spec/facterdb_spec.rb
CHANGED
@@ -11,5 +11,41 @@ describe 'FacterDB' do
|
|
11
11
|
expect(subject.select { |facts| facts.class != Hash }.size).to eq(0)
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
context 'without parameters' do
|
16
|
+
subject { FacterDB.get_os_facts() }
|
17
|
+
it "Should return an array of hashes with at least 1 element" do
|
18
|
+
expect(subject.class).to eq Array
|
19
|
+
expect(subject.size).not_to eq(0)
|
20
|
+
expect(subject.select { |facts| facts.class != Hash }.size).to eq(0)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'with an Array filter' do
|
25
|
+
subject { FacterDB.get_os_facts('*', [{:osfamily => 'Debian'}]) }
|
26
|
+
it "Should return an array of hashes with at least 1 element" do
|
27
|
+
expect(subject.class).to eq Array
|
28
|
+
expect(subject.size).not_to eq(0)
|
29
|
+
expect(subject.select { |facts| facts.class != Hash }.size).to eq(0)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'with a Hash filter' do
|
34
|
+
subject { FacterDB.get_os_facts('*', {:osfamily => 'Debian'}) }
|
35
|
+
it "Should return an array of hashes with at least 1 element" do
|
36
|
+
expect(subject.class).to eq Array
|
37
|
+
expect(subject.size).not_to eq(0)
|
38
|
+
expect(subject.select { |facts| facts.class != Hash }.size).to eq(0)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'with a String filter' do
|
43
|
+
subject { FacterDB.get_os_facts('*', 'osfamily=Debian') }
|
44
|
+
it "Should return an array of hashes with at least 1 element" do
|
45
|
+
expect(subject.class).to eq Array
|
46
|
+
expect(subject.size).not_to eq(0)
|
47
|
+
expect(subject.select { |facts| facts.class != Hash }.size).to eq(0)
|
48
|
+
end
|
49
|
+
end
|
14
50
|
end
|
15
51
|
end
|