PackerFiles 0.0.1

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.
Files changed (195) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/PackerFiles.gemspec +36 -0
  6. data/README.md +32 -0
  7. data/Rakefile +21 -0
  8. data/bin/pkf +5 -0
  9. data/lib/PackerFiles/CLI/OS.rb +44 -0
  10. data/lib/PackerFiles/CLI/Root.rb +41 -0
  11. data/lib/PackerFiles/Core/Base.rb +23 -0
  12. data/lib/PackerFiles/Core/CDImage.rb +185 -0
  13. data/lib/PackerFiles/Core/Disk.rb +135 -0
  14. data/lib/PackerFiles/Core/Exceptions.rb +65 -0
  15. data/lib/PackerFiles/Core/Hypervisor.rb +96 -0
  16. data/lib/PackerFiles/Core/Keyboard.rb +38 -0
  17. data/lib/PackerFiles/Core/Locale.rb +62 -0
  18. data/lib/PackerFiles/Core/LogicalVolume.rb +41 -0
  19. data/lib/PackerFiles/Core/Network.rb +67 -0
  20. data/lib/PackerFiles/Core/Packages.rb +30 -0
  21. data/lib/PackerFiles/Core/Partition.rb +41 -0
  22. data/lib/PackerFiles/Core/TimeZone.rb +45 -0
  23. data/lib/PackerFiles/Core/User.rb +46 -0
  24. data/lib/PackerFiles/Core/VolumeGroup.rb +50 -0
  25. data/lib/PackerFiles/Core/example/CDImage.txt +75 -0
  26. data/lib/PackerFiles/Core/example/Disk.txt +29 -0
  27. data/lib/PackerFiles/Core/example/Hypervisor.txt +111 -0
  28. data/lib/PackerFiles/Core/example/Keyboard.txt +28 -0
  29. data/lib/PackerFiles/Core/example/Locale.txt +31 -0
  30. data/lib/PackerFiles/Core/example/Network.txt +68 -0
  31. data/lib/PackerFiles/Core/example/Packages.txt +22 -0
  32. data/lib/PackerFiles/Core/example/TimeZone.txt +36 -0
  33. data/lib/PackerFiles/Core/example/User.txt +48 -0
  34. data/lib/PackerFiles/OS/Builder.rb +116 -0
  35. data/lib/PackerFiles/OS/CentOS/CD.rb +81 -0
  36. data/lib/PackerFiles/OS/CentOS/Kickstart.rb +64 -0
  37. data/lib/PackerFiles/OS/CentOS/Server.rb +170 -0
  38. data/lib/PackerFiles/OS/CentOS/Templates/Base_erb.rb +4 -0
  39. data/lib/PackerFiles/OS/CentOS/Templates/Disk_erb.rb +35 -0
  40. data/lib/PackerFiles/OS/CentOS/Templates/Keyboard_erb.rb +4 -0
  41. data/lib/PackerFiles/OS/CentOS/Templates/Locale_erb.rb +4 -0
  42. data/lib/PackerFiles/OS/CentOS/Templates/Network_erb.rb +17 -0
  43. data/lib/PackerFiles/OS/CentOS/Templates/Packages_erb.rb +34 -0
  44. data/lib/PackerFiles/OS/CentOS/Templates/Tail_erb.rb +15 -0
  45. data/lib/PackerFiles/OS/CentOS/Templates/TimeZone_erb.rb +10 -0
  46. data/lib/PackerFiles/OS/CentOS/Templates/User_erb.rb +20 -0
  47. data/lib/PackerFiles/OS/CentOS/Templates/boot_command_erb.rb +16 -0
  48. data/lib/PackerFiles/OS/CentOS/Templates/command_as_root_erb.rb +1 -0
  49. data/lib/PackerFiles/OS/CentOS/Templates/disable_root_erb.rb +1 -0
  50. data/lib/PackerFiles/OS/CentOS/Templates/enable_root_erb.rb +1 -0
  51. data/lib/PackerFiles/OS/CentOS/Templates/shutdown_command_erb.rb +1 -0
  52. data/lib/PackerFiles/OS/Debian/Apt.rb +42 -0
  53. data/lib/PackerFiles/OS/Debian/CD.rb +65 -0
  54. data/lib/PackerFiles/OS/Debian/Mirrors.rb +73 -0
  55. data/lib/PackerFiles/OS/Debian/Preseed.rb +64 -0
  56. data/lib/PackerFiles/OS/Debian/Server.rb +169 -0
  57. data/lib/PackerFiles/OS/Debian/Templates/Apt_erb.rb +18 -0
  58. data/lib/PackerFiles/OS/Debian/Templates/Disk_erb.rb +69 -0
  59. data/lib/PackerFiles/OS/Debian/Templates/Keyboard_erb.rb +5 -0
  60. data/lib/PackerFiles/OS/Debian/Templates/Locale_erb.rb +7 -0
  61. data/lib/PackerFiles/OS/Debian/Templates/Mirrors_erb.rb +9 -0
  62. data/lib/PackerFiles/OS/Debian/Templates/Network_erb.rb +19 -0
  63. data/lib/PackerFiles/OS/Debian/Templates/Packages_erb.rb +6 -0
  64. data/lib/PackerFiles/OS/Debian/Templates/TimeZone_erb.rb +6 -0
  65. data/lib/PackerFiles/OS/Debian/Templates/User_erb.rb +14 -0
  66. data/lib/PackerFiles/OS/Debian/Templates/boot_command_erb.rb +24 -0
  67. data/lib/PackerFiles/OS/Debian/Templates/command_as_root_erb.rb +1 -0
  68. data/lib/PackerFiles/OS/Debian/Templates/disable_root_erb.rb +5 -0
  69. data/lib/PackerFiles/OS/Debian/Templates/enable_root_erb.rb +1 -0
  70. data/lib/PackerFiles/OS/Debian/Templates/shutdown_command_erb.rb +1 -0
  71. data/lib/PackerFiles/OS/Debian/example/Apt.txt +55 -0
  72. data/lib/PackerFiles/OS/DocGenerator.rb +51 -0
  73. data/lib/PackerFiles/OS/Finder.rb +96 -0
  74. data/lib/PackerFiles/OS/RHEL/CD.rb +32 -0
  75. data/lib/PackerFiles/OS/RHEL/Fedora.rb +59 -0
  76. data/lib/PackerFiles/OS/RHEL/FedoraCD.rb +68 -0
  77. data/lib/PackerFiles/OS/RHEL/Server.rb +32 -0
  78. data/lib/PackerFiles/OS/RHEL/Templates/Fedora_Tail_erb.rb +14 -0
  79. data/lib/PackerFiles/OS/RHEL/Templates/boot_command_fedora_erb.rb +16 -0
  80. data/lib/PackerFiles/OS/SUSE/Templates/Base_erb.xml +32 -0
  81. data/lib/PackerFiles/OS/SUSE/Templates/Disk_erb.xml +110 -0
  82. data/lib/PackerFiles/OS/SUSE/Templates/Keyboard_erb.xml +7 -0
  83. data/lib/PackerFiles/OS/SUSE/Templates/Locale_erb.xml +18 -0
  84. data/lib/PackerFiles/OS/SUSE/Templates/Network_erb.xml +143 -0
  85. data/lib/PackerFiles/OS/SUSE/Templates/Packages_erb.xml +29 -0
  86. data/lib/PackerFiles/OS/SUSE/Templates/Tail_erb.xml +4 -0
  87. data/lib/PackerFiles/OS/SUSE/Templates/TimeZone_erb.xml +15 -0
  88. data/lib/PackerFiles/OS/SUSE/Templates/User_erb.xml +57 -0
  89. data/lib/PackerFiles/OS/SUSE/Templates/boot_command_erb.rb +23 -0
  90. data/lib/PackerFiles/OS/SUSE/Templates/command_as_root_erb.rb +1 -0
  91. data/lib/PackerFiles/OS/SUSE/Templates/disable_root_erb.rb +1 -0
  92. data/lib/PackerFiles/OS/SUSE/Templates/enable_root_erb.rb +1 -0
  93. data/lib/PackerFiles/OS/SUSE/Templates/shutdown_command_erb.rb +1 -0
  94. data/lib/PackerFiles/OS/Ubuntu/CD.rb +81 -0
  95. data/lib/PackerFiles/OS/Ubuntu/Desktop.rb +50 -0
  96. data/lib/PackerFiles/OS/Ubuntu/DesktopCD.rb +16 -0
  97. data/lib/PackerFiles/OS/Ubuntu/Mirrors.rb +103 -0
  98. data/lib/PackerFiles/OS/Ubuntu/Server.rb +78 -0
  99. data/lib/PackerFiles/OS/Ubuntu/Templates/Apt_erb.rb +18 -0
  100. data/lib/PackerFiles/OS/Ubuntu/Templates/boot_command_desktop_erb.rb +36 -0
  101. data/lib/PackerFiles/OS/Ubuntu/Templates/boot_command_erb.rb +30 -0
  102. data/lib/PackerFiles/OS/Ubuntu/Templates/ubiquity_erb.rb +8 -0
  103. data/lib/PackerFiles/OS/example/Doc.txt +8 -0
  104. data/lib/PackerFiles/Provision/Base.rb +20 -0
  105. data/lib/PackerFiles/Provision/ChefSolo.rb +90 -0
  106. data/lib/PackerFiles/Provision/ChefSoloHelper.rb +72 -0
  107. data/lib/PackerFiles/Provision/Copy.rb +22 -0
  108. data/lib/PackerFiles/Provision/ExternalScript.rb +43 -0
  109. data/lib/PackerFiles/Provision/InlineScript.rb +37 -0
  110. data/lib/PackerFiles/Provision/Provisioners.rb +87 -0
  111. data/lib/PackerFiles/Provision/example/Provisioners.txt +21 -0
  112. data/lib/PackerFiles/Utils/AutoZone.rb +96 -0
  113. data/lib/PackerFiles/Utils/FastestURL.rb +73 -0
  114. data/lib/PackerFiles/Utils/Generator.rb +34 -0
  115. data/lib/PackerFiles/Utils/HashSerializer.rb +110 -0
  116. data/lib/PackerFiles/Utils/Size.rb +44 -0
  117. data/lib/PackerFiles/Utils/TypeAccessor.rb +71 -0
  118. data/lib/PackerFiles/Virtual/Hypervisors.rb +72 -0
  119. data/lib/PackerFiles/Virtual/KVM.rb +119 -0
  120. data/lib/PackerFiles/Virtual/KVMConverter.rb +79 -0
  121. data/lib/PackerFiles/Virtual/VMWare.rb +108 -0
  122. data/lib/PackerFiles/Virtual/VMWareConverter.rb +78 -0
  123. data/lib/PackerFiles/Virtual/VirtualBox.rb +98 -0
  124. data/lib/PackerFiles/Virtual/VirtualBoxConverter.rb +75 -0
  125. data/lib/PackerFiles/Virtual/example/Hypervisors.txt +23 -0
  126. data/lib/PackerFiles/version.rb +3 -0
  127. data/lib/PackerFiles.rb +44 -0
  128. data/spec/core/builder_spec.rb +84 -0
  129. data/spec/core/cdimage_spec.rb +159 -0
  130. data/spec/core/disk_spec.rb +191 -0
  131. data/spec/core/keyboard_spec.rb +36 -0
  132. data/spec/core/locale_spec.rb +73 -0
  133. data/spec/core/network_spec.rb +96 -0
  134. data/spec/core/packages_spec.rb +18 -0
  135. data/spec/core/timezone_spec.rb +43 -0
  136. data/spec/core/user_spec.rb +44 -0
  137. data/spec/core/volume_group_spec.rb +53 -0
  138. data/spec/os/centos/cd_spec.rb +12 -0
  139. data/spec/os/centos/data/Server-Script-Provisioner.rb +57 -0
  140. data/spec/os/centos/data/Server.rb +55 -0
  141. data/spec/os/centos/data/chef-solo-provisioner.rb +58 -0
  142. data/spec/os/centos/finder_spec.rb +22 -0
  143. data/spec/os/centos/templates/boot_command_spec.rb +57 -0
  144. data/spec/os/centos/templates/disk_spec.rb +79 -0
  145. data/spec/os/centos/templates/keyboard_spec.rb +18 -0
  146. data/spec/os/centos/templates/locale_spec.rb +26 -0
  147. data/spec/os/centos/templates/network_spec.rb +38 -0
  148. data/spec/os/centos/templates/packages_spec.rb +18 -0
  149. data/spec/os/centos/templates/timezone_spec.rb +37 -0
  150. data/spec/os/centos/templates/user_spec.rb +24 -0
  151. data/spec/os/debian/apt_spec.rb +50 -0
  152. data/spec/os/debian/cd_spec.rb +30 -0
  153. data/spec/os/debian/data/7zip.tar.gz +0 -0
  154. data/spec/os/debian/data/All-sections.rb +60 -0
  155. data/spec/os/debian/data/Chef-Solo-Provisioner.rb +60 -0
  156. data/spec/os/debian/data/Copy-Provisioner.rb +61 -0
  157. data/spec/os/debian/data/External-Script-Provisioner.rb +69 -0
  158. data/spec/os/debian/data/Missing-CDImage.rb +53 -0
  159. data/spec/os/debian/data/Missing-VMWare-KVM-sections.rb +51 -0
  160. data/spec/os/debian/data/Missing-sections.rb +53 -0
  161. data/spec/os/debian/data/Script-Provisioner.rb +62 -0
  162. data/spec/os/debian/data/chef-solo-cookbooks/git_setup/Berksfile.lock +32 -0
  163. data/spec/os/debian/data/chef-solo-cookbooks/git_setup/README.md +81 -0
  164. data/spec/os/debian/data/chef-solo-cookbooks/git_setup/attributes/default.rb +3 -0
  165. data/spec/os/debian/data/chef-solo-cookbooks/git_setup/metadata.rb +11 -0
  166. data/spec/os/debian/data/chef-solo-cookbooks/git_setup/recipes/default.rb +30 -0
  167. data/spec/os/debian/data/chef-solo.json +5 -0
  168. data/spec/os/debian/data/test-script.sh +4 -0
  169. data/spec/os/debian/finder_spec.rb +59 -0
  170. data/spec/os/debian/mirrors_spec.rb +18 -0
  171. data/spec/os/debian/preseed_spec.rb +56 -0
  172. data/spec/os/debian/server_spec.rb +59 -0
  173. data/spec/os/debian/templates/apt_spec.rb +20 -0
  174. data/spec/os/debian/templates/boot_command_spec.rb +56 -0
  175. data/spec/os/debian/templates/disk_spec.rb +81 -0
  176. data/spec/os/debian/templates/keyboard_spec.rb +18 -0
  177. data/spec/os/debian/templates/locale_spec.rb +36 -0
  178. data/spec/os/debian/templates/mirrors_spec.rb +16 -0
  179. data/spec/os/debian/templates/network_spec.rb +38 -0
  180. data/spec/os/debian/templates/packages_spec.rb +17 -0
  181. data/spec/os/debian/templates/timezone_spec.rb +36 -0
  182. data/spec/os/debian/templates/user_spec.rb +25 -0
  183. data/spec/os/finder_spec.rb +21 -0
  184. data/spec/os/rhel/data/Fedora.rb +45 -0
  185. data/spec/os/rhel/data/Server-Custom.rb +54 -0
  186. data/spec/os/rhel/data/Server.rb +45 -0
  187. data/spec/os/rhel/finder_spec.rb +21 -0
  188. data/spec/os/ubuntu/cd_spec.rb +28 -0
  189. data/spec/os/ubuntu/data/Desktop.rb +61 -0
  190. data/spec/os/ubuntu/data/Server.rb +61 -0
  191. data/spec/os/ubuntu/finder_spec.rb +17 -0
  192. data/spec/os/ubuntu/mirrors_spec.rb +18 -0
  193. data/spec/utils/autozone_spec.rb +33 -0
  194. data/spec/virtual/virtual_box_spec.rb +16 -0
  195. metadata +405 -0
@@ -0,0 +1,30 @@
1
+ # Test file for DebianCD class in Debian Server OS
2
+ require 'OS/Debian/CD'
3
+
4
+ # Describe test cases
5
+ describe PackerFiles::Debian::CD do
6
+
7
+ # Check for very basic variables
8
+ it 'checks url list' do
9
+ cd = PackerFiles::Debian::CD.new
10
+ cd.get_iso_name_pattern.should include('@arch@')
11
+ cd.get_check_sum_pattern.should include('MD5SUMS')
12
+ cd.get_check_sum_type.should include('md5')
13
+ end
14
+
15
+ # Check for very basic variables
16
+ it 'checks if the URL list is correct for a given Country' do
17
+ cd = PackerFiles::Debian::CD.new
18
+ cd.get_iso_name_pattern.should include('@arch@')
19
+ cd.get_check_sum_pattern.should include('MD5SUMS')
20
+ cd.get_check_sum_type.should include('md5')
21
+ urls = cd.index_urls
22
+ urls.size.should >= 2
23
+ urls.each do |url|
24
+ url.should include('@release@')
25
+ url.should include('@arch@')
26
+ url.should include('iso-cd/')
27
+ end
28
+ end
29
+
30
+ end
Binary file
@@ -0,0 +1,60 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '7.6.0'
40
+ var.arch = 'i386'
41
+ end
42
+ svr.Hypervisors do |h|
43
+ h.VirtualBox do |v|
44
+ v.cpu_count = 2
45
+ v.ram_size = '1GiB'
46
+ v.use_efi = false
47
+ end
48
+ h.KVM do |k|
49
+ k.cpu_count = 2
50
+ k.ram_size = '1GiB'
51
+ k.use_efi = false
52
+ end
53
+ h.VMWare do |v|
54
+ v.cpu_count = 2
55
+ v.ram_size = '1GiB'
56
+ v.use_efi = false
57
+ end
58
+ end
59
+ end
60
+
@@ -0,0 +1,60 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.check_sum_type = 'md5'
42
+ end
43
+ svr.Hypervisors do |h|
44
+ h.VirtualBox do |v|
45
+ v.cpu_count = 2
46
+ v.ram_size = '1GiB'
47
+ v.use_efi = false
48
+ end
49
+ end
50
+ svr.Provision do |prov|
51
+ prov.ChefSolo do |chef|
52
+ chef.cookbook_paths = [ 'spec/os/debian/data/chef-solo-cookbooks',
53
+ 'spec/os/debian/data/7zip.tar.gz'
54
+ ]
55
+ chef.run_list = [ 'git_setup' ]
56
+ chef.json = 'spec/os/debian/data/chef-solo.json'
57
+ end
58
+ end
59
+ end
60
+
@@ -0,0 +1,61 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.check_sum_type = 'md5'
42
+ end
43
+ svr.Hypervisors do |h|
44
+ h.VirtualBox do |v|
45
+ v.cpu_count = 2
46
+ v.ram_size = '1GiB'
47
+ v.use_efi = false
48
+ end
49
+ end
50
+ svr.Provision do |prov|
51
+ prov.Copy do |cp|
52
+ cp.source = '/etc/bash.bashrc'
53
+ cp.destination = '/tmp/bashrc'
54
+ end
55
+ prov.Copy do |cp|
56
+ cp.source = '/etc/emacs/'
57
+ cp.destination = '/tmp/emacs/'
58
+ end
59
+ end
60
+ end
61
+
@@ -0,0 +1,69 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.check_sum_type = 'md5'
42
+ end
43
+ svr.Hypervisors do |h|
44
+ h.VirtualBox do |v|
45
+ v.cpu_count = 2
46
+ v.ram_size = '1GiB'
47
+ v.use_efi = false
48
+ end
49
+ end
50
+ svr.Provision do |prov|
51
+ prov.InlineScript do |script|
52
+ script.environment_vars = {'ABC' => 123}
53
+ script.execute_command = "echo vagrant | {{ .Vars }} sudo -E -S sh '{{ .Path }}'"
54
+ script.inline = <<-eos
55
+ echo $ABC
56
+ apt-get update
57
+ apt-get --yes install bison
58
+ eos
59
+ end
60
+ prov.ExternalScript do |external|
61
+ external.environment_vars = {'ABC' => 123}
62
+ external.execute_command = "echo vagrant | {{ .Vars }} sudo -E -S sh '{{ .Path }}'"
63
+ external.scripts = [
64
+ 'spec/os/debian/data/test-script.sh'
65
+ ]
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,53 @@
1
+ PackerFiles.Generate('Debian::Server') do |svr|
2
+ svr.OutDir = '/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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ # svr.CDImage do |var|
39
+ # var.release = '6.0.9'
40
+ # var.arch = 'i386'
41
+ # var.iso_url = 'http://cdimage.debian.org/mirror/cdimage/archive/6.0.9/i386/iso-cd/debian-6.0.9-i386-kde-CD-1.iso'
42
+ # var.check_sum = 'b125597ef23366594eb18b82352e06f9'
43
+ # var.check_sum_type = 'md5'
44
+ # end
45
+ svr.Hypervisors do |h|
46
+ h.VirtualBox do |v|
47
+ v.cpu_count = 2
48
+ v.ram_size = '1GiB'
49
+ v.use_efi = false
50
+ end
51
+ end
52
+ end
53
+
@@ -0,0 +1,51 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.iso_url = 'http://cdimage.debian.org/mirror/cdimage/archive/6.0.9/i386/iso-cd/debian-6.0.9-i386-kde-CD-1.iso'
42
+ var.check_sum = 'b125597ef23366594eb18b82352e06f9'
43
+ var.check_sum_type = 'md5'
44
+ end
45
+ # svr.VirtualBox do |v|
46
+ # v.cpu_count = 2
47
+ # v.ram_size = '1GiB'
48
+ # v.use_efi = false
49
+ # end
50
+ end
51
+
@@ -0,0 +1,53 @@
1
+ PackerFiles.Generate('Debian::Server') do |svr|
2
+ svr.OutDir = '/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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ # svr.Apt do |apt|
36
+ # apt.tasks = ['standard']
37
+ # end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.iso_url = 'http://cdimage.debian.org/mirror/cdimage/archive/6.0.9/i386/iso-cd/debian-6.0.9-i386-kde-CD-1.iso'
42
+ var.check_sum = 'b125597ef23366594eb18b82352e06f9'
43
+ var.check_sum_type = 'md5'
44
+ end
45
+ svr.Hypervisors do |h|
46
+ h.VirtualBox do |v|
47
+ v.cpu_count = 2
48
+ v.ram_size = '1GiB'
49
+ v.use_efi = false
50
+ end
51
+ end
52
+ end
53
+
@@ -0,0 +1,62 @@
1
+ PackerFiles.Generate('Debian::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-server sudo bzip2
30
+ acpid cryptsetup zlib1g-dev
31
+ wget curl dkms make
32
+ nfs-common
33
+ ]
34
+ end
35
+ svr.Apt do |apt|
36
+ apt.tasks = ['standard']
37
+ end
38
+ svr.CDImage do |var|
39
+ var.release = '6.0.9'
40
+ var.arch = 'i386'
41
+ var.check_sum_type = 'md5'
42
+ end
43
+ svr.Hypervisors do |h|
44
+ h.VirtualBox do |v|
45
+ v.cpu_count = 2
46
+ v.ram_size = '1GiB'
47
+ v.use_efi = false
48
+ end
49
+ end
50
+ svr.Provision do |prov|
51
+ prov.InlineScript do |script|
52
+ script.environment_vars = {'ABC' => 123}
53
+ script.execute_command = "echo vagrant | {{ .Vars }} sudo -E -S sh '{{ .Path }}'"
54
+ script.inline = <<-eos
55
+ echo $ABC
56
+ apt-get update
57
+ apt-get --yes install bison
58
+ eos
59
+ end
60
+ end
61
+ end
62
+
@@ -0,0 +1,32 @@
1
+ {
2
+ "sources": {
3
+ "git_setup": {
4
+ "path": "."
5
+ },
6
+ "git": {
7
+ "locked_version": "4.0.0"
8
+ },
9
+ "windows": {
10
+ "locked_version": "1.30.2"
11
+ },
12
+ "dmg": {
13
+ "locked_version": "2.2.0"
14
+ },
15
+ "build-essential": {
16
+ "locked_version": "2.0.0"
17
+ },
18
+ "runit": {
19
+ "locked_version": "1.5.10"
20
+ },
21
+ "yum": {
22
+ "locked_version": "3.2.0"
23
+ },
24
+ "yum-epel": {
25
+ "locked_version": "0.3.6"
26
+ },
27
+ "chef_handler": {
28
+ "locked_version": "1.1.6"
29
+ }
30
+ }
31
+ }
32
+
@@ -0,0 +1,81 @@
1
+ git_setup Cookbook
2
+ ==================
3
+ This wrapper cookbook sets up git for various platforms.
4
+
5
+ Requirements
6
+ ============
7
+
8
+ ## Ohai and Chef:
9
+
10
+ * Ohai: 0.6.12+
11
+ * Chef: 0.10.10+
12
+
13
+ As of v1.2.0, this cookbook makes use of `node['platform_family']` to
14
+ simplify platform selection logic. This attribute was introduced in
15
+ Ohai v0.6.12. The recipe methods were introduced in Chef v0.10.10.
16
+
17
+ ## Cookbooks:
18
+
19
+ This cookbook depends upon the following cookbooks.
20
+
21
+ * git
22
+ * windows
23
+ * dmg
24
+
25
+ ## Platforms:
26
+
27
+ The following platforms and versions are tested and supported using
28
+ Opscode's [test-kitchen](http://github.com/opscode/test-kitchen).
29
+
30
+ * Ubuntu 12.04, 13.10, 14.04
31
+ * CentOS 6.4, 6.5
32
+ * Windows 8
33
+ * Mac OS X
34
+
35
+ The following platform families are supported in the code, and are
36
+ assumed to work based on the successful testing on Ubuntu and CentOS.
37
+
38
+ * Debian
39
+ * Red Hat (rhel)
40
+ * Fedora
41
+ * Amazon Linux
42
+
43
+ Tests
44
+ =====
45
+ See .kitchen.yml for test suite description.
46
+
47
+ Attributes
48
+ ==========
49
+ - None
50
+
51
+ Recipes
52
+ =======
53
+
54
+ default
55
+ -------
56
+ Installs git.
57
+
58
+ Usage
59
+ =====
60
+
61
+ Using this cookbook is relatively straightforward. Add the desired recipes to the run list of a node, as shown below
62
+
63
+ include_recipe 'git_setup'
64
+
65
+ License and Authors
66
+ ===================
67
+
68
+ * Author:: Anand Venkatanarayanan <external_mails_anandv-github@yahoo.co.in>
69
+
70
+ Licensed under the Apache License, Version 2.0 (the "License");
71
+ you may not use this file except in compliance with the License.
72
+ You may obtain a copy of the License at
73
+
74
+ http://www.apache.org/licenses/LICENSE-2.0
75
+
76
+ Unless required by applicable law or agreed to in writing, software
77
+ distributed under the License is distributed on an "AS IS" BASIS,
78
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
79
+ See the License for the specific language governing permissions and
80
+ limitations under the License.
81
+
@@ -0,0 +1,3 @@
1
+
2
+ # Attribute for installing documetation.
3
+ default['git_setup']['doc'] = false
@@ -0,0 +1,11 @@
1
+ name 'git_setup'
2
+ maintainer 'Anand Venkatanarayanan'
3
+ maintainer_email 'external_mails_anandv-github@yahoo.co.in'
4
+ license 'Apache 2.0'
5
+ description 'Installs/Configures git'
6
+ long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7
+ version '0.1.0'
8
+ recipe 'git_setup', 'installs and configures git'
9
+
10
+ # List all the OS that were tested with this cookbook
11
+ supports 'debian'
@@ -0,0 +1,30 @@
1
+ #
2
+ # Cookbook Name:: git_setup
3
+ # Recipe:: default
4
+ #
5
+ # Copyright 2013-20, Anand Venkatanarayanan
6
+ #
7
+ # Licensed under the Apache License, Version 2.0 (the "License");
8
+ # you may not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing, software
14
+ # distributed under the License is distributed on an "AS IS" BASIS,
15
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ # See the License for the specific language governing permissions and
17
+ # limitations under the License.
18
+ #
19
+
20
+ # Just include the default recipe and there is nothing more to do.
21
+ package "git" do
22
+ action :install
23
+ end
24
+
25
+ # Install documentation if asked for
26
+ if node['git_setup']['doc']
27
+ package "git-doc" do
28
+ action :install
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ {
2
+ "git_setup":{
3
+ "doc": true
4
+ }
5
+ }
@@ -0,0 +1,4 @@
1
+ echo $ABC
2
+ echo $PACKER_BUILD_NAME
3
+ echo $PACKER_BUILD_TYPE
4
+ apt-get install make-doc