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.
- data/.editorconfig +0 -0
- data/.env +2 -6
- data/CHANGELOG.rst +74 -1
- data/Gemfile +20 -2
- data/README.rst +35 -25
- data/Thorfile +29 -0
- data/contrib/kameleon_bashrc.sh +61 -0
- data/contrib/polipo_env.sh +3 -2
- data/kameleon-builder.gemspec +3 -10
- data/lib/kameleon.rb +10 -14
- data/lib/kameleon/cli.rb +92 -105
- data/lib/kameleon/context.rb +76 -43
- data/lib/kameleon/engine.rb +147 -103
- data/lib/kameleon/environment.rb +10 -5
- data/lib/kameleon/error.rb +1 -32
- data/lib/kameleon/persistent_cache.rb +127 -29
- data/lib/kameleon/recipe.rb +63 -106
- data/lib/kameleon/shell.rb +32 -17
- data/lib/kameleon/step.rb +18 -1
- data/lib/kameleon/ui.rb +141 -0
- data/lib/kameleon/utils.rb +9 -0
- data/templates/{debian7-chroot.yaml → chroot/debian7-amd64.yaml} +29 -21
- data/templates/{docker-debian7.yaml → docker/debian7.yaml} +5 -5
- data/templates/extend.erb +2 -2
- data/templates/{debian7-g5k.yaml → grid5000/debian7.yaml} +1 -1
- data/templates/{archlinux-desktop.yaml → qemu/archlinux-desktop-i686.yaml} +2 -2
- data/templates/qemu/archlinux-desktop-x86_64.yaml +25 -0
- data/templates/qemu/archlinux-i686.yaml +25 -0
- data/templates/{archlinux.yaml → qemu/archlinux-x86_64.yaml} +37 -34
- data/templates/qemu/centos6.5-x86_64.yaml +113 -0
- data/templates/qemu/centos7-x86_64.yaml +119 -0
- data/templates/{debian7.yaml → qemu/debian7-amd64.yaml} +45 -40
- data/templates/{debian7-desktop.yaml → qemu/debian7-desktop-amd64.yaml} +2 -3
- data/templates/{debian7-kameleon.yaml → qemu/debian7-kameleon-amd64.yaml} +3 -6
- data/templates/{debian7-oar-dev.yaml → qemu/debian7-oar-amd64.yaml} +2 -2
- data/templates/qemu/debian8-amd64.yaml +25 -0
- data/templates/{fedora20-desktop.yaml → qemu/fedora20-desktop-x86_64.yaml} +2 -2
- data/templates/qemu/fedora20-x86_64.yaml +116 -0
- data/templates/{ubuntu-12.04.yaml → qemu/ubuntu-12.04-amd64.yaml} +42 -38
- data/templates/{ubuntu-12.04-desktop.yaml → qemu/ubuntu-12.04-desktop-amd64.yaml} +3 -3
- data/templates/{ubuntu-14.04.yaml → qemu/ubuntu-14.04-amd64.yaml} +2 -2
- data/templates/{ubuntu-14.04-desktop.yaml → qemu/ubuntu-14.04-desktop-amd64.yaml} +2 -2
- data/templates/steps/aliases/defaults.yaml +19 -13
- data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +11 -19
- data/templates/steps/bootstrap/debian/debootstrap.yaml +10 -11
- data/templates/steps/bootstrap/debian/debootstrap_arm.yaml +11 -19
- data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +13 -0
- data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +45 -0
- data/templates/steps/bootstrap/initialize_disk.yaml +16 -0
- data/templates/steps/bootstrap/initialize_disk_chroot.yaml +10 -14
- data/templates/steps/bootstrap/install_requirements.yaml +3 -0
- data/templates/steps/bootstrap/prepare_docker.yaml +7 -7
- data/templates/steps/bootstrap/prepare_qemu.yaml +20 -26
- data/templates/steps/bootstrap/prepare_virtualbox.yaml +63 -0
- data/templates/steps/bootstrap/start_chroot.yaml +2 -13
- data/templates/steps/bootstrap/start_qemu.yaml +50 -53
- data/templates/steps/bootstrap/start_virtualbox.yaml +37 -0
- data/templates/steps/bootstrap/switch_context_qemu.yaml +64 -0
- data/templates/steps/bootstrap/switch_context_virtualbox.yaml +66 -0
- data/templates/steps/breakpoint.yaml +2 -1
- data/templates/steps/checkpoints/docker.yaml +14 -11
- data/templates/steps/checkpoints/qcow2.yaml +26 -24
- data/templates/steps/checkpoints/qemu.yaml +30 -36
- data/templates/steps/checkpoints/virtualbox.yaml +21 -0
- data/templates/steps/disable_checkpoint.yaml +3 -0
- data/templates/steps/enable_checkpoint.yaml +5 -0
- data/templates/steps/export/qemu_save_appliance.yaml +52 -0
- data/templates/steps/export/virtualbox_save_appliance.yaml +67 -0
- data/templates/steps/setup/archlinux/install_bootloader.yaml +23 -0
- data/templates/steps/setup/centos/6.5/configure_network.yaml +31 -0
- data/templates/steps/setup/centos/6.5/configure_system.yaml +27 -0
- data/templates/steps/setup/debian/configure_apt.yaml +1 -6
- data/templates/steps/setup/debian/configure_kernel.yaml +0 -5
- data/templates/steps/setup/debian/install_bootloader.yaml +36 -0
- data/templates/steps/setup/debian/setup_vagrant_box.yaml +48 -18
- data/templates/steps/setup/debian/upgrade_system.yaml +2 -7
- data/templates/steps/setup/fedora/configure_kernel.yaml +9 -0
- data/templates/steps/setup/fedora/configure_keyboard.yaml +12 -0
- data/templates/steps/setup/fedora/configure_network.yaml +9 -1
- data/templates/steps/setup/fedora/configure_system.yaml +20 -45
- data/templates/steps/setup/fedora/install_bootloader.yaml +58 -0
- data/templates/steps/setup/fedora/minimal_install.yaml +3 -0
- data/templates/steps/setup/fedora/update_system.yaml +13 -5
- data/templates/steps/setup/ubuntu/configure_apt.yaml +4 -9
- data/templates/vagrant/debian7-amd64.yaml +130 -0
- data/templates/virtualbox/archlinux-desktop-i686.yaml +25 -0
- data/templates/virtualbox/archlinux-desktop-x86_64.yaml +28 -0
- data/templates/virtualbox/archlinux-i686.yaml +28 -0
- data/templates/virtualbox/archlinux-x86_64.yaml +109 -0
- data/templates/virtualbox/centos6.5-i386.yaml +39 -0
- data/templates/virtualbox/centos6.5-x86_64.yaml +111 -0
- data/templates/virtualbox/centos7-x86_64.yaml +116 -0
- data/{docs/source/debian7.yaml → templates/virtualbox/debian7-amd64.yaml} +53 -52
- data/templates/virtualbox/debian7-desktop-amd64.yaml +25 -0
- data/templates/{fedora-rawhide.yaml → virtualbox/debian7-i386.yaml} +12 -11
- data/templates/virtualbox/debian7-kameleon-amd64.yaml +38 -0
- data/templates/virtualbox/debian7-oar-amd64.yaml +51 -0
- data/templates/{debian-testing.yaml → virtualbox/debian8-amd64.yaml} +3 -3
- data/templates/virtualbox/debian8-i386.yaml +31 -0
- data/templates/virtualbox/fedora20-x86_64.yaml +116 -0
- data/templates/virtualbox/ubuntu-12.04-amd64.yaml +128 -0
- data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +25 -0
- data/templates/virtualbox/ubuntu-14.04-amd64.yaml +25 -0
- data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +27 -0
- data/version.txt +1 -1
- metadata +67 -212
- data/Rakefile +0 -24
- data/docs/.gitignore +0 -1
- data/docs/Makefile +0 -181
- data/docs/README.md +0 -17
- data/docs/make.bat +0 -242
- data/docs/source/_static/.gitignore +0 -0
- data/docs/source/_static/centos.png +0 -0
- data/docs/source/_static/debian.png +0 -0
- data/docs/source/_static/kameleon-logo.png +0 -0
- data/docs/source/_static/kameleon-logo.xcf +0 -0
- data/docs/source/_static/kameleon-long.png +0 -0
- data/docs/source/_static/ubuntu.png +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/__init__.py +0 -17
- data/docs/source/_themes/sphinx_rtd_theme/breadcrumbs.html +0 -19
- data/docs/source/_themes/sphinx_rtd_theme/footer.html +0 -32
- data/docs/source/_themes/sphinx_rtd_theme/layout.html +0 -160
- data/docs/source/_themes/sphinx_rtd_theme/layout_old.html +0 -205
- data/docs/source/_themes/sphinx_rtd_theme/search.html +0 -50
- data/docs/source/_themes/sphinx_rtd_theme/searchbox.html +0 -7
- data/docs/source/_themes/sphinx_rtd_theme/static/css/badge_only.css +0 -1
- data/docs/source/_themes/sphinx_rtd_theme/static/css/theme.css +0 -4
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/FontAwesome.otf +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg +0 -414
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff +0 -0
- data/docs/source/_themes/sphinx_rtd_theme/static/js/theme.js +0 -47
- data/docs/source/_themes/sphinx_rtd_theme/theme.conf +0 -8
- data/docs/source/_themes/sphinx_rtd_theme/versions.html +0 -37
- data/docs/source/aliases.rst +0 -31
- data/docs/source/atlas_debian_g5k.yaml +0 -36
- data/docs/source/checkpoint.rst +0 -30
- data/docs/source/commands.rst +0 -63
- data/docs/source/conf.py +0 -262
- data/docs/source/context.rst +0 -47
- data/docs/source/debian_customized.yaml +0 -28
- data/docs/source/debian_customized_g5k.yaml +0 -21
- data/docs/source/faq.rst +0 -43
- data/docs/source/getting_started.rst +0 -260
- data/docs/source/grid5000_tutorial.rst +0 -525
- data/docs/source/index.rst +0 -53
- data/docs/source/install_atlas.yaml +0 -25
- data/docs/source/install_hpl.yaml +0 -24
- data/docs/source/installation.rst +0 -51
- data/docs/source/persistent_cache.rst +0 -34
- data/docs/source/recipe.rst +0 -177
- data/docs/source/tau_install.yaml +0 -19
- data/docs/source/tau_install_g5k.yaml +0 -25
- data/docs/source/use_cases.rst +0 -93
- data/docs/source/workspace.rst +0 -13
- data/lib/kameleon/logger.rb +0 -56
- data/omnibus/.gitignore +0 -11
- data/omnibus/.kitchen.yml +0 -25
- data/omnibus/Berksfile +0 -9
- data/omnibus/Berksfile.lock +0 -25
- data/omnibus/Gemfile +0 -12
- data/omnibus/README.md +0 -94
- data/omnibus/config/projects/kameleon.rb +0 -23
- data/omnibus/config/software/kameleon.rb +0 -24
- data/omnibus/config/software/polipo.rb +0 -30
- data/omnibus/config/software/ruby.rb +0 -158
- data/omnibus/files/mac_dmg/Resources/background.png +0 -0
- data/omnibus/files/mac_dmg/Resources/icon.png +0 -0
- data/omnibus/files/mac_pkg/Resources/background.png +0 -0
- data/omnibus/files/mac_pkg/Resources/license.html +0 -1
- data/omnibus/files/mac_pkg/Resources/welcome.html +0 -9
- data/omnibus/omnibus.rb +0 -27
- data/omnibus/package-scripts/kameleon/makeselfinst +0 -27
- data/omnibus/package-scripts/kameleon/postrm +0 -9
- data/templates/fedora20.yaml +0 -105
- data/templates/steps/bootstrap/archlinux/install_bootloader.yaml +0 -46
- data/templates/steps/bootstrap/archlinux/populate_disk.yaml +0 -39
- data/templates/steps/bootstrap/fedora/liveos_bootstrap.yaml +0 -123
- data/templates/steps/bootstrap/initialize_disk_qemu.yaml +0 -72
- data/templates/steps/bootstrap/install_bootloader.yaml +0 -42
- data/templates/steps/bootstrap/ubuntu/debootstrap.yaml +0 -27
- data/templates/steps/export/save_appliance.yaml +0 -58
- data/templates/steps/export/save_vagrant_box.yaml +0 -29
- data/templates/vagrant-debian7.yaml +0 -31
@@ -1,39 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
fi
|
1
|
+
enabled?:
|
2
|
+
- exec_local: test -f $$kameleon_cwd/checkpoint_enabled
|
3
|
+
- exec_local: test -S $$qemu_monitor_socket
|
4
|
+
|
5
|
+
create:
|
6
|
+
- exec_local: echo -e "savevm @microstep_id" | socat - UNIX-CONNECT:$$qemu_monitor_socket
|
8
7
|
|
9
|
-
apply:
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
8
|
+
apply:
|
9
|
+
- exec_local: |
|
10
|
+
[[ ! -f "$$kameleon_cwd/vm_state_to_load.txt" ]] || rm -f $$kameleon_cwd/vm_state_to_load.txt
|
11
|
+
if [ -f "$$qemu_image_disk" ] ; then
|
12
|
+
_checkpoints=$(qemu-img snapshot -l $$qemu_image_disk | tail -n +3 | awk '{print $2}')
|
13
|
+
_checkpoints=($_checkpoints)
|
14
|
+
for checkpoint in "${_checkpoints[@]}"; do
|
15
|
+
if [ -f "$$kameleon_cwd/vm_state_to_load.txt" ]; then
|
16
|
+
echo "Removing old checkpoint $checkpoint"
|
17
|
+
qemu-img snapshot -d $checkpoint $$qemu_image_disk
|
18
|
+
fi
|
19
|
+
if [[ "$checkpoint" == "@microstep_id" ]]; then
|
20
|
+
echo "@microstep_id" > $$kameleon_cwd/vm_state_to_load.txt
|
21
|
+
qemu-img snapshot -a $checkpoint $$qemu_image_disk
|
22
|
+
fi
|
23
|
+
done
|
24
|
+
fi
|
25
25
|
|
26
|
-
clear:
|
27
|
-
|
28
|
-
_checkpoints=$(qemu-img snapshot -l $$image_disk | tail -n +3 | awk '{print $2}')
|
29
|
-
_checkpoints=($_checkpoints)
|
30
|
-
for checkpoint in "${_checkpoints[@]}"; do
|
31
|
-
echo "Removing old checkpoint $checkpoint"
|
32
|
-
qemu-img snapshot -d $checkpoint $$image_disk
|
33
|
-
done
|
34
|
-
fi
|
26
|
+
clear:
|
27
|
+
- exec_local: rm -f $$qemu_image_disk
|
35
28
|
|
36
|
-
list:
|
37
|
-
|
38
|
-
|
39
|
-
|
29
|
+
list:
|
30
|
+
- exec_local: |
|
31
|
+
if [ -f "$$qemu_image_disk" ] ; then
|
32
|
+
qemu-img snapshot -l $$qemu_image_disk | tail -n +3 | awk '{print $2}'
|
33
|
+
fi
|
@@ -0,0 +1,21 @@
|
|
1
|
+
enabled?:
|
2
|
+
- exec_local: test -f $$kameleon_cwd/checkpoint_enabled
|
3
|
+
- exec_local: VBoxManage list vms | grep -q $$virtualbox_vmid
|
4
|
+
|
5
|
+
create:
|
6
|
+
- exec_local: VBoxManage snapshot $$virtualbox_vmid take @microstep_id 2>&1
|
7
|
+
|
8
|
+
apply:
|
9
|
+
- exec_local: VBoxManage snapshot $$virtualbox_vmid restore @microstep_id 2>&1
|
10
|
+
|
11
|
+
clear:
|
12
|
+
- exec_local: |
|
13
|
+
if VBoxManage list vms | grep -q $$virtualbox_vmid; then
|
14
|
+
VBoxManage unregistervm --delete $$virtualbox_vmid 2>&1
|
15
|
+
fi
|
16
|
+
|
17
|
+
list:
|
18
|
+
- exec_local: |
|
19
|
+
if VBoxManage list vms | grep -q $$virtualbox_vmid; then
|
20
|
+
VBoxManage snapshot $$virtualbox_vmid list | grep 'Name:' | awk '{print $2}'
|
21
|
+
fi
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# Save Appliance
|
2
|
+
|
3
|
+
- tar_out_opts: numericowner:true excludes:etc/fstab
|
4
|
+
|
5
|
+
- save_as_tar_gz:
|
6
|
+
- check_cmd_local: guestfish
|
7
|
+
- check_cmd_local: gzip
|
8
|
+
- exec_local: echo "Exporting appliance to $$output.tar.gz..."
|
9
|
+
- exec_local: guestfish --ro -i tar-out -a $$input / - $$tar_out_opts | gzip --best > $$output.tar.gz
|
10
|
+
|
11
|
+
- save_as_tar_xz:
|
12
|
+
- check_cmd_local: guestfish
|
13
|
+
- check_cmd_local: xz
|
14
|
+
- exec_local: echo "Exporting appliance to $$output.tar.xz..."
|
15
|
+
- exec_local: guestfish --ro -i tar-out -a $$input / - $$tar_out_opts | xz -9 -c - > $$output.tar.xz
|
16
|
+
|
17
|
+
- save_as_tar_bz2:
|
18
|
+
- check_cmd_local: guestfish
|
19
|
+
- check_cmd_local: bzip2
|
20
|
+
- exec_local: echo "Exporting appliance to $$output.tar.bz2..."
|
21
|
+
- exec_local: guestfish --ro -i tar-out -a $$input / - $$tar_out_opts | bzip2 --best > $$output.tar.bz2
|
22
|
+
|
23
|
+
- save_as_raw:
|
24
|
+
- check_cmd_local: qemu-img
|
25
|
+
- exec_local: echo "Exporting appliance to $$output.raw..."
|
26
|
+
- exec_local: qemu-img convert -O raw $$input $$output.raw
|
27
|
+
|
28
|
+
- save_as_qcow2:
|
29
|
+
- check_cmd_local: qemu-img
|
30
|
+
- exec_local: echo "Exporting appliance to $$output.qcow2..."
|
31
|
+
- exec_local: qemu-img convert -c -O qcow2 $$input $$output.qcow2
|
32
|
+
|
33
|
+
- save_as_qed:
|
34
|
+
- check_cmd_local: qemu-img
|
35
|
+
- exec_local: echo "Exporting appliance to $$output.qed..."
|
36
|
+
- exec_local: qemu-img convert -O qed $$input $$output.qed
|
37
|
+
|
38
|
+
- save_as_vmdk:
|
39
|
+
- check_cmd_local: qemu-img
|
40
|
+
- exec_local: echo "Exporting appliance to $$output.vmdk..."
|
41
|
+
- exec_local: qemu-img convert -O vmdk $$input $$output.vmdk
|
42
|
+
|
43
|
+
- save_as_vdi:
|
44
|
+
- check_cmd_local: qemu-img
|
45
|
+
- exec_local: echo "Exporting appliance to $$output.vdi..."
|
46
|
+
- exec_local: qemu-img convert -O vdi $$input $$output.vdi
|
47
|
+
- rescue:
|
48
|
+
- exec_local: |
|
49
|
+
echo "Compact the vdi disk"
|
50
|
+
VBoxManage modifyhd $$output.vdi --compact 2>&1
|
51
|
+
- exec_local: |
|
52
|
+
echo "Cannot compact the vdi disk : VBoxManage is missing."
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Save Appliance from virtualbox
|
2
|
+
|
3
|
+
- tar_out_opts: numericowner:true excludes:etc/fstab
|
4
|
+
|
5
|
+
- save_as_ova:
|
6
|
+
- exec_local: rm -f $$output.ova
|
7
|
+
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --natpf1 delete guestssh
|
8
|
+
- exec_local: VBoxManage storageattach $$virtualbox_vmid --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium none
|
9
|
+
- exec_local: VBoxManage export $$virtualbox_vmid -o $$output.ova
|
10
|
+
|
11
|
+
- save_as_vdi:
|
12
|
+
- check_cmd_local: qemu-img
|
13
|
+
- exec_local: echo "Exporting appliance to $$output.vdi..."
|
14
|
+
- exec_local: qemu-img convert -O vdi $$virtualbox_image_disk $$output.vdi
|
15
|
+
- rescue:
|
16
|
+
- exec_local: |
|
17
|
+
echo "Compact the vdi disk"
|
18
|
+
VBoxManage modifyhd $$output.vdi --compact 2>&1
|
19
|
+
- exec_local: |
|
20
|
+
echo "Cannot compact the vdi disk : VBoxManage is missing."
|
21
|
+
- exec_local: echo "Saved vdi appliance to $$output.vdi"
|
22
|
+
|
23
|
+
- save_as_vmdk:
|
24
|
+
- check_cmd_local: qemu-img
|
25
|
+
- exec_local: echo "Exporting appliance to $$output.vmdk..."
|
26
|
+
- exec_local: qemu-img convert -O vmdk $$virtualbox_image_disk $$output.vmdk
|
27
|
+
- exec_local: echo "Saved vmdk appliance to $$output.vmdk"
|
28
|
+
|
29
|
+
- save_as_tar_gz:
|
30
|
+
- check_cmd_local: guestfish
|
31
|
+
- check_cmd_local: gzip
|
32
|
+
- exec_local: echo "Exporting appliance to $$output.tar.gz..."
|
33
|
+
- exec_local: guestfish --ro -i tar-out -a $$virtualbox_image_disk / - $$tar_out_opts | gzip --best > $$output.tar.gz
|
34
|
+
|
35
|
+
- save_as_tar_xz:
|
36
|
+
- check_cmd_local: guestfish
|
37
|
+
- check_cmd_local: xz
|
38
|
+
- exec_local: echo "Exporting appliance to $$output.tar.xz..."
|
39
|
+
- exec_local: guestfish --ro -i tar-out -a $$virtualbox_image_disk / - $$tar_out_opts | xz -9 -c - > $$output.tar.xz
|
40
|
+
|
41
|
+
- save_as_tar_bz2:
|
42
|
+
- check_cmd_local: guestfish
|
43
|
+
- check_cmd_local: bzip2
|
44
|
+
- exec_local: echo "Exporting appliance to $$output.tar.bz2..."
|
45
|
+
- exec_local: guestfish --ro -i tar-out -a $$virtualbox_image_disk / - $$tar_out_opts | bzip2 --best > $$output.tar.bz2
|
46
|
+
|
47
|
+
- save_as_raw:
|
48
|
+
- check_cmd_local: qemu-img
|
49
|
+
- exec_local: echo "Exporting appliance to $$output.raw..."
|
50
|
+
- exec_local: qemu-img convert -O raw $$virtualbox_image_disk $$output.raw
|
51
|
+
- exec_local: echo "Saved raw appliance to $$output.raw"
|
52
|
+
|
53
|
+
- save_as_qcow2:
|
54
|
+
- check_cmd_local: qemu-img
|
55
|
+
- exec_local: echo "Exporting appliance to $$output.qcow2..."
|
56
|
+
- exec_local: qemu-img convert -c -O qcow2 $$virtualbox_image_disk $$output.qcow2
|
57
|
+
|
58
|
+
- save_as_qed:
|
59
|
+
- check_cmd_local: qemu-img
|
60
|
+
- exec_local: echo "Exporting appliance to $$output.qed..."
|
61
|
+
- exec_local: qemu-img convert -O qed $$virtualbox_image_disk $$output.qed
|
62
|
+
|
63
|
+
- save_as_vagrant_box:
|
64
|
+
- check_cmd_local: vagrant
|
65
|
+
- exec_local: echo "Exporting appliance to $$output.box..."
|
66
|
+
- exec_local: rm -f $$output.box
|
67
|
+
- exec_local: vagrant package --base $$virtualbox_vmid --output $$output.box
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Install extlinux bootloader
|
2
|
+
|
3
|
+
- install_syslinux:
|
4
|
+
- check_cmd_in: extlinux
|
5
|
+
- check_cmd_in: syslinux-install_update
|
6
|
+
- exec_in: DISTRIB_TITLE="$$kameleon_recipe_name"
|
7
|
+
- exec_in: syslinux-install_update -a -m
|
8
|
+
- exec_in: cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/
|
9
|
+
- exec_in: extlinux --install /boot/syslinux 2>&1
|
10
|
+
- exec_in: syslinux-install_update -a -m
|
11
|
+
- write_in:
|
12
|
+
- /boot/syslinux/syslinux.cfg
|
13
|
+
- |
|
14
|
+
default ${DISTRIB_TITLE^}
|
15
|
+
timeout 1
|
16
|
+
|
17
|
+
label ${DISTRIB_TITLE^}
|
18
|
+
kernel ../vmlinuz-linux
|
19
|
+
initrd ../initramfs-linux.img
|
20
|
+
# the net.ifnames option is disable to get default net interface
|
21
|
+
# names according to this page:
|
22
|
+
# https://wiki.archlinux.org/index.php/Network_Configuration#Device_names
|
23
|
+
append root=UUID=`blkid -s UUID -o value $(__find_linux_boot_device)` rw net.ifnames=0
|
@@ -0,0 +1,31 @@
|
|
1
|
+
- mtu: "1492"
|
2
|
+
|
3
|
+
- set_hostname:
|
4
|
+
- exec_in: echo $$hostname > /etc/hostname
|
5
|
+
|
6
|
+
- enable_network:
|
7
|
+
- exec_in: chkconfig network on
|
8
|
+
|
9
|
+
- set_host:
|
10
|
+
- write_in:
|
11
|
+
- /etc/hosts
|
12
|
+
- |
|
13
|
+
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 $$hostname
|
14
|
+
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 $$hostname
|
15
|
+
|
16
|
+
- set_interface:
|
17
|
+
- write_in:
|
18
|
+
- /etc/sysconfig/network-scripts/ifcfg-eth0
|
19
|
+
- |
|
20
|
+
DEVICE=eth0
|
21
|
+
BOOTPROTO=dhcp
|
22
|
+
ONBOOT=yes
|
23
|
+
HOSTNAME=$$hostname
|
24
|
+
NM_CONTROLLED=no
|
25
|
+
TYPE=Ethernet
|
26
|
+
MTU=$$mtu
|
27
|
+
- write_in:
|
28
|
+
- /etc/sysconfig/network
|
29
|
+
- |
|
30
|
+
NETWORKING=yes
|
31
|
+
HOSTNAME=$$hostname
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# System configuration
|
2
|
+
#
|
3
|
+
# This will set the locals and the timezone
|
4
|
+
|
5
|
+
- set_locales:
|
6
|
+
# uncomment the locales
|
7
|
+
- exec_in: |
|
8
|
+
echo $$locales | tr ' ' '\n' | xargs -I {} localedef -v -c -i {} -i {} -f UTF-8 $$lang 2>&1 || :
|
9
|
+
|
10
|
+
- set_timezone:
|
11
|
+
- exec_in: ln -sf /usr/share/zoneinfo/$$timezone /etc/localtime
|
12
|
+
|
13
|
+
- set_wheel_sudo:
|
14
|
+
- exec_in: echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers
|
15
|
+
|
16
|
+
- remove_random_seed:
|
17
|
+
- exec_in: echo "Removing random-seed so it's not the same in every image."
|
18
|
+
- exec_in: rm -f /var/lib/random-seed
|
19
|
+
|
20
|
+
- compress_cracklib:
|
21
|
+
- exec_in: gzip -9 /usr/share/cracklib/pw_dict.pwd
|
22
|
+
|
23
|
+
- enable_sshd:
|
24
|
+
- exec_in: chkconfig sshd on
|
25
|
+
|
26
|
+
- enable_ntpdate_service:
|
27
|
+
- exec_in: chkconfig ntpd on
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Software Install
|
2
2
|
- enable_contrib: true
|
3
3
|
- enable_nonfree: true
|
4
|
-
|
4
|
+
|
5
5
|
|
6
6
|
- configure_apt_to_use_less_disk_space:
|
7
7
|
- write_in:
|
@@ -9,11 +9,6 @@
|
|
9
9
|
- |
|
10
10
|
Acquire::GzipIndexes "true";
|
11
11
|
Acquire::CompressionTypes::Order:: "gz";
|
12
|
-
- exec_in: |
|
13
|
-
if [ $$install_recommends = false ]; then
|
14
|
-
echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/01norecommend
|
15
|
-
echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf.d/01norecommend
|
16
|
-
fi
|
17
12
|
- write_in:
|
18
13
|
- /etc/apt/apt.conf.d/02nocache
|
19
14
|
- |
|
@@ -0,0 +1,36 @@
|
|
1
|
+
- install_extlinux:
|
2
|
+
- check_cmd_in: extlinux
|
3
|
+
- exec_in: DISTRIB_TITLE="$$kameleon_recipe_name"
|
4
|
+
- exec_in: extlinux --install /boot/extlinux 2>&1
|
5
|
+
- exec_in: |
|
6
|
+
MBR_PATH=
|
7
|
+
PATHS=("/usr/share/syslinux/mbr.bin"
|
8
|
+
"/usr/lib/bios/syslinux/mbr.bin"
|
9
|
+
"/usr/lib/syslinux/bios/mbr.bin"
|
10
|
+
"/usr/lib/extlinux/mbr.bin"
|
11
|
+
"/usr/lib/syslinux/mbr.bin")
|
12
|
+
for element in "${PATHS[@]}"
|
13
|
+
do
|
14
|
+
if [ -f "$element" ]; then
|
15
|
+
MBR_PATH="$element"
|
16
|
+
break
|
17
|
+
fi
|
18
|
+
done
|
19
|
+
if [ "$MBR_PATH" == "" ]; then
|
20
|
+
fail "unable to locate the extlinux mbr"
|
21
|
+
else
|
22
|
+
dd if="$MBR_PATH" of="$(__find_linux_boot_device | sed 's/[0-9]*//g')" bs=440 2>&1
|
23
|
+
fi
|
24
|
+
- write_in:
|
25
|
+
- /boot/extlinux/extlinux.conf
|
26
|
+
- |
|
27
|
+
default ${DISTRIB_TITLE^}
|
28
|
+
timeout 1
|
29
|
+
|
30
|
+
label ${DISTRIB_TITLE^}
|
31
|
+
kernel ../`basename /boot/vmlinuz*`
|
32
|
+
initrd ../`basename /boot/init*`
|
33
|
+
# the net.ifnames option is disable to get default net interface
|
34
|
+
# names according to this page:
|
35
|
+
# https://wiki.archlinux.org/index.php/Network_Configuration#Device_names
|
36
|
+
append root=UUID=`blkid -s UUID -o value $(__find_linux_boot_device)` rw net.ifnames=0
|
@@ -9,33 +9,39 @@
|
|
9
9
|
|
10
10
|
- install_vbox_guest_additions:
|
11
11
|
- exec_in: echo "VirtualBox Guest Additions..."
|
12
|
-
-
|
13
|
-
|
14
|
-
|
15
|
-
- exec_in:
|
16
|
-
- exec_in:
|
17
|
-
- exec_in:
|
18
|
-
- exec_in:
|
12
|
+
- download_file_in:
|
13
|
+
- "http://download.virtualbox.org/virtualbox/4.3.8/VBoxGuestAdditions_4.3.8.iso"
|
14
|
+
- VBoxGuestAdditions_4.3.8.iso
|
15
|
+
- exec_in: mkdir /media/VBoxGuestAdditions
|
16
|
+
- exec_in: mount -o loop VBoxGuestAdditions_4.3.8.iso /media/VBoxGuestAdditions
|
17
|
+
- exec_in: yes|sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run --nox11 || true 2>&1
|
18
|
+
- exec_in: rm -f VBoxGuestAdditions_4.3.8.iso
|
19
|
+
- exec_in: umount /media/VBoxGuestAdditions
|
20
|
+
- exec_in: rmdir /media/VBoxGuestAdditions
|
19
21
|
|
20
22
|
- install_puppet:
|
21
23
|
- exec_in: echo "Installing puppet..."
|
22
|
-
-
|
23
|
-
|
24
|
+
- download_file_in:
|
25
|
+
- "http://apt.puppetlabs.com/puppetlabs-release-stable.deb"
|
26
|
+
- puppetlabs-release-stable.deb
|
27
|
+
- exec_in: dpkg -i "puppetlabs-release-stable.deb"
|
24
28
|
- exec_in: apt-get update
|
25
29
|
- exec_in: apt-get install puppet -y --force-yes
|
26
|
-
- exec_in: rm -f
|
30
|
+
- exec_in: rm -f puppetlabs-release-stable.deb
|
27
31
|
|
28
32
|
- install_chef:
|
29
33
|
- exec_in: curl -L https://www.opscode.com/chef/install.sh -k | bash
|
30
34
|
|
31
35
|
- copy_insecure_sshkey:
|
32
|
-
- exec_in: mkdir -
|
33
|
-
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
-
|
38
|
-
|
36
|
+
- exec_in: mkdir -pm 700 /home/$$user_name/.ssh/
|
37
|
+
- download_file_in:
|
38
|
+
- "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant"
|
39
|
+
- /home/$$user_name/.ssh/id_rsa
|
40
|
+
- download_file_in:
|
41
|
+
- "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub"
|
42
|
+
- /home/$$user_name/.ssh/id_rsa.pub
|
43
|
+
- exec_in: cp /home/$$user_name/.ssh/id_rsa.pub /home/$$user_name/.ssh/authorized_keys
|
44
|
+
- exec_in: chmod 0600 /home/$$user_name/.ssh/*
|
39
45
|
|
40
46
|
- config_ssh:
|
41
47
|
- exec_in: echo "UseDNS no" >> /etc/ssh/sshd_config
|
@@ -49,4 +55,28 @@
|
|
49
55
|
AddressFamily inet
|
50
56
|
- exec_in: chmod 0600 /home/$$user_name/.ssh/config
|
51
57
|
- exec_in: rsync -ah /home/$$user_name/.ssh/ /root/.ssh/
|
52
|
-
- exec_in: chown "$$user_name
|
58
|
+
- exec_in: chown "$$user_name:$$user_name" -R /home/$$user_name
|
59
|
+
|
60
|
+
- customize_motd:
|
61
|
+
- exec_in: echo 'Welcome to your Vagrant-built virtual machine.' > /etc/motd
|
62
|
+
|
63
|
+
- cleanup:
|
64
|
+
- exec_in: rm -rf /tmp/* || true
|
65
|
+
- exec_in: rm -rf /var/tmp/* || true
|
66
|
+
- exec_in: apt-get -y remove linux-headers-$(uname -r) build-essential
|
67
|
+
- exec_in: echo "cleaning up dhcp leases"
|
68
|
+
- exec_in: rm -f /var/lib/dhcp/*
|
69
|
+
- exec_in: echo "cleaning up udev rules"
|
70
|
+
- exec_in: rm -f /etc/udev/rules.d/70-persistent-net.rules
|
71
|
+
- exec_in: mkdir /etc/udev/rules.d/70-persistent-net.rules
|
72
|
+
- exec_in: rm -rf /dev/.udev/
|
73
|
+
- exec_in: rm -f /lib/udev/rules.d/75-persistent-net-generator.rules
|
74
|
+
- exec_in: |
|
75
|
+
echo "Adding a 2 sec delay to the interface up, to make the dhclient happy"
|
76
|
+
echo "pre-up sleep 2" >> /etc/network/interfaces
|
77
|
+
|
78
|
+
- nullify_freespace:
|
79
|
+
- exec_in: |
|
80
|
+
echo "Nullify freespace..."
|
81
|
+
dd if=/dev/zero of=/bigemptyfile bs=1M 2>&1 >/dev/null || true
|
82
|
+
rm -f /bigemptyfile
|