PackerFiles 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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