PackerFiles 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/PackerFiles.gemspec +36 -0
- data/README.md +32 -0
- data/Rakefile +21 -0
- data/bin/pkf +5 -0
- data/lib/PackerFiles/CLI/OS.rb +44 -0
- data/lib/PackerFiles/CLI/Root.rb +41 -0
- data/lib/PackerFiles/Core/Base.rb +23 -0
- data/lib/PackerFiles/Core/CDImage.rb +185 -0
- data/lib/PackerFiles/Core/Disk.rb +135 -0
- data/lib/PackerFiles/Core/Exceptions.rb +65 -0
- data/lib/PackerFiles/Core/Hypervisor.rb +96 -0
- data/lib/PackerFiles/Core/Keyboard.rb +38 -0
- data/lib/PackerFiles/Core/Locale.rb +62 -0
- data/lib/PackerFiles/Core/LogicalVolume.rb +41 -0
- data/lib/PackerFiles/Core/Network.rb +67 -0
- data/lib/PackerFiles/Core/Packages.rb +30 -0
- data/lib/PackerFiles/Core/Partition.rb +41 -0
- data/lib/PackerFiles/Core/TimeZone.rb +45 -0
- data/lib/PackerFiles/Core/User.rb +46 -0
- data/lib/PackerFiles/Core/VolumeGroup.rb +50 -0
- data/lib/PackerFiles/Core/example/CDImage.txt +75 -0
- data/lib/PackerFiles/Core/example/Disk.txt +29 -0
- data/lib/PackerFiles/Core/example/Hypervisor.txt +111 -0
- data/lib/PackerFiles/Core/example/Keyboard.txt +28 -0
- data/lib/PackerFiles/Core/example/Locale.txt +31 -0
- data/lib/PackerFiles/Core/example/Network.txt +68 -0
- data/lib/PackerFiles/Core/example/Packages.txt +22 -0
- data/lib/PackerFiles/Core/example/TimeZone.txt +36 -0
- data/lib/PackerFiles/Core/example/User.txt +48 -0
- data/lib/PackerFiles/OS/Builder.rb +116 -0
- data/lib/PackerFiles/OS/CentOS/CD.rb +81 -0
- data/lib/PackerFiles/OS/CentOS/Kickstart.rb +64 -0
- data/lib/PackerFiles/OS/CentOS/Server.rb +170 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Base_erb.rb +4 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Disk_erb.rb +35 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Keyboard_erb.rb +4 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Locale_erb.rb +4 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Network_erb.rb +17 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Packages_erb.rb +34 -0
- data/lib/PackerFiles/OS/CentOS/Templates/Tail_erb.rb +15 -0
- data/lib/PackerFiles/OS/CentOS/Templates/TimeZone_erb.rb +10 -0
- data/lib/PackerFiles/OS/CentOS/Templates/User_erb.rb +20 -0
- data/lib/PackerFiles/OS/CentOS/Templates/boot_command_erb.rb +16 -0
- data/lib/PackerFiles/OS/CentOS/Templates/command_as_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/CentOS/Templates/disable_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/CentOS/Templates/enable_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/CentOS/Templates/shutdown_command_erb.rb +1 -0
- data/lib/PackerFiles/OS/Debian/Apt.rb +42 -0
- data/lib/PackerFiles/OS/Debian/CD.rb +65 -0
- data/lib/PackerFiles/OS/Debian/Mirrors.rb +73 -0
- data/lib/PackerFiles/OS/Debian/Preseed.rb +64 -0
- data/lib/PackerFiles/OS/Debian/Server.rb +169 -0
- data/lib/PackerFiles/OS/Debian/Templates/Apt_erb.rb +18 -0
- data/lib/PackerFiles/OS/Debian/Templates/Disk_erb.rb +69 -0
- data/lib/PackerFiles/OS/Debian/Templates/Keyboard_erb.rb +5 -0
- data/lib/PackerFiles/OS/Debian/Templates/Locale_erb.rb +7 -0
- data/lib/PackerFiles/OS/Debian/Templates/Mirrors_erb.rb +9 -0
- data/lib/PackerFiles/OS/Debian/Templates/Network_erb.rb +19 -0
- data/lib/PackerFiles/OS/Debian/Templates/Packages_erb.rb +6 -0
- data/lib/PackerFiles/OS/Debian/Templates/TimeZone_erb.rb +6 -0
- data/lib/PackerFiles/OS/Debian/Templates/User_erb.rb +14 -0
- data/lib/PackerFiles/OS/Debian/Templates/boot_command_erb.rb +24 -0
- data/lib/PackerFiles/OS/Debian/Templates/command_as_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/Debian/Templates/disable_root_erb.rb +5 -0
- data/lib/PackerFiles/OS/Debian/Templates/enable_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/Debian/Templates/shutdown_command_erb.rb +1 -0
- data/lib/PackerFiles/OS/Debian/example/Apt.txt +55 -0
- data/lib/PackerFiles/OS/DocGenerator.rb +51 -0
- data/lib/PackerFiles/OS/Finder.rb +96 -0
- data/lib/PackerFiles/OS/RHEL/CD.rb +32 -0
- data/lib/PackerFiles/OS/RHEL/Fedora.rb +59 -0
- data/lib/PackerFiles/OS/RHEL/FedoraCD.rb +68 -0
- data/lib/PackerFiles/OS/RHEL/Server.rb +32 -0
- data/lib/PackerFiles/OS/RHEL/Templates/Fedora_Tail_erb.rb +14 -0
- data/lib/PackerFiles/OS/RHEL/Templates/boot_command_fedora_erb.rb +16 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Base_erb.xml +32 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Disk_erb.xml +110 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Keyboard_erb.xml +7 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Locale_erb.xml +18 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Network_erb.xml +143 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Packages_erb.xml +29 -0
- data/lib/PackerFiles/OS/SUSE/Templates/Tail_erb.xml +4 -0
- data/lib/PackerFiles/OS/SUSE/Templates/TimeZone_erb.xml +15 -0
- data/lib/PackerFiles/OS/SUSE/Templates/User_erb.xml +57 -0
- data/lib/PackerFiles/OS/SUSE/Templates/boot_command_erb.rb +23 -0
- data/lib/PackerFiles/OS/SUSE/Templates/command_as_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/SUSE/Templates/disable_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/SUSE/Templates/enable_root_erb.rb +1 -0
- data/lib/PackerFiles/OS/SUSE/Templates/shutdown_command_erb.rb +1 -0
- data/lib/PackerFiles/OS/Ubuntu/CD.rb +81 -0
- data/lib/PackerFiles/OS/Ubuntu/Desktop.rb +50 -0
- data/lib/PackerFiles/OS/Ubuntu/DesktopCD.rb +16 -0
- data/lib/PackerFiles/OS/Ubuntu/Mirrors.rb +103 -0
- data/lib/PackerFiles/OS/Ubuntu/Server.rb +78 -0
- data/lib/PackerFiles/OS/Ubuntu/Templates/Apt_erb.rb +18 -0
- data/lib/PackerFiles/OS/Ubuntu/Templates/boot_command_desktop_erb.rb +36 -0
- data/lib/PackerFiles/OS/Ubuntu/Templates/boot_command_erb.rb +30 -0
- data/lib/PackerFiles/OS/Ubuntu/Templates/ubiquity_erb.rb +8 -0
- data/lib/PackerFiles/OS/example/Doc.txt +8 -0
- data/lib/PackerFiles/Provision/Base.rb +20 -0
- data/lib/PackerFiles/Provision/ChefSolo.rb +90 -0
- data/lib/PackerFiles/Provision/ChefSoloHelper.rb +72 -0
- data/lib/PackerFiles/Provision/Copy.rb +22 -0
- data/lib/PackerFiles/Provision/ExternalScript.rb +43 -0
- data/lib/PackerFiles/Provision/InlineScript.rb +37 -0
- data/lib/PackerFiles/Provision/Provisioners.rb +87 -0
- data/lib/PackerFiles/Provision/example/Provisioners.txt +21 -0
- data/lib/PackerFiles/Utils/AutoZone.rb +96 -0
- data/lib/PackerFiles/Utils/FastestURL.rb +73 -0
- data/lib/PackerFiles/Utils/Generator.rb +34 -0
- data/lib/PackerFiles/Utils/HashSerializer.rb +110 -0
- data/lib/PackerFiles/Utils/Size.rb +44 -0
- data/lib/PackerFiles/Utils/TypeAccessor.rb +71 -0
- data/lib/PackerFiles/Virtual/Hypervisors.rb +72 -0
- data/lib/PackerFiles/Virtual/KVM.rb +119 -0
- data/lib/PackerFiles/Virtual/KVMConverter.rb +79 -0
- data/lib/PackerFiles/Virtual/VMWare.rb +108 -0
- data/lib/PackerFiles/Virtual/VMWareConverter.rb +78 -0
- data/lib/PackerFiles/Virtual/VirtualBox.rb +98 -0
- data/lib/PackerFiles/Virtual/VirtualBoxConverter.rb +75 -0
- data/lib/PackerFiles/Virtual/example/Hypervisors.txt +23 -0
- data/lib/PackerFiles/version.rb +3 -0
- data/lib/PackerFiles.rb +44 -0
- data/spec/core/builder_spec.rb +84 -0
- data/spec/core/cdimage_spec.rb +159 -0
- data/spec/core/disk_spec.rb +191 -0
- data/spec/core/keyboard_spec.rb +36 -0
- data/spec/core/locale_spec.rb +73 -0
- data/spec/core/network_spec.rb +96 -0
- data/spec/core/packages_spec.rb +18 -0
- data/spec/core/timezone_spec.rb +43 -0
- data/spec/core/user_spec.rb +44 -0
- data/spec/core/volume_group_spec.rb +53 -0
- data/spec/os/centos/cd_spec.rb +12 -0
- data/spec/os/centos/data/Server-Script-Provisioner.rb +57 -0
- data/spec/os/centos/data/Server.rb +55 -0
- data/spec/os/centos/data/chef-solo-provisioner.rb +58 -0
- data/spec/os/centos/finder_spec.rb +22 -0
- data/spec/os/centos/templates/boot_command_spec.rb +57 -0
- data/spec/os/centos/templates/disk_spec.rb +79 -0
- data/spec/os/centos/templates/keyboard_spec.rb +18 -0
- data/spec/os/centos/templates/locale_spec.rb +26 -0
- data/spec/os/centos/templates/network_spec.rb +38 -0
- data/spec/os/centos/templates/packages_spec.rb +18 -0
- data/spec/os/centos/templates/timezone_spec.rb +37 -0
- data/spec/os/centos/templates/user_spec.rb +24 -0
- data/spec/os/debian/apt_spec.rb +50 -0
- data/spec/os/debian/cd_spec.rb +30 -0
- data/spec/os/debian/data/7zip.tar.gz +0 -0
- data/spec/os/debian/data/All-sections.rb +60 -0
- data/spec/os/debian/data/Chef-Solo-Provisioner.rb +60 -0
- data/spec/os/debian/data/Copy-Provisioner.rb +61 -0
- data/spec/os/debian/data/External-Script-Provisioner.rb +69 -0
- data/spec/os/debian/data/Missing-CDImage.rb +53 -0
- data/spec/os/debian/data/Missing-VMWare-KVM-sections.rb +51 -0
- data/spec/os/debian/data/Missing-sections.rb +53 -0
- data/spec/os/debian/data/Script-Provisioner.rb +62 -0
- data/spec/os/debian/data/chef-solo-cookbooks/git_setup/Berksfile.lock +32 -0
- data/spec/os/debian/data/chef-solo-cookbooks/git_setup/README.md +81 -0
- data/spec/os/debian/data/chef-solo-cookbooks/git_setup/attributes/default.rb +3 -0
- data/spec/os/debian/data/chef-solo-cookbooks/git_setup/metadata.rb +11 -0
- data/spec/os/debian/data/chef-solo-cookbooks/git_setup/recipes/default.rb +30 -0
- data/spec/os/debian/data/chef-solo.json +5 -0
- data/spec/os/debian/data/test-script.sh +4 -0
- data/spec/os/debian/finder_spec.rb +59 -0
- data/spec/os/debian/mirrors_spec.rb +18 -0
- data/spec/os/debian/preseed_spec.rb +56 -0
- data/spec/os/debian/server_spec.rb +59 -0
- data/spec/os/debian/templates/apt_spec.rb +20 -0
- data/spec/os/debian/templates/boot_command_spec.rb +56 -0
- data/spec/os/debian/templates/disk_spec.rb +81 -0
- data/spec/os/debian/templates/keyboard_spec.rb +18 -0
- data/spec/os/debian/templates/locale_spec.rb +36 -0
- data/spec/os/debian/templates/mirrors_spec.rb +16 -0
- data/spec/os/debian/templates/network_spec.rb +38 -0
- data/spec/os/debian/templates/packages_spec.rb +17 -0
- data/spec/os/debian/templates/timezone_spec.rb +36 -0
- data/spec/os/debian/templates/user_spec.rb +25 -0
- data/spec/os/finder_spec.rb +21 -0
- data/spec/os/rhel/data/Fedora.rb +45 -0
- data/spec/os/rhel/data/Server-Custom.rb +54 -0
- data/spec/os/rhel/data/Server.rb +45 -0
- data/spec/os/rhel/finder_spec.rb +21 -0
- data/spec/os/ubuntu/cd_spec.rb +28 -0
- data/spec/os/ubuntu/data/Desktop.rb +61 -0
- data/spec/os/ubuntu/data/Server.rb +61 -0
- data/spec/os/ubuntu/finder_spec.rb +17 -0
- data/spec/os/ubuntu/mirrors_spec.rb +18 -0
- data/spec/utils/autozone_spec.rb +33 -0
- data/spec/virtual/virtual_box_spec.rb +16 -0
- metadata +405 -0
@@ -0,0 +1,59 @@
|
|
1
|
+
# Test file for Finder
|
2
|
+
require 'OS/Finder'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Finder do
|
6
|
+
|
7
|
+
# Check missing accessor functionality.
|
8
|
+
it 'checks missing accessors' do
|
9
|
+
begin
|
10
|
+
load('spec/os/debian/data/Missing-sections.rb')
|
11
|
+
rescue PackerFiles::Utils::MissingAccessor => e
|
12
|
+
e.message.should include('Apt')
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Check missing Hypervisor functionality.
|
17
|
+
it 'checks missing Hypervisor accessors' do
|
18
|
+
begin
|
19
|
+
load('spec/os/debian/data/Missing-VMWare-KVM-sections.rb')
|
20
|
+
rescue PackerFiles::Utils::MissingAccessor => e
|
21
|
+
e.message.should include('Hypervisors')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Check missing CDImage functionality.
|
26
|
+
it 'checks missing CDImage accessors' do
|
27
|
+
begin
|
28
|
+
load('spec/os/debian/data/Missing-CDImage.rb')
|
29
|
+
rescue PackerFiles::Utils::MissingAccessor => e
|
30
|
+
e.message.should include('CDImage')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Check finder functionality from the top level
|
35
|
+
it 'checks finder #1' do
|
36
|
+
load('spec/os/debian/data/All-sections.rb')
|
37
|
+
end
|
38
|
+
|
39
|
+
# Check finder functionality from the top level
|
40
|
+
it 'checks copy provisioner' do
|
41
|
+
load('spec/os/debian/data/Copy-Provisioner.rb')
|
42
|
+
end
|
43
|
+
|
44
|
+
# Check finder functionality from the top level
|
45
|
+
it 'checks Inline Script provisioner' do
|
46
|
+
load('spec/os/debian/data/Script-Provisioner.rb')
|
47
|
+
end
|
48
|
+
|
49
|
+
# Check finder functionality from the top level
|
50
|
+
it 'checks External Script provisioner' do
|
51
|
+
load('spec/os/debian/data/External-Script-Provisioner.rb')
|
52
|
+
end
|
53
|
+
|
54
|
+
# Check finder functionality from the top level
|
55
|
+
it 'checks Chef Solo provisioner' do
|
56
|
+
load('spec/os/debian/data/Chef-Solo-Provisioner.rb')
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Test file for Mirror class in Debian Server OS
|
2
|
+
require 'OS/Debian/Mirrors'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Debian::Mirrors do
|
6
|
+
|
7
|
+
# Check if we are able to get a mirror.
|
8
|
+
it 'checks mirror' do
|
9
|
+
mirrors = PackerFiles::Debian::Mirrors.new
|
10
|
+
mirrors.hosts.should_not be_nil
|
11
|
+
mirrors.hosts.should_not be_empty
|
12
|
+
mirrors.best.should_not be_nil
|
13
|
+
mirrors.best.host.should_not be_nil
|
14
|
+
mirrors.best.path.should_not be_nil
|
15
|
+
mirrors.best.scheme.should eql('http')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Test file for Preseed class in Debian Server OS
|
2
|
+
require 'OS/Debian/Server'
|
3
|
+
require 'OS/Debian/Preseed'
|
4
|
+
|
5
|
+
# Describe test cases
|
6
|
+
describe PackerFiles::Debian::Server do
|
7
|
+
|
8
|
+
# Check if we are able to succesfully do an instance eval on
|
9
|
+
# all type accessor methods
|
10
|
+
it 'checks builder instance_eval #1' do
|
11
|
+
server = PackerFiles::Debian::Server.new
|
12
|
+
server.Locale do |l|
|
13
|
+
l.default = 'en_IN'
|
14
|
+
end
|
15
|
+
server.Locale.normalize
|
16
|
+
server.User do |u|
|
17
|
+
u.login = 'login'
|
18
|
+
u.name = 'NAME'
|
19
|
+
u.password = 'password'
|
20
|
+
end
|
21
|
+
server.User.normalize
|
22
|
+
server.Keyboard do |k|
|
23
|
+
k.variant = 'us'
|
24
|
+
k.layout = 'us'
|
25
|
+
end
|
26
|
+
server.Keyboard.normalize
|
27
|
+
server.TimeZone do |t|
|
28
|
+
t.auto = false
|
29
|
+
end
|
30
|
+
server.TimeZone.normalize
|
31
|
+
server.Disk do |d|
|
32
|
+
d.name = 'sda'
|
33
|
+
d.size = '10GiB'
|
34
|
+
d.VolumeGroup do |v|
|
35
|
+
v.name = 'VG'
|
36
|
+
v.disk_names = ['sda']
|
37
|
+
v.LogicalVolume do |l|
|
38
|
+
l.size = '2GiB'
|
39
|
+
end
|
40
|
+
v.LogicalVolume do |l|
|
41
|
+
l.size = '4GiB'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
server.Disk.normalize
|
46
|
+
preseed = PackerFiles::Debian::Preseed.new('preseed.cfg')
|
47
|
+
preseed.convert server.Locale, 'Debian/Templates'
|
48
|
+
preseed.convert server.User, 'Debian/Templates'
|
49
|
+
preseed.convert server.Keyboard, 'Debian/Templates'
|
50
|
+
preseed.convert server.TimeZone , 'Debian/Templates'
|
51
|
+
preseed.convert server.Disk, 'Debian/Templates'
|
52
|
+
File.exist?('preseed.cfg').should be(true)
|
53
|
+
File.unlink('preseed.cfg')
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Test file for Debian Server OS
|
2
|
+
require 'OS/Debian/Server'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Debian::Server do
|
6
|
+
|
7
|
+
# Check if we are able to succesfully do an instance eval on
|
8
|
+
# all type accessor methods
|
9
|
+
it 'checks builder instance_eval #1' do
|
10
|
+
server = PackerFiles::Debian::Server.new do |svr|
|
11
|
+
svr.Locale do |l|
|
12
|
+
l.default = 'en_IN'
|
13
|
+
end
|
14
|
+
svr.Locale.normalize
|
15
|
+
svr.User do |u|
|
16
|
+
u.login = 'login'
|
17
|
+
u.name = 'NAME'
|
18
|
+
u.password = 'password'
|
19
|
+
end
|
20
|
+
svr.User.normalize
|
21
|
+
svr.Keyboard do |k|
|
22
|
+
k.variant = 'us'
|
23
|
+
k.layout = 'us'
|
24
|
+
end
|
25
|
+
svr.Keyboard.normalize
|
26
|
+
svr.TimeZone do |t|
|
27
|
+
t.auto = false
|
28
|
+
end
|
29
|
+
svr.TimeZone.normalize
|
30
|
+
svr.Disk do |d|
|
31
|
+
d.name = 'sda'
|
32
|
+
d.size = '10GiB'
|
33
|
+
d.VolumeGroup do |v|
|
34
|
+
v.name = 'VG'
|
35
|
+
v.disk_names = ['sda']
|
36
|
+
v.LogicalVolume do |l|
|
37
|
+
l.size = '2GiB'
|
38
|
+
end
|
39
|
+
v.LogicalVolume do |l|
|
40
|
+
l.size = '4GiB'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
svr.Disk.normalize
|
45
|
+
end
|
46
|
+
server.Locale.default.should eql('en_IN.UTF-8')
|
47
|
+
server.User.login.should eql('login')
|
48
|
+
server.User.name.should eql('NAME')
|
49
|
+
server.User.password.should eql('password')
|
50
|
+
server.Keyboard.layout.should eql('us')
|
51
|
+
server.TimeZone.zone.should be_nil
|
52
|
+
server.Disk.vg.lvs.size.should eql(2)
|
53
|
+
server.Disk.vg.lvs.first.size.should eql(2048)
|
54
|
+
server.Disk.vg.lvs.first.vg_name.should eql('VG')
|
55
|
+
server.Disk.vg.lvs.last.size.should eql(4096)
|
56
|
+
server.Disk.vg.lvs.last.vg_name.should eql('VG')
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Test file for ERB Apt
|
2
|
+
require 'OS/Debian/Apt'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Debian::Apt do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Debian::Apt.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Apt_erb.rb').first
|
11
|
+
obj.tasks = ['standard', 'laptop']
|
12
|
+
obj.kernel = 'linux-virtual'
|
13
|
+
obj.normalize
|
14
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
15
|
+
result.should include('standard')
|
16
|
+
result.should include('laptop')
|
17
|
+
result.should include('linux-virtual')
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Test file for ERB Boot Command
|
2
|
+
require 'Core/Network'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Network do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
class TestPreseed
|
10
|
+
def preseed_file
|
11
|
+
'http/preseed.cfg'
|
12
|
+
end
|
13
|
+
def http_dir
|
14
|
+
'http'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
file = PackerFiles.DirPath('Debian/Templates/boot_command_erb.rb').first
|
18
|
+
hash = { 'obj' => TestPreseed.new }
|
19
|
+
result = PackerFiles.evaluate_erb(file, hash)
|
20
|
+
result.should include('preseed.cfg')
|
21
|
+
result.should_not include('netcfg')
|
22
|
+
end
|
23
|
+
|
24
|
+
# Check ERB template functionalty
|
25
|
+
it 'check erb template #2' do
|
26
|
+
class TestPreseed
|
27
|
+
def preseed_file
|
28
|
+
'http/preseed.cfg'
|
29
|
+
end
|
30
|
+
def http_dir
|
31
|
+
'http'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
net = PackerFiles::Core::Network.new
|
35
|
+
net.interface = 'eth0'
|
36
|
+
net.type = (PackerFiles::Core::Network::STATIC | PackerFiles::Core::Network::IPV4)
|
37
|
+
net.ip = '10.10.10.10'
|
38
|
+
net.mask = '255.255.0.0'
|
39
|
+
net.gateway = '10.11.12.13'
|
40
|
+
net.dns = ['10.20.30.50']
|
41
|
+
net.normalize
|
42
|
+
net.is_static?.should be(true)
|
43
|
+
|
44
|
+
file = PackerFiles.DirPath('Debian/Templates/boot_command_erb.rb').first
|
45
|
+
hash = {'obj' => TestPreseed.new, 'network' => net }
|
46
|
+
result = PackerFiles.evaluate_erb(file, hash)
|
47
|
+
result.should include('preseed.cfg')
|
48
|
+
result.should include('user')
|
49
|
+
result.should include('port')
|
50
|
+
result.should include('10.10.10.10')
|
51
|
+
result.should include('10.11.12.13')
|
52
|
+
result.should include('255.255.0.0')
|
53
|
+
result.should include('10.20.30.50')
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# Test file for ERB Disk
|
2
|
+
require 'Core/Disk'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Disk do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::Disk.new
|
10
|
+
obj.name = 'sda'
|
11
|
+
obj.size = '2GiB'
|
12
|
+
obj.normalize
|
13
|
+
file = PackerFiles.DirPath('Debian/Templates/Disk_erb.rb').first
|
14
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
15
|
+
result.should_not include('2048')
|
16
|
+
end
|
17
|
+
|
18
|
+
# Check ERB template functionalty
|
19
|
+
it 'check erb template #2' do
|
20
|
+
obj = PackerFiles::Core::Disk.new
|
21
|
+
obj.name = 'sda'
|
22
|
+
obj.size = '6GiB'
|
23
|
+
obj.Partition do |p|
|
24
|
+
p.size = '4GiB'
|
25
|
+
p.file_system = 'ext3'
|
26
|
+
p.mount_point = '/'
|
27
|
+
p.boot = true
|
28
|
+
end
|
29
|
+
obj.Partition do |p|
|
30
|
+
p.size = '1GiB'
|
31
|
+
p.file_system = 'linux-swap'
|
32
|
+
end
|
33
|
+
obj.Partition do |p|
|
34
|
+
p.size = '1GiB'
|
35
|
+
p.file_system = 'ext3'
|
36
|
+
p.mount_point = '/abc'
|
37
|
+
end
|
38
|
+
obj.normalize
|
39
|
+
file = PackerFiles.DirPath('Debian/Templates/Disk_erb.rb').first
|
40
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
41
|
+
result.should include('4096')
|
42
|
+
result.should include('1024')
|
43
|
+
result.should include('/abc')
|
44
|
+
result.should include('ext3')
|
45
|
+
result.should include('linux-swap')
|
46
|
+
result.should include('$primary')
|
47
|
+
result.should include('$boot')
|
48
|
+
end
|
49
|
+
|
50
|
+
# Check ERB template functionalty
|
51
|
+
it 'check erb template #3' do
|
52
|
+
obj = PackerFiles::Core::Disk.new
|
53
|
+
obj.name = 'sda'
|
54
|
+
obj.size = '6GiB'
|
55
|
+
obj.VolumeGroup do |v|
|
56
|
+
v.name = 'VG'
|
57
|
+
v.disk_names = ['sda']
|
58
|
+
v.LogicalVolume do |l|
|
59
|
+
l.size = '1GiB'
|
60
|
+
l.file_system = 'linux-swap'
|
61
|
+
end
|
62
|
+
v.LogicalVolume do |l|
|
63
|
+
l.size = '4GiB'
|
64
|
+
l.file_system = 'ext3'
|
65
|
+
l.mount_point = '/abc'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
obj.normalize
|
69
|
+
file = PackerFiles.DirPath('Debian/Templates/Disk_erb.rb').first
|
70
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
71
|
+
result.should include('4096')
|
72
|
+
result.should include('1024')
|
73
|
+
result.should include('/abc')
|
74
|
+
result.should include('ext3')
|
75
|
+
result.should include('linux-swap')
|
76
|
+
result.should include('lv1')
|
77
|
+
result.should include('lv0')
|
78
|
+
result.should include('VG')
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Test file for ERB Keyboard
|
2
|
+
require 'Core/Keyboard'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Keyboard do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::Keyboard.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Keyboard_erb.rb').first
|
11
|
+
obj.variant = 'us'
|
12
|
+
obj.layout = 'us'
|
13
|
+
obj.normalize
|
14
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
15
|
+
result.should include('us')
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Test file for ERB locale
|
2
|
+
require 'Core/Locale'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Locale do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::Locale.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Locale_erb.rb').first
|
11
|
+
obj.default = 'en_IN'
|
12
|
+
obj.normalize
|
13
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
14
|
+
result.should include('en_IN.UTF-8')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'check erb template #2' do
|
18
|
+
obj = PackerFiles::Core::Locale.new
|
19
|
+
file = PackerFiles.DirPath('Debian/Templates/Locale_erb.rb').first
|
20
|
+
obj.default = 'en_IN'
|
21
|
+
obj.normalize(false)
|
22
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
23
|
+
result.should include('en_IN')
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'check erb template #2' do
|
27
|
+
obj = PackerFiles::Core::Locale.new
|
28
|
+
file = PackerFiles.DirPath('Debian/Templates/Locale_erb.rb').first
|
29
|
+
obj.default = 'en_IN'
|
30
|
+
obj.supported = ['en_US']
|
31
|
+
obj.normalize
|
32
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
33
|
+
result.should include('en_US.UTF-8')
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Test file for ERB debian mirror
|
2
|
+
require 'OS/Debian/Mirrors'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Debian::Mirrors do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Debian::Mirrors.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Mirrors_erb.rb').first
|
11
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
12
|
+
result.should include(obj.best.host)
|
13
|
+
result.should include(obj.best.path.chop)
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# Test file for ERB Network
|
2
|
+
require 'Core/Network'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Network do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::Network.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Network_erb.rb').first
|
11
|
+
obj.interface = 'eth0'
|
12
|
+
obj.type = PackerFiles::Core::Network::IPV4
|
13
|
+
obj.normalize
|
14
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
15
|
+
result.should include('eth0')
|
16
|
+
result.should include('dhcp')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'checks erb template #2' do
|
20
|
+
obj = PackerFiles::Core::Network.new
|
21
|
+
obj.interface = 'eth0'
|
22
|
+
obj.type = PackerFiles::Core::Network::STATIC | PackerFiles::Core::Network::IPV4
|
23
|
+
obj.ip = '10.10.10.10'
|
24
|
+
obj.mask = '255.255.0.0'
|
25
|
+
obj.gateway = '10.11.12.13'
|
26
|
+
obj.dns = ['10.20.30.50', '10.20.30.49']
|
27
|
+
obj.normalize
|
28
|
+
file = PackerFiles.DirPath('Debian/Templates/Network_erb.rb').first
|
29
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
30
|
+
result.should include('eth0')
|
31
|
+
result.should include('10.10.10.10')
|
32
|
+
result.should include('255.255.0.0')
|
33
|
+
result.should include('10.11.12.13')
|
34
|
+
result.should include('10.20.30.49')
|
35
|
+
result.should include('10.20.30.50')
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Test file for ERB Packages
|
2
|
+
require 'Core/Packages'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::Packages do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::Packages.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/Packages_erb.rb').first
|
11
|
+
obj.list = ['open-ssh-server', 'docker']
|
12
|
+
obj.normalize
|
13
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
14
|
+
result.should include('open-ssh-server')
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Test file for ERB TimeZone
|
2
|
+
require 'Core/TimeZone'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::TimeZone do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::TimeZone.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/TimeZone_erb.rb').first
|
11
|
+
obj.zone = 'US/Eastern'
|
12
|
+
obj.normalize
|
13
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
14
|
+
result.should include('US/Eastern')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'check erb template #2' do
|
18
|
+
obj = PackerFiles::Core::TimeZone.new
|
19
|
+
file = PackerFiles.DirPath('Debian/Templates/TimeZone_erb.rb').first
|
20
|
+
obj.auto = true
|
21
|
+
obj.normalize
|
22
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
23
|
+
result.should include(obj.zone)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'check erb template #3' do
|
27
|
+
obj = PackerFiles::Core::TimeZone.new
|
28
|
+
file = PackerFiles.DirPath('Debian/Templates/TimeZone_erb.rb').first
|
29
|
+
obj.zone = 'US/Eastern'
|
30
|
+
obj.utc = false
|
31
|
+
obj.normalize
|
32
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
33
|
+
result.should include('false')
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Test file for ERB User
|
2
|
+
require 'Core/User'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Core::User do
|
6
|
+
|
7
|
+
# Check ERB template functionalty
|
8
|
+
it 'check erb template #1' do
|
9
|
+
obj = PackerFiles::Core::User.new
|
10
|
+
file = PackerFiles.DirPath('Debian/Templates/User_erb.rb').first
|
11
|
+
obj.login = 'login'
|
12
|
+
obj.name = 'NAME'
|
13
|
+
obj.password = 'password'
|
14
|
+
obj.groups = ['admin', 'wheel', 'sudo']
|
15
|
+
obj.normalize
|
16
|
+
result = PackerFiles.evaluate_erb(file, {'obj' => obj})
|
17
|
+
result.should include('login')
|
18
|
+
result.should include('NAME')
|
19
|
+
result.should include('password')
|
20
|
+
result.should include('admin')
|
21
|
+
result.should include('wheel')
|
22
|
+
result.should include('sudo')
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Test file for Finder
|
2
|
+
require 'OS/Finder'
|
3
|
+
|
4
|
+
# Describe test cases
|
5
|
+
describe PackerFiles::Finder do
|
6
|
+
|
7
|
+
# Check finder functionalty
|
8
|
+
it 'checks finder #1' do
|
9
|
+
finder = PackerFiles::Finder.new
|
10
|
+
finder.class_name('Debian::Server').should_not be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
# Checks finder list functionality
|
14
|
+
it 'checks finder #2' do
|
15
|
+
finder = PackerFiles::Finder.new
|
16
|
+
classes = finder.class_names
|
17
|
+
classes.should_not be_nil
|
18
|
+
classes.should_not be_empty
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
PackerFiles.Generate('RHEL::Fedora') do |svr|
|
2
|
+
svr.OutDir = File.join(Dir.pwd, 'tmp/abcde')
|
3
|
+
svr.Locale do |l|
|
4
|
+
l.default = 'en_US'
|
5
|
+
end
|
6
|
+
svr.Keyboard do |k|
|
7
|
+
k.variant = 'us'
|
8
|
+
k.layout = 'us'
|
9
|
+
end
|
10
|
+
svr.TimeZone do |t|
|
11
|
+
t.zone = 'US/Eastern'
|
12
|
+
end
|
13
|
+
svr.Network do |n|
|
14
|
+
n.interface = 'eth0'
|
15
|
+
n.type = PackerFiles::Core::Network::IPV4
|
16
|
+
end
|
17
|
+
svr.User do |u|
|
18
|
+
u.login = 'vagrant'
|
19
|
+
u.name = 'vagrant'
|
20
|
+
u.password = 'vagrant'
|
21
|
+
u.uid = 900
|
22
|
+
end
|
23
|
+
svr.Disk do |d|
|
24
|
+
d.name = 'sda'
|
25
|
+
d.size = '20GiB'
|
26
|
+
end
|
27
|
+
svr.Packages do |p|
|
28
|
+
p.list = %w[
|
29
|
+
openssh-clients sudo kernel-headers kernel-devel
|
30
|
+
gcc make perl curl wget nfs-utils -fprintd-pam -intltool
|
31
|
+
]
|
32
|
+
end
|
33
|
+
svr.CDImage do |var|
|
34
|
+
var.release = '18'
|
35
|
+
var.arch = 'x86_64'
|
36
|
+
end
|
37
|
+
svr.Hypervisors do |h|
|
38
|
+
h.VirtualBox do |v|
|
39
|
+
v.cpu_count = 2
|
40
|
+
v.ram_size = '1GiB'
|
41
|
+
v.use_efi = false
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
PackerFiles.Generate('RHEL::Server') do |svr|
|
2
|
+
svr.OutDir = File.join(Dir.pwd, 'tmp/abcde')
|
3
|
+
svr.Locale do |l|
|
4
|
+
l.default = 'en_US'
|
5
|
+
end
|
6
|
+
svr.Keyboard do |k|
|
7
|
+
k.variant = 'us'
|
8
|
+
k.layout = 'us'
|
9
|
+
end
|
10
|
+
svr.TimeZone do |t|
|
11
|
+
t.zone = 'US/Eastern'
|
12
|
+
end
|
13
|
+
svr.Network do |n|
|
14
|
+
n.interface = 'eth0'
|
15
|
+
n.type = PackerFiles::Core::Network::IPV4
|
16
|
+
end
|
17
|
+
svr.User do |u|
|
18
|
+
u.login = 'vagrant'
|
19
|
+
u.name = 'vagrant'
|
20
|
+
u.password = 'vagrant'
|
21
|
+
u.uid = 900
|
22
|
+
end
|
23
|
+
svr.Disk do |d|
|
24
|
+
d.name = 'sda'
|
25
|
+
d.size = '20GiB'
|
26
|
+
end
|
27
|
+
svr.Packages do |p|
|
28
|
+
p.list = %w[
|
29
|
+
openssh-clients sudo kernel-headers kernel-devel
|
30
|
+
gcc make perl curl wget nfs-utils -fprintd-pam -intltool
|
31
|
+
]
|
32
|
+
end
|
33
|
+
svr.CDImage do |var|
|
34
|
+
var.release = '6.5'
|
35
|
+
var.arch = 'x86_64'
|
36
|
+
end
|
37
|
+
svr.Hypervisors do |h|
|
38
|
+
h.VMWare do |v|
|
39
|
+
v.cpu_count = 2
|
40
|
+
v.ram_size = '1GiB'
|
41
|
+
v.use_efi = false
|
42
|
+
v.Custom do |vmware|
|
43
|
+
vmware.remote_cache_datastore = "ds1"
|
44
|
+
vmware.remote_cache_directory = "ds1/dir1"
|
45
|
+
vmware.remote_datastore = "ds11"
|
46
|
+
vmware.remote_host = "remotehost.com"
|
47
|
+
vmware.remote_password = "remote_password"
|
48
|
+
vmware.remote_type = "esx5"
|
49
|
+
vmware.remote_username = "remote_user"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|