kameleon-builder 2.1.3 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (185) hide show
  1. data/.editorconfig +0 -0
  2. data/.env +2 -6
  3. data/CHANGELOG.rst +74 -1
  4. data/Gemfile +20 -2
  5. data/README.rst +35 -25
  6. data/Thorfile +29 -0
  7. data/contrib/kameleon_bashrc.sh +61 -0
  8. data/contrib/polipo_env.sh +3 -2
  9. data/kameleon-builder.gemspec +3 -10
  10. data/lib/kameleon.rb +10 -14
  11. data/lib/kameleon/cli.rb +92 -105
  12. data/lib/kameleon/context.rb +76 -43
  13. data/lib/kameleon/engine.rb +147 -103
  14. data/lib/kameleon/environment.rb +10 -5
  15. data/lib/kameleon/error.rb +1 -32
  16. data/lib/kameleon/persistent_cache.rb +127 -29
  17. data/lib/kameleon/recipe.rb +63 -106
  18. data/lib/kameleon/shell.rb +32 -17
  19. data/lib/kameleon/step.rb +18 -1
  20. data/lib/kameleon/ui.rb +141 -0
  21. data/lib/kameleon/utils.rb +9 -0
  22. data/templates/{debian7-chroot.yaml → chroot/debian7-amd64.yaml} +29 -21
  23. data/templates/{docker-debian7.yaml → docker/debian7.yaml} +5 -5
  24. data/templates/extend.erb +2 -2
  25. data/templates/{debian7-g5k.yaml → grid5000/debian7.yaml} +1 -1
  26. data/templates/{archlinux-desktop.yaml → qemu/archlinux-desktop-i686.yaml} +2 -2
  27. data/templates/qemu/archlinux-desktop-x86_64.yaml +25 -0
  28. data/templates/qemu/archlinux-i686.yaml +25 -0
  29. data/templates/{archlinux.yaml → qemu/archlinux-x86_64.yaml} +37 -34
  30. data/templates/qemu/centos6.5-x86_64.yaml +113 -0
  31. data/templates/qemu/centos7-x86_64.yaml +119 -0
  32. data/templates/{debian7.yaml → qemu/debian7-amd64.yaml} +45 -40
  33. data/templates/{debian7-desktop.yaml → qemu/debian7-desktop-amd64.yaml} +2 -3
  34. data/templates/{debian7-kameleon.yaml → qemu/debian7-kameleon-amd64.yaml} +3 -6
  35. data/templates/{debian7-oar-dev.yaml → qemu/debian7-oar-amd64.yaml} +2 -2
  36. data/templates/qemu/debian8-amd64.yaml +25 -0
  37. data/templates/{fedora20-desktop.yaml → qemu/fedora20-desktop-x86_64.yaml} +2 -2
  38. data/templates/qemu/fedora20-x86_64.yaml +116 -0
  39. data/templates/{ubuntu-12.04.yaml → qemu/ubuntu-12.04-amd64.yaml} +42 -38
  40. data/templates/{ubuntu-12.04-desktop.yaml → qemu/ubuntu-12.04-desktop-amd64.yaml} +3 -3
  41. data/templates/{ubuntu-14.04.yaml → qemu/ubuntu-14.04-amd64.yaml} +2 -2
  42. data/templates/{ubuntu-14.04-desktop.yaml → qemu/ubuntu-14.04-desktop-amd64.yaml} +2 -2
  43. data/templates/steps/aliases/defaults.yaml +19 -13
  44. data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +11 -19
  45. data/templates/steps/bootstrap/debian/debootstrap.yaml +10 -11
  46. data/templates/steps/bootstrap/debian/debootstrap_arm.yaml +11 -19
  47. data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +13 -0
  48. data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +45 -0
  49. data/templates/steps/bootstrap/initialize_disk.yaml +16 -0
  50. data/templates/steps/bootstrap/initialize_disk_chroot.yaml +10 -14
  51. data/templates/steps/bootstrap/install_requirements.yaml +3 -0
  52. data/templates/steps/bootstrap/prepare_docker.yaml +7 -7
  53. data/templates/steps/bootstrap/prepare_qemu.yaml +20 -26
  54. data/templates/steps/bootstrap/prepare_virtualbox.yaml +63 -0
  55. data/templates/steps/bootstrap/start_chroot.yaml +2 -13
  56. data/templates/steps/bootstrap/start_qemu.yaml +50 -53
  57. data/templates/steps/bootstrap/start_virtualbox.yaml +37 -0
  58. data/templates/steps/bootstrap/switch_context_qemu.yaml +64 -0
  59. data/templates/steps/bootstrap/switch_context_virtualbox.yaml +66 -0
  60. data/templates/steps/breakpoint.yaml +2 -1
  61. data/templates/steps/checkpoints/docker.yaml +14 -11
  62. data/templates/steps/checkpoints/qcow2.yaml +26 -24
  63. data/templates/steps/checkpoints/qemu.yaml +30 -36
  64. data/templates/steps/checkpoints/virtualbox.yaml +21 -0
  65. data/templates/steps/disable_checkpoint.yaml +3 -0
  66. data/templates/steps/enable_checkpoint.yaml +5 -0
  67. data/templates/steps/export/qemu_save_appliance.yaml +52 -0
  68. data/templates/steps/export/virtualbox_save_appliance.yaml +67 -0
  69. data/templates/steps/setup/archlinux/install_bootloader.yaml +23 -0
  70. data/templates/steps/setup/centos/6.5/configure_network.yaml +31 -0
  71. data/templates/steps/setup/centos/6.5/configure_system.yaml +27 -0
  72. data/templates/steps/setup/debian/configure_apt.yaml +1 -6
  73. data/templates/steps/setup/debian/configure_kernel.yaml +0 -5
  74. data/templates/steps/setup/debian/install_bootloader.yaml +36 -0
  75. data/templates/steps/setup/debian/setup_vagrant_box.yaml +48 -18
  76. data/templates/steps/setup/debian/upgrade_system.yaml +2 -7
  77. data/templates/steps/setup/fedora/configure_kernel.yaml +9 -0
  78. data/templates/steps/setup/fedora/configure_keyboard.yaml +12 -0
  79. data/templates/steps/setup/fedora/configure_network.yaml +9 -1
  80. data/templates/steps/setup/fedora/configure_system.yaml +20 -45
  81. data/templates/steps/setup/fedora/install_bootloader.yaml +58 -0
  82. data/templates/steps/setup/fedora/minimal_install.yaml +3 -0
  83. data/templates/steps/setup/fedora/update_system.yaml +13 -5
  84. data/templates/steps/setup/ubuntu/configure_apt.yaml +4 -9
  85. data/templates/vagrant/debian7-amd64.yaml +130 -0
  86. data/templates/virtualbox/archlinux-desktop-i686.yaml +25 -0
  87. data/templates/virtualbox/archlinux-desktop-x86_64.yaml +28 -0
  88. data/templates/virtualbox/archlinux-i686.yaml +28 -0
  89. data/templates/virtualbox/archlinux-x86_64.yaml +109 -0
  90. data/templates/virtualbox/centos6.5-i386.yaml +39 -0
  91. data/templates/virtualbox/centos6.5-x86_64.yaml +111 -0
  92. data/templates/virtualbox/centos7-x86_64.yaml +116 -0
  93. data/{docs/source/debian7.yaml → templates/virtualbox/debian7-amd64.yaml} +53 -52
  94. data/templates/virtualbox/debian7-desktop-amd64.yaml +25 -0
  95. data/templates/{fedora-rawhide.yaml → virtualbox/debian7-i386.yaml} +12 -11
  96. data/templates/virtualbox/debian7-kameleon-amd64.yaml +38 -0
  97. data/templates/virtualbox/debian7-oar-amd64.yaml +51 -0
  98. data/templates/{debian-testing.yaml → virtualbox/debian8-amd64.yaml} +3 -3
  99. data/templates/virtualbox/debian8-i386.yaml +31 -0
  100. data/templates/virtualbox/fedora20-x86_64.yaml +116 -0
  101. data/templates/virtualbox/ubuntu-12.04-amd64.yaml +128 -0
  102. data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +25 -0
  103. data/templates/virtualbox/ubuntu-14.04-amd64.yaml +25 -0
  104. data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +27 -0
  105. data/version.txt +1 -1
  106. metadata +67 -212
  107. data/Rakefile +0 -24
  108. data/docs/.gitignore +0 -1
  109. data/docs/Makefile +0 -181
  110. data/docs/README.md +0 -17
  111. data/docs/make.bat +0 -242
  112. data/docs/source/_static/.gitignore +0 -0
  113. data/docs/source/_static/centos.png +0 -0
  114. data/docs/source/_static/debian.png +0 -0
  115. data/docs/source/_static/kameleon-logo.png +0 -0
  116. data/docs/source/_static/kameleon-logo.xcf +0 -0
  117. data/docs/source/_static/kameleon-long.png +0 -0
  118. data/docs/source/_static/ubuntu.png +0 -0
  119. data/docs/source/_themes/sphinx_rtd_theme/__init__.py +0 -17
  120. data/docs/source/_themes/sphinx_rtd_theme/breadcrumbs.html +0 -19
  121. data/docs/source/_themes/sphinx_rtd_theme/footer.html +0 -32
  122. data/docs/source/_themes/sphinx_rtd_theme/layout.html +0 -160
  123. data/docs/source/_themes/sphinx_rtd_theme/layout_old.html +0 -205
  124. data/docs/source/_themes/sphinx_rtd_theme/search.html +0 -50
  125. data/docs/source/_themes/sphinx_rtd_theme/searchbox.html +0 -7
  126. data/docs/source/_themes/sphinx_rtd_theme/static/css/badge_only.css +0 -1
  127. data/docs/source/_themes/sphinx_rtd_theme/static/css/theme.css +0 -4
  128. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf +0 -0
  129. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
  130. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg +0 -414
  131. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
  132. data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
  133. data/docs/source/_themes/sphinx_rtd_theme/static/js/theme.js +0 -47
  134. data/docs/source/_themes/sphinx_rtd_theme/theme.conf +0 -8
  135. data/docs/source/_themes/sphinx_rtd_theme/versions.html +0 -37
  136. data/docs/source/aliases.rst +0 -31
  137. data/docs/source/atlas_debian_g5k.yaml +0 -36
  138. data/docs/source/checkpoint.rst +0 -30
  139. data/docs/source/commands.rst +0 -63
  140. data/docs/source/conf.py +0 -262
  141. data/docs/source/context.rst +0 -47
  142. data/docs/source/debian_customized.yaml +0 -28
  143. data/docs/source/debian_customized_g5k.yaml +0 -21
  144. data/docs/source/faq.rst +0 -43
  145. data/docs/source/getting_started.rst +0 -260
  146. data/docs/source/grid5000_tutorial.rst +0 -525
  147. data/docs/source/index.rst +0 -53
  148. data/docs/source/install_atlas.yaml +0 -25
  149. data/docs/source/install_hpl.yaml +0 -24
  150. data/docs/source/installation.rst +0 -51
  151. data/docs/source/persistent_cache.rst +0 -34
  152. data/docs/source/recipe.rst +0 -177
  153. data/docs/source/tau_install.yaml +0 -19
  154. data/docs/source/tau_install_g5k.yaml +0 -25
  155. data/docs/source/use_cases.rst +0 -93
  156. data/docs/source/workspace.rst +0 -13
  157. data/lib/kameleon/logger.rb +0 -56
  158. data/omnibus/.gitignore +0 -11
  159. data/omnibus/.kitchen.yml +0 -25
  160. data/omnibus/Berksfile +0 -9
  161. data/omnibus/Berksfile.lock +0 -25
  162. data/omnibus/Gemfile +0 -12
  163. data/omnibus/README.md +0 -94
  164. data/omnibus/config/projects/kameleon.rb +0 -23
  165. data/omnibus/config/software/kameleon.rb +0 -24
  166. data/omnibus/config/software/polipo.rb +0 -30
  167. data/omnibus/config/software/ruby.rb +0 -158
  168. data/omnibus/files/mac_dmg/Resources/background.png +0 -0
  169. data/omnibus/files/mac_dmg/Resources/icon.png +0 -0
  170. data/omnibus/files/mac_pkg/Resources/background.png +0 -0
  171. data/omnibus/files/mac_pkg/Resources/license.html +0 -1
  172. data/omnibus/files/mac_pkg/Resources/welcome.html +0 -9
  173. data/omnibus/omnibus.rb +0 -27
  174. data/omnibus/package-scripts/kameleon/makeselfinst +0 -27
  175. data/omnibus/package-scripts/kameleon/postrm +0 -9
  176. data/templates/fedora20.yaml +0 -105
  177. data/templates/steps/bootstrap/archlinux/install_bootloader.yaml +0 -46
  178. data/templates/steps/bootstrap/archlinux/populate_disk.yaml +0 -39
  179. data/templates/steps/bootstrap/fedora/liveos_bootstrap.yaml +0 -123
  180. data/templates/steps/bootstrap/initialize_disk_qemu.yaml +0 -72
  181. data/templates/steps/bootstrap/install_bootloader.yaml +0 -42
  182. data/templates/steps/bootstrap/ubuntu/debootstrap.yaml +0 -27
  183. data/templates/steps/export/save_appliance.yaml +0 -58
  184. data/templates/steps/export/save_vagrant_box.yaml +0 -29
  185. data/templates/vagrant-debian7.yaml +0 -31
@@ -1,42 +0,0 @@
1
- # Install extlinux bootloader
2
-
3
- - install_bootloader:
4
- - rescue:
5
- - exec_out: LC_ALL=POSIX chroot $$rootfs bash -c "command -V extlinux 2> /dev/null"
6
- - breakpoint: "extlinux is missing"
7
- - exec_out: LC_ALL=POSIX chroot $$rootfs extlinux --install /boot/extlinux 2>&1
8
- - exec_out: |
9
- MBR_PATH=
10
- PATHS=("$$rootfs/usr/share/syslinux/mbr.bin"
11
- "$$rootfs/usr/lib/bios/syslinux/mbr.bin"
12
- "$$rootfs/usr/lib/syslinux/bios/mbr.bin"
13
- "$$rootfs/usr/lib/extlinux/mbr.bin"
14
- "$$rootfs/usr/lib/syslinux/mbr.bin")
15
- for element in "${PATHS[@]}"
16
- do
17
- if [ -f "$element" ]; then
18
- MBR_PATH="$element"
19
- break
20
- fi
21
- done
22
- if [ "$MBR_PATH" == "" ]; then
23
- fail "unable to locate the extlinux mbr"
24
- else
25
- dd if="$MBR_PATH" of="$$nbd_device" bs=440 2>&1
26
- fi
27
- - exec_out: echo " sync..." ; sync
28
- - write_out:
29
- - $$rootfs/boot/extlinux/extlinux.conf
30
- - |
31
- default linux
32
- timeout 1
33
-
34
- label linux
35
- kernel ../`basename $$rootfs/boot/vmlinuz*`
36
- append initrd=../`basename $$rootfs/boot/init*` root=UUID=`blkid -s UUID -o value $${nbd_device}p1` ro
37
- - exec_out: echo " sync..." ; sync
38
- - on_bootstrap_clean:
39
- - exec_out: |
40
- dir=$$rootfs/var/lib/os-prober/mount
41
- test ! -d "$dir" || (umount -f -l "$dir" && rmdir "$dir")
42
-
@@ -1,27 +0,0 @@
1
- # # Bootstrap
2
- - enable_cache: true
3
-
4
- - debootstrap:
5
- - check_cmd_out: debootstrap
6
- - exec_out: mkdir -p $$rootfs_download_path
7
- - exec_out: |
8
- if [ $$enable_cache = true ]; then
9
- [[ ! -f "$$rootfs_download_path/.kameleon_timestamp" ]] || CACHE_AVAILABLE=1
10
- fi
11
- [[ -n $CACHE_AVAILABLE ]] || \
12
- debootstrap --no-check-gpg --arch=$$arch --include="$$include_pkg" $$release $$rootfs_download_path $$repository \
13
- && date +%s > $$rootfs_download_path/.kameleon_timestamp
14
- - write_out:
15
- - $$rootfs_download_path/etc/apt/sources.list
16
- - |
17
- deb $$repository $$release main restricted universe multiverse
18
- - exec_out: chroot $$rootfs_download_path apt-get update
19
- - exec_out: chroot $$rootfs_download_path apt-get install -y extlinux
20
- - exec_out: cat /etc/resolv.conf > $$rootfs_download_path/etc/resolv.conf
21
- - write_out:
22
- - $$rootfs_download_path/etc/network/interfaces
23
- - |
24
- auto lo
25
- iface lo inet loopback
26
- auto eth0
27
- iface eth0 inet dhcp
@@ -1,58 +0,0 @@
1
- # Save Appliance
2
-
3
- - save_as_tgz:
4
- - check_cmd_out: qemu-nbd
5
- - exec_out: echo "Exporting appliance to tar.gz..."
6
- - exec_out: qemu-nbd -c $$nbd_device $$input -n || fail nbd device $$nbd_device is unavailable
7
- - exec_out: mkdir -p $$rootfs
8
- - exec_out: mount $${nbd_device}p1 $$rootfs || fail cannot mount /
9
- - exec_out: cp $$rootfs/etc/fstab $$kameleon_cwd/fstab.orig
10
- - write_out:
11
- - $$rootfs/etc/fstab
12
- - |
13
- # UNCONFIGURED FSTAB FOR BASE SYSTEM
14
- - exec_out: |
15
- tar -zcf $$output.tar.gz --numeric-owner \
16
- --exclude=tmp/* \
17
- --exclude=dev/* \
18
- --exclude=proc/* \
19
- --exclude=sys/* \
20
- --exclude=run/* \
21
- --exclude=mnt/* \
22
- --exclude=media/* \
23
- --exclude=lost+found/* \
24
- -C $$rootfs .
25
- - exec_out: cat $$kameleon_cwd/fstab.orig > $$rootfs/etc/fstab
26
- - exec_out: sync
27
- - exec_out: echo "Saved tar.gz appliance to $$output.tar.gz"
28
- - on_export_clean:
29
- - exec_out: sync
30
- - exec_out: "echo try umount $$rootfs... ; mountpoint -q $$rootfs && umount -f -l $$rootfs || true"
31
- - exec_out: qemu-nbd -d $$nbd_device
32
- - exec_out: pgrep qemu-nbd | xargs -I {} kill -9 {} || true
33
-
34
- - save_as_raw:
35
- - exec_out: qemu-img convert -O raw $$input $$output.raw
36
- - exec_out: echo "Saved raw appliance to $$output.raw"
37
-
38
- - save_as_qcow2:
39
- - exec_out: qemu-img convert -O qcow2 $$input $$output.qcow2
40
- - exec_out: echo "Saved qcow2 appliance to $$output.qcow2"
41
-
42
- - save_as_qed:
43
- - exec_out: qemu-img convert -O qed $$input $$output.qed
44
- - exec_out: echo "Saved qed appliance to $$output.qed"
45
-
46
- - save_as_vmdk:
47
- - exec_out: qemu-img convert -O vmdk $$input $$output.vmdk
48
- - exec_out: echo "Saved vmdk appliance to $$output.vmdk"
49
-
50
- - save_as_vdi:
51
- - exec_out: qemu-img convert -O vdi $$input $$output.vdi
52
- - rescue:
53
- - exec_out: |
54
- echo "Compact the vdi disk"
55
- VBoxManage modifyhd $$output.vdi --compact 2>&1
56
- - exec_out: |
57
- echo "Cannot compact the vdi disk : VBoxManage is missing."
58
- - exec_out: echo "Saved vdi appliance to $$output.vdi"
@@ -1,29 +0,0 @@
1
- - save_as_vdi:
2
- - check_cmd_out: VBoxManage
3
- - exec_out: qemu-img convert -O vdi $$input $$output.vdi
4
- - exec_out: |
5
- echo "Compact the vdi disk"
6
- VBoxManage modifyhd $$output.vdi --compact 2>&1
7
- - exec_out: echo "Saved vdi appliance to $(pwd)/$$output.vdi"
8
-
9
- - create_virtualbox_vm:
10
- - exec_out: |
11
- BOX_NAME="$${kameleon_recipe_name}_$${kameleon_short_uuid}"
12
- - exec_out: VBoxManage createvm --name "$BOX_NAME" --register
13
- - exec_out: VBoxManage modifyvm "$BOX_NAME" --ostype $$os_type
14
- - exec_out: VBoxManage modifyvm "$BOX_NAME" --memory $$memory
15
- - exec_out: VBoxManage modifyvm "$BOX_NAME" --acpi on
16
- - exec_out: VBoxManage modifyvm "$BOX_NAME" --nic1 nat
17
- - exec_out: VBoxManage modifyvm "$BOX_NAME" --nictype1 virtio
18
- - exec_out: VBoxManage storagectl "$BOX_NAME" --name "IDE Controller" --add ide
19
- - exec_out: |
20
- VBoxManage storageattach "$BOX_NAME" --storagectl "IDE Controller" \
21
- --port 0 --device 0 --type hdd \
22
- --medium $$output.vdi
23
- - on_export_clean:
24
- - exec_out: VBoxManage unregistervm --delete "$BOX_NAME"
25
-
26
- - export_virtualbox_vm:
27
- - exec_out: echo "Create vagrant package"
28
- - exec_out: rm -f $$output.box
29
- - exec_out: vagrant package --base $BOX_NAME --output $$output.box
@@ -1,31 +0,0 @@
1
- #==============================================================================
2
- # vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
3
- #==============================================================================
4
- #
5
- # DESCRIPTION: A standard Debian 7 vagrant base box
6
- #
7
- #==============================================================================
8
-
9
- ---
10
- extend: debian7
11
-
12
- global:
13
- ## User varibales : used by the recipe
14
- user_name: vagrant
15
- user_password: $$user_name
16
-
17
- bootstrap:
18
- - @base
19
-
20
- setup:
21
- - @base
22
- - install_software:
23
- - packages: curl linux-headers-$(uname -r) build-essential dkms ca-certificates
24
- - setup_vagrant_box
25
-
26
- export:
27
- - save_vagrant_box:
28
- - os_type: Debian_64
29
- - memory: "512"
30
- - input: $$image_disk
31
- - output: $$kameleon_cwd/$$kameleon_recipe_name