kameleon-builder 2.2.5 → 2.3.0
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.rst +21 -0
- data/{templates → contrib}/steps/bootstrap/debian/debootstrap_arm.yaml +1 -1
- data/{templates → contrib}/steps/export/clean_appliance.yaml +0 -0
- data/{templates → contrib}/steps/export/compact_qcow_img.yaml +0 -0
- data/{templates → contrib}/steps/setup/archlinux/configure_ruby.yaml +0 -0
- data/{templates → contrib}/steps/setup/archlinux/install_dev_tools.yaml +0 -0
- data/{templates → contrib}/steps/setup/archlinux/install_gnome.yaml +0 -0
- data/{templates → contrib}/steps/setup/archlinux/install_yaourt.yaml +0 -0
- data/{templates → contrib}/steps/setup/centos/6.5/configure_repo.yaml +0 -0
- data/{templates → contrib}/steps/setup/debian/install_gnome.yaml +0 -0
- data/{templates → contrib}/steps/setup/debian/install_kde.yaml +0 -0
- data/{templates → erb}/extend.erb +2 -2
- data/erb/userconf.erb +5 -0
- data/kameleon-builder.gemspec +6 -1
- data/lib/kameleon.rb +53 -3
- data/lib/kameleon/cli.rb +146 -99
- data/lib/kameleon/engine.rb +20 -8
- data/lib/kameleon/environment.rb +11 -10
- data/lib/kameleon/persistent_cache.rb +1 -9
- data/lib/kameleon/recipe.rb +52 -24
- data/lib/kameleon/repository.rb +46 -0
- data/lib/kameleon/utils.rb +49 -0
- data/{templates → tests/recipes}/steps/aliases/defaults.yaml +0 -0
- data/tests/recipes/steps/bootstrap/linux/bootstrap.yaml +2 -0
- data/tests/recipes/steps/checkpoints/test.yaml +14 -0
- data/tests/recipes/steps/enable_something.yaml +2 -0
- data/tests/recipes/steps/export/save_appliance.yaml +10 -0
- data/tests/recipes/steps/setup/linux/software_install.yaml +7 -0
- data/tests/recipes/test_recipe.yaml +41 -0
- data/version.txt +1 -1
- metadata +34 -139
- data/templates/COPYRIGHT +0 -21
- data/templates/chroot/debian7-amd64.yaml +0 -119
- data/templates/docker/debian7.yaml +0 -107
- data/templates/grid5000/debian7.yaml +0 -97
- data/templates/qemu/archlinux-desktop-i686.yaml +0 -25
- data/templates/qemu/archlinux-desktop-x86_64.yaml +0 -25
- data/templates/qemu/archlinux-i686.yaml +0 -25
- data/templates/qemu/archlinux-x86_64.yaml +0 -109
- data/templates/qemu/centos6.5-x86_64.yaml +0 -122
- data/templates/qemu/centos7-x86_64.yaml +0 -122
- data/templates/qemu/debian7-amd64.yaml +0 -134
- data/templates/qemu/debian7-desktop-amd64.yaml +0 -24
- data/templates/qemu/debian7-kameleon-amd64.yaml +0 -40
- data/templates/qemu/debian7-oar-amd64.yaml +0 -51
- data/templates/qemu/debian8-amd64.yaml +0 -25
- data/templates/qemu/fedora20-desktop-x86_64.yaml +0 -21
- data/templates/qemu/fedora20-x86_64.yaml +0 -119
- data/templates/qemu/ubuntu-12.04-amd64.yaml +0 -132
- data/templates/qemu/ubuntu-12.04-desktop-amd64.yaml +0 -25
- data/templates/qemu/ubuntu-14.04-amd64.yaml +0 -25
- data/templates/qemu/ubuntu-14.04-desktop-amd64.yaml +0 -27
- data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +0 -211
- data/templates/steps/bootstrap/centos/6.5/yum_bootstrap.yaml +0 -67
- data/templates/steps/bootstrap/debian/debootstrap.yaml +0 -20
- data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +0 -13
- data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +0 -45
- data/templates/steps/bootstrap/g5k_reserv.yaml +0 -70
- data/templates/steps/bootstrap/initialize_disk.yaml +0 -16
- data/templates/steps/bootstrap/initialize_disk_chroot.yaml +0 -80
- data/templates/steps/bootstrap/install_requirements.yaml +0 -3
- data/templates/steps/bootstrap/prepare_chroot.yaml +0 -126
- data/templates/steps/bootstrap/prepare_docker.yaml +0 -51
- data/templates/steps/bootstrap/prepare_qemu.yaml +0 -41
- data/templates/steps/bootstrap/prepare_virtualbox.yaml +0 -67
- data/templates/steps/bootstrap/start_chroot.yaml +0 -51
- data/templates/steps/bootstrap/start_docker.yaml +0 -16
- data/templates/steps/bootstrap/start_qemu.yaml +0 -74
- data/templates/steps/bootstrap/start_virtualbox.yaml +0 -38
- data/templates/steps/bootstrap/switch_context_qemu.yaml +0 -84
- data/templates/steps/bootstrap/switch_context_virtualbox.yaml +0 -86
- data/templates/steps/breakpoint.yaml +0 -3
- data/templates/steps/checkpoints/docker.yaml +0 -17
- data/templates/steps/checkpoints/qcow2.yaml +0 -40
- data/templates/steps/checkpoints/qemu.yaml +0 -33
- data/templates/steps/checkpoints/virtualbox.yaml +0 -21
- data/templates/steps/disable_checkpoint.yaml +0 -3
- data/templates/steps/enable_checkpoint.yaml +0 -5
- data/templates/steps/export/qemu_save_appliance.yaml +0 -52
- data/templates/steps/export/save_appliance_from_g5k.yaml +0 -47
- data/templates/steps/export/vagrant_save_appliance.yaml +0 -14
- data/templates/steps/export/virtualbox_save_appliance.yaml +0 -61
- data/templates/steps/setup/archlinux/configure_keyboard.yaml +0 -9
- data/templates/steps/setup/archlinux/configure_network.yaml +0 -9
- data/templates/steps/setup/archlinux/configure_system.yaml +0 -20
- data/templates/steps/setup/archlinux/install_bootloader.yaml +0 -23
- data/templates/steps/setup/archlinux/install_software.yaml +0 -9
- data/templates/steps/setup/autologin.yaml +0 -16
- data/templates/steps/setup/centos/6.5/configure_network.yaml +0 -33
- data/templates/steps/setup/centos/6.5/configure_system.yaml +0 -46
- data/templates/steps/setup/centos/6.5/minimal_install.yaml +0 -3
- data/templates/steps/setup/centos/6.5/setup_vagrant_box.yaml +0 -77
- data/templates/steps/setup/create_group.yaml +0 -12
- data/templates/steps/setup/create_user.yaml +0 -11
- data/templates/steps/setup/debian/configure_apt.yaml +0 -73
- data/templates/steps/setup/debian/configure_kernel.yaml +0 -13
- data/templates/steps/setup/debian/configure_keyboard.yaml +0 -10
- data/templates/steps/setup/debian/configure_network.yaml +0 -30
- data/templates/steps/setup/debian/configure_system.yaml +0 -12
- data/templates/steps/setup/debian/install_bootloader.yaml +0 -36
- data/templates/steps/setup/debian/install_software.yaml +0 -2
- data/templates/steps/setup/debian/oar/oar_debian_config_frontend.yaml +0 -8
- data/templates/steps/setup/debian/oar/oar_debian_config_node.yaml +0 -5
- data/templates/steps/setup/debian/oar/oar_debian_config_server.yaml +0 -5
- data/templates/steps/setup/debian/oar/oar_prereq_install.yaml +0 -16
- data/templates/steps/setup/debian/setup_vagrant_box.yaml +0 -80
- data/templates/steps/setup/debian/upgrade_system.yaml +0 -10
- data/templates/steps/setup/fedora/configure_kernel.yaml +0 -9
- data/templates/steps/setup/fedora/configure_keyboard.yaml +0 -12
- data/templates/steps/setup/fedora/configure_network.yaml +0 -38
- data/templates/steps/setup/fedora/configure_system.yaml +0 -52
- data/templates/steps/setup/fedora/install_bootloader.yaml +0 -53
- data/templates/steps/setup/fedora/install_software.yaml +0 -3
- data/templates/steps/setup/fedora/minimal_install.yaml +0 -3
- data/templates/steps/setup/fedora/update_system.yaml +0 -16
- data/templates/steps/setup/oar/oar_config_devel.yaml +0 -21
- data/templates/steps/setup/oar/oar_config_frontend.yaml +0 -38
- data/templates/steps/setup/oar/oar_config_node.yaml +0 -4
- data/templates/steps/setup/oar/oar_config_server.yaml +0 -25
- data/templates/steps/setup/oar/oar_config_system.yaml +0 -34
- data/templates/steps/setup/oar/oar_devel_prereq_install.yaml +0 -5
- data/templates/steps/setup/oar/oar_git_install.yaml +0 -21
- data/templates/steps/setup/ubuntu/configure_apt.yaml +0 -62
- data/templates/virtualbox/archlinux-desktop-i686.yaml +0 -25
- data/templates/virtualbox/archlinux-desktop-x86_64.yaml +0 -28
- data/templates/virtualbox/archlinux-i686.yaml +0 -28
- data/templates/virtualbox/archlinux-x86_64.yaml +0 -108
- data/templates/virtualbox/centos6.5-i386.yaml +0 -39
- data/templates/virtualbox/centos6.5-vagrant-x86_64.yaml +0 -33
- data/templates/virtualbox/centos6.5-x86_64.yaml +0 -121
- data/templates/virtualbox/centos7-x86_64.yaml +0 -118
- data/templates/virtualbox/debian7-amd64.yaml +0 -128
- data/templates/virtualbox/debian7-desktop-amd64.yaml +0 -25
- data/templates/virtualbox/debian7-i386.yaml +0 -31
- data/templates/virtualbox/debian7-kameleon-amd64.yaml +0 -38
- data/templates/virtualbox/debian7-oar-amd64.yaml +0 -51
- data/templates/virtualbox/debian7-vagrant-amd64.yaml +0 -32
- data/templates/virtualbox/debian8-amd64.yaml +0 -25
- data/templates/virtualbox/debian8-i386.yaml +0 -31
- data/templates/virtualbox/fedora20-x86_64.yaml +0 -118
- data/templates/virtualbox/ubuntu-12.04-amd64.yaml +0 -128
- data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +0 -25
- data/templates/virtualbox/ubuntu-14.04-amd64.yaml +0 -25
- data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +0 -27
- data/tests/recipes/dummy_recipe.yaml +0 -48
- data/tests/recipes/steps/bootstrap/dummy_distro/dummy_bootstrap_static.yaml +0 -4
- data/tests/recipes/steps/export/dummy_save_appliance.yaml +0 -9
- data/tests/recipes/steps/setup/default/dummy_root_passwd.yaml +0 -8
- data/tests/recipes/steps/setup/dummy_distro/dummy_software_install.yaml +0 -7
@@ -1,67 +0,0 @@
|
|
1
|
-
- insecure_ssh_key: $$kameleon_cwd/insecure_ssh_key
|
2
|
-
|
3
|
-
- download_boot2kameleon_iso:
|
4
|
-
- download_file_local:
|
5
|
-
- $$boot2kameleon_url
|
6
|
-
- $$kameleon_cwd/boot2kameleon.iso
|
7
|
-
|
8
|
-
- create_vdi_disk:
|
9
|
-
- exec_local: rm -f $$virtualbox_image_disk
|
10
|
-
- exec_local: VBoxManage createhd --filename $$virtualbox_image_disk --size $$virtualbox_image_size 2>&1
|
11
|
-
|
12
|
-
- register_vm:
|
13
|
-
- exec_local: echo "Creating virtual machine"
|
14
|
-
- exec_local: VBoxManage createvm --name $$virtualbox_vmid --register
|
15
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --ostype $$virtualbox_os_type
|
16
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --boot1 dvd
|
17
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --boot2 disk
|
18
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --memory $$virtualbox_memory_size
|
19
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --acpi on
|
20
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --nictype1 82540EM
|
21
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --nictype2 82540EM
|
22
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --nictype3 82540EM
|
23
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --nictype4 82540EM
|
24
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --nic1 nat --cableconnected1 on
|
25
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --natpf1 guestssh,tcp,,$$virtualbox_ssh_port,,22
|
26
|
-
- exec_local: VBoxManage storagectl $$virtualbox_vmid --name "IDE Controller" --add ide
|
27
|
-
- exec_local: |
|
28
|
-
VBoxManage storageattach $$virtualbox_vmid \
|
29
|
-
--storagectl "IDE Controller" \
|
30
|
-
--port 0 \
|
31
|
-
--device 0 \
|
32
|
-
--type hdd \
|
33
|
-
--medium $$virtualbox_image_disk
|
34
|
-
- exec_local: VBoxManage storageattach $$virtualbox_vmid --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium $$kameleon_cwd/boot2kameleon.iso
|
35
|
-
|
36
|
-
- delete_vm:
|
37
|
-
- on_checkpoint: skip
|
38
|
-
- on_export_clean:
|
39
|
-
- exec_local: |
|
40
|
-
if VBoxManage list vms | grep -q $$virtualbox_vmid; then
|
41
|
-
echo "Removing the virtualbox vm ($$virtualbox_vmid)..."
|
42
|
-
VBoxManage unregistervm --delete $$virtualbox_vmid 2>&1
|
43
|
-
fi
|
44
|
-
|
45
|
-
- configure_ssh_access:
|
46
|
-
- download_file_local:
|
47
|
-
- $$insecure_ssh_key_url
|
48
|
-
- $$insecure_ssh_key
|
49
|
-
- exec_local: chmod 600 $$insecure_ssh_key
|
50
|
-
|
51
|
-
- create_ssh_config:
|
52
|
-
- write_local:
|
53
|
-
- $$ssh_config_file
|
54
|
-
- |
|
55
|
-
Host $${kameleon_recipe_name}
|
56
|
-
HostName 127.0.0.1
|
57
|
-
Port $${virtualbox_ssh_port}
|
58
|
-
User root
|
59
|
-
IdentityFile $$insecure_ssh_key
|
60
|
-
UserKnownHostsFile /dev/null
|
61
|
-
StrictHostKeyChecking no
|
62
|
-
PasswordAuthentication no
|
63
|
-
IdentitiesOnly yes
|
64
|
-
LogLevel FATAL
|
65
|
-
ForwardAgent yes
|
66
|
-
Compression yes
|
67
|
-
Protocol 2
|
@@ -1,51 +0,0 @@
|
|
1
|
-
# # Bootstrap
|
2
|
-
- mount_chroot:
|
3
|
-
- check_cmd_out: chroot
|
4
|
-
- exec_out: mount -o bind /dev $$rootfs/dev
|
5
|
-
- exec_out: mount -o bind /dev/pts $$rootfs/dev/pts
|
6
|
-
- exec_out: mount -t proc /proc $$rootfs/proc
|
7
|
-
- exec_out: mount -t sysfs /sys $$rootfs/sys
|
8
|
-
- exec_out: test -f $$rootfs/etc/mtab || cat /proc/mounts > $$rootfs/etc/mtab
|
9
|
-
- exec_out: cat /etc/resolv.conf > $$rootfs/etc/resolv.conf
|
10
|
-
- on_setup_clean:
|
11
|
-
- exec_out: rm -f $$rootfs/etc/resolv.conf
|
12
|
-
- exec_out: echo try umount $$rootfs/sys... ; mountpoint -q $$rootfs/sys && umount -f -l $$rootfs/sys || true
|
13
|
-
- exec_out: echo try umount $$rootfs/proc... ; mountpoint -q $$rootfs/proc && umount -f -l $$rootfs/proc || true
|
14
|
-
- exec_out: echo try umount $$rootfs/dev/pts... ; mountpoint -q $$rootfs/dev/pts && umount -f -l $$rootfs/dev/pts || true
|
15
|
-
- exec_out: echo try umount $$rootfs/dev... ; mountpoint -q $$rootfs/dev && umount -f -l $$rootfs/dev || true
|
16
|
-
|
17
|
-
- cpuset_base_name: /dev/cpuset
|
18
|
-
- cpuset_name: kameleon
|
19
|
-
|
20
|
-
- init_cpuset:
|
21
|
-
- on_setup_init:
|
22
|
-
- exec_in: |
|
23
|
-
if [ ! -f $$cpuset_base_name/cpus ]; then
|
24
|
-
mkdir -p /dev/cpuset
|
25
|
-
mount -t cgroup -o cpuset none /dev/cpuset
|
26
|
-
fi
|
27
|
-
if [ ! -d $$cpuset_base_name/$$cpuset_name ]; then
|
28
|
-
mkdir $$cpuset_base_name/$$cpuset_name
|
29
|
-
fi
|
30
|
-
- exec_in: echo 0 > $$cpuset_base_name/$$cpuset_name/cpuset.cpus
|
31
|
-
- exec_in: echo 0 > $$cpuset_base_name/$$cpuset_name/cpuset.mems
|
32
|
-
- exec_in: echo $$ > $$cpuset_base_name/$$cpuset_name/tasks
|
33
|
-
|
34
|
-
- clean_cpuset:
|
35
|
-
- on_setup_clean:
|
36
|
-
- exec_out: CPUSET_DIR="$$rootfs/$$cpuset_base_name"
|
37
|
-
- exec_out: |
|
38
|
-
if [ -f $CPUSET_DIR/$$cpuset_name/tasks ]; then
|
39
|
-
for pid in `cat $CPUSET_DIR/$$cpuset_name/tasks`; do
|
40
|
-
kill -9 $pid
|
41
|
-
done
|
42
|
-
echo "Waiting for all processes of the in context to terminate..."
|
43
|
-
while [ ! -z "$(cat $CPUSET_DIR/$$cpuset_name/tasks)" ]; do
|
44
|
-
sleep .2
|
45
|
-
done
|
46
|
-
sleep .2
|
47
|
-
echo > $CPUSET_DIR/$$cpuset_name/cpuset.cpus
|
48
|
-
echo > $CPUSET_DIR/$$cpuset_name/cpuset.mems
|
49
|
-
rmdir $CPUSET_DIR/$$cpuset_name
|
50
|
-
fi
|
51
|
-
- exec_out: echo try umount $CPUSET_DIR... ; mountpoint -q $CPUSET_DIR && umount -f -l $CPUSET_DIR || true
|
@@ -1,16 +0,0 @@
|
|
1
|
-
- start_sshd:
|
2
|
-
- on_checkpoint: redo
|
3
|
-
- exec_out: |
|
4
|
-
CID=$(docker run -d -p 127.0.0.1::22 -i \
|
5
|
-
--dns $$docker_dns \
|
6
|
-
-h $$docker_hostname \
|
7
|
-
--privileged "$$docker_image:base" \
|
8
|
-
/bin/bash -c "service ssh restart ; tail -f /dev/null")
|
9
|
-
- exec_out: echo "$CID" >> CONTAINERS_TO_CLEAN
|
10
|
-
- exec_out: echo $CID > MAIN_CONTAINER_ID
|
11
|
-
- on_export_clean:
|
12
|
-
- exec_out: rm -f MAIN_CONTAINER_ID
|
13
|
-
- exec_out: echo $(docker port $CID 22) | cut -d':' -f2 > MAIN_CONTAINER_PORT
|
14
|
-
- exec_out: echo "Port $(cat MAIN_CONTAINER_PORT)" >> $$ssh_config_file
|
15
|
-
- on_export_clean:
|
16
|
-
- exec_out: rm -f MAIN_CONTAINER_PORT
|
@@ -1,74 +0,0 @@
|
|
1
|
-
- boot_timeout: 30
|
2
|
-
- shutdown_timeout: 10
|
3
|
-
|
4
|
-
- start_qemu_vm:
|
5
|
-
- on_checkpoint: redo
|
6
|
-
- check_cmd_local: qemu-system-$$qemu_arch
|
7
|
-
- exec_local: echo "Starting qemu..."
|
8
|
-
- exec_local: |
|
9
|
-
if [ $$qemu_enable_kvm = true ]; then
|
10
|
-
ENABLE_KVM="-enable-kvm"
|
11
|
-
fi
|
12
|
-
- exec_local: |
|
13
|
-
if [ -f "vm_state_to_load.txt" ]
|
14
|
-
then
|
15
|
-
SAVED_STATE="$(cat vm_state_to_load.txt)"
|
16
|
-
LOADVM="-loadvm $SAVED_STATE"
|
17
|
-
rm -f vm_state_to_load.txt
|
18
|
-
fi
|
19
|
-
- exec_local: |
|
20
|
-
qemu-system-$$qemu_arch \
|
21
|
-
$ENABLE_KVM \
|
22
|
-
-cdrom $$kameleon_cwd/boot2kameleon.iso \
|
23
|
-
-drive file="$$qemu_image_disk",cache=unsafe,media=disk,if=virtio,id=drive0 \
|
24
|
-
-smp $${qemu_cpu} \
|
25
|
-
-cpu host \
|
26
|
-
-m $$qemu_memory_size \
|
27
|
-
-rtc base=localtime \
|
28
|
-
-net nic,model=virtio -net user \
|
29
|
-
-redir tcp:$${qemu_ssh_port}::22 \
|
30
|
-
-monitor unix:$$qemu_monitor_socket,server,nowait \
|
31
|
-
-pidfile $$qemu_pidfile \
|
32
|
-
-daemonize -vnc :1 $LOADVM
|
33
|
-
- exec_local: |
|
34
|
-
NEXT_WAIT_TIME=0
|
35
|
-
SSH_AVAILABLE=0
|
36
|
-
until ssh-keyscan -T 1 -4 -p $$qemu_ssh_port localhost 2>&1 | grep -e ssh-rsa -e ssh-dsa &> /dev/null && SSH_AVAILABLE=1 || [ $NEXT_WAIT_TIME -eq $$boot_timeout ];
|
37
|
-
do
|
38
|
-
echo -en "\rWaiting for SSH to become available for out_context...($(( $$boot_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
39
|
-
done
|
40
|
-
echo ""
|
41
|
-
- rescue:
|
42
|
-
- exec_local: test $SSH_AVAILABLE -eq 1
|
43
|
-
- breakpoint: Failed to connect to VM via SSH. Please verify the VM successfully booted with a vnc client.
|
44
|
-
|
45
|
-
- force_shutdown_qemu_vm:
|
46
|
-
- on_checkpoint: redo
|
47
|
-
- check_cmd_local: socat
|
48
|
-
- on_setup_clean:
|
49
|
-
- exec_local: |
|
50
|
-
if [ -f $$qemu_pidfile ]; then
|
51
|
-
_QEMU_PID=$(cat $$qemu_pidfile)
|
52
|
-
if [ -S $$qemu_monitor_socket ]; then
|
53
|
-
NEXT_WAIT_TIME=0
|
54
|
-
echo system_powerdown | socat - UNIX-CONNECT:$$qemu_monitor_socket
|
55
|
-
while ps -p $_QEMU_PID > /dev/null && [ $NEXT_WAIT_TIME -lt $$shutdown_timeout ];
|
56
|
-
do
|
57
|
-
sleep 1
|
58
|
-
echo -en "\rWaiting for qemu virtual machine to shutdown...($(( $$shutdown_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
59
|
-
done
|
60
|
-
fi
|
61
|
-
if ps -p $_QEMU_PID > /dev/null; then
|
62
|
-
if [ -S $$qemu_monitor_socket ]; then
|
63
|
-
echo " ~> Failed"
|
64
|
-
fi
|
65
|
-
echo "Killing QEMU (pid: $_QEMU_PID)..."
|
66
|
-
kill -9 "$_QEMU_PID"
|
67
|
-
else
|
68
|
-
if [ -S $$qemu_monitor_socket ]; then
|
69
|
-
echo " ~> Done"
|
70
|
-
fi
|
71
|
-
fi
|
72
|
-
rm -f $$qemu_pidfile
|
73
|
-
fi
|
74
|
-
rm -f $$qemu_monitor_socket
|
@@ -1,38 +0,0 @@
|
|
1
|
-
- boot_timeout: 30
|
2
|
-
- shutdown_timeout: 10
|
3
|
-
|
4
|
-
- start_vm:
|
5
|
-
- on_checkpoint: redo
|
6
|
-
- exec_local: echo "Starting virtualbox..."
|
7
|
-
- exec_local: VBoxManage startvm $$virtualbox_vmid --type headless 2>&1
|
8
|
-
- exec_local: |
|
9
|
-
NEXT_WAIT_TIME=0
|
10
|
-
SSH_AVAILABLE=0
|
11
|
-
until ssh-keyscan -T 1 -4 -p $$virtualbox_ssh_port localhost 2>&1 | grep -e ssh-rsa -e ssh-dsa &> /dev/null && SSH_AVAILABLE=1 || [ $NEXT_WAIT_TIME -eq $$boot_timeout ];
|
12
|
-
do
|
13
|
-
echo -en "\rWaiting for SSH to become available for out_context...($(( $$boot_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
14
|
-
done
|
15
|
-
echo ""
|
16
|
-
- rescue:
|
17
|
-
- exec_local: test $SSH_AVAILABLE -eq 1
|
18
|
-
- breakpoint: Failed to connect to VM via SSH. Please verify the VM successfully booted by looking at the VirtualBox GUI.
|
19
|
-
|
20
|
-
- shutdown_vm:
|
21
|
-
- on_checkpoint: redo
|
22
|
-
- on_setup_clean:
|
23
|
-
- exec_local: |
|
24
|
-
if VBoxManage list runningvms | grep -q $$virtualbox_vmid; then
|
25
|
-
VBoxManage controlvm $$virtualbox_vmid acpipowerbutton
|
26
|
-
NEXT_WAIT_TIME=0
|
27
|
-
until $(VBoxManage showvminfo --machinereadable $$virtualbox_vmid | grep -q ^VMState=.poweroff.) || [ $NEXT_WAIT_TIME -eq $$shutdown_timeout ];
|
28
|
-
do
|
29
|
-
sleep 1
|
30
|
-
echo -en "\rWaiting for machine $$virtualbox_vmid to shutdown...($(( $$shutdown_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
31
|
-
done
|
32
|
-
fi
|
33
|
-
- exec_local: |
|
34
|
-
if VBoxManage list runningvms | grep -q $$virtualbox_vmid; then
|
35
|
-
echo " ~> Failed"
|
36
|
-
echo "Forcing shutdown !"
|
37
|
-
VBoxManage controlvm $$virtualbox_vmid poweroff
|
38
|
-
fi
|
@@ -1,84 +0,0 @@
|
|
1
|
-
- reboot_timeout: 30
|
2
|
-
|
3
|
-
- prepare_sshd:
|
4
|
-
- exec_out: mkdir -p $$rootfs/root/.ssh/
|
5
|
-
- exec_out: cat /root/.ssh/authorized_keys >> $$rootfs/root/.ssh/authorized_keys
|
6
|
-
- exec_out: cat /root/.ssh/authorized_keys >> $$rootfs/root/.ssh/authorized_keys_to_remove
|
7
|
-
- exec_out: chmod 600 -R $$rootfs/root/.ssh
|
8
|
-
- on_setup_clean:
|
9
|
-
- exec_in: grep -v -f /root/.ssh/authorized_keys_to_remove /root/.ssh/authorized_keys || true
|
10
|
-
- exec_in: rm -f /root/.ssh/authorized_keys_to_remove
|
11
|
-
|
12
|
-
- mount_chroot:
|
13
|
-
- exec_out: mount -o bind /dev $$rootfs/dev
|
14
|
-
- exec_out: mount -o bind /dev/pts $$rootfs/dev/pts
|
15
|
-
- exec_out: mount -t proc /proc $$rootfs/proc
|
16
|
-
- exec_out: mount -t sysfs /sys $$rootfs/sys
|
17
|
-
|
18
|
-
- create_fstab:
|
19
|
-
- write_out:
|
20
|
-
- $$rootfs/etc/fstab
|
21
|
-
- |
|
22
|
-
# /etc/fstab: static file system information.
|
23
|
-
#
|
24
|
-
# <file system> <mount point> <type> <options> <dump> <pass>
|
25
|
-
UUID=`blkid -s UUID -o value $${disk_device}1` / $$filesystem_type errors=remount-ro 0 1
|
26
|
-
|
27
|
-
- install_initial_bootloader:
|
28
|
-
- exec_out: mkdir -p $$rootfs/boot/extlinux
|
29
|
-
- exec_out: extlinux --install $$rootfs/boot/extlinux 2>&1
|
30
|
-
- exec_out: |
|
31
|
-
MBR_PATH=
|
32
|
-
PATHS=("/usr/share/syslinux/mbr.bin"
|
33
|
-
"/usr/lib/bios/syslinux/mbr.bin"
|
34
|
-
"/usr/lib/syslinux/bios/mbr.bin"
|
35
|
-
"/usr/lib/extlinux/mbr.bin"
|
36
|
-
"/usr/lib/syslinux/mbr.bin"
|
37
|
-
"/usr/lib/syslinux/mbr/mbr.bin"
|
38
|
-
"/usr/lib/EXTLINUX/mbr.bin")
|
39
|
-
for element in "${PATHS[@]}"
|
40
|
-
do
|
41
|
-
if [ -f "$element" ]; then
|
42
|
-
MBR_PATH="$element"
|
43
|
-
break
|
44
|
-
fi
|
45
|
-
done
|
46
|
-
if [ "$MBR_PATH" == "" ]; then
|
47
|
-
fail "unable to locate the extlinux mbr"
|
48
|
-
else
|
49
|
-
dd if="$MBR_PATH" of="$$disk_device" bs=440 2>&1
|
50
|
-
fi
|
51
|
-
- write_out:
|
52
|
-
- $$rootfs/boot/extlinux/extlinux.conf
|
53
|
-
- |
|
54
|
-
default linux
|
55
|
-
timeout 1
|
56
|
-
|
57
|
-
label linux
|
58
|
-
kernel ../`basename $$rootfs/boot/vmlinuz*`
|
59
|
-
append initrd=../`basename $$rootfs/boot/init*` root=UUID=`blkid -s UUID -o value $${disk_device}1` ro
|
60
|
-
|
61
|
-
- umount_all:
|
62
|
-
- umount_out: $$rootfs/sys
|
63
|
-
- umount_out: $$rootfs/proc
|
64
|
-
- umount_out: $$rootfs/dev/pts
|
65
|
-
- umount_out: $$rootfs/dev
|
66
|
-
- umount_out: $$rootfs
|
67
|
-
|
68
|
-
- switch_out2in:
|
69
|
-
- exec_local: echo "Rebooting qemu vm"
|
70
|
-
- exec_local: echo "eject -f ide1-cd0" | socat - UNIX-CONNECT:$$qemu_monitor_socket
|
71
|
-
- exec_local: echo system_reset | socat - UNIX-CONNECT:$$qemu_monitor_socket
|
72
|
-
- exec_local: |
|
73
|
-
NEXT_WAIT_TIME=0
|
74
|
-
SSH_AVAILABLE=0
|
75
|
-
until ssh-keyscan -T 1 -4 -p $$qemu_ssh_port localhost 2>&1 | grep -e ssh-rsa -e ssh-dsa &> /dev/null && SSH_AVAILABLE=1 || [ $NEXT_WAIT_TIME -eq $$reboot_timeout ];
|
76
|
-
do
|
77
|
-
echo -en "\rWaiting for SSH to become available for out_context...($(( $$reboot_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
78
|
-
done
|
79
|
-
echo ""
|
80
|
-
- rescue:
|
81
|
-
- exec_local: test $SSH_AVAILABLE -eq 1
|
82
|
-
- breakpoint: Failed to connect to VM via SSH. Please verify the VM successfully booted with a vnc client.
|
83
|
-
|
84
|
-
- reload_context: out
|
@@ -1,86 +0,0 @@
|
|
1
|
-
- reboot_timeout: 30
|
2
|
-
|
3
|
-
- prepare_sshd:
|
4
|
-
- exec_out: mkdir -p $$rootfs/root/.ssh/
|
5
|
-
- exec_out: cat /root/.ssh/authorized_keys >> $$rootfs/root/.ssh/authorized_keys
|
6
|
-
- exec_out: cat /root/.ssh/authorized_keys >> $$rootfs/root/.ssh/authorized_keys_to_remove
|
7
|
-
- exec_out: chmod 600 -R $$rootfs/root/.ssh
|
8
|
-
- on_setup_clean:
|
9
|
-
- exec_in: grep -v -f /root/.ssh/authorized_keys_to_remove /root/.ssh/authorized_keys || true
|
10
|
-
- exec_in: rm -f /root/.ssh/authorized_keys_to_remove
|
11
|
-
|
12
|
-
- mount_chroot:
|
13
|
-
- exec_out: mount -o bind /dev $$rootfs/dev
|
14
|
-
- exec_out: mount -o bind /dev/pts $$rootfs/dev/pts
|
15
|
-
- exec_out: mount -t proc /proc $$rootfs/proc
|
16
|
-
- exec_out: mount -t sysfs /sys $$rootfs/sys
|
17
|
-
|
18
|
-
- create_fstab:
|
19
|
-
- write_out:
|
20
|
-
- $$rootfs/etc/fstab
|
21
|
-
- |
|
22
|
-
# /etc/fstab: static file system information.
|
23
|
-
#
|
24
|
-
# <file system> <mount point> <type> <options> <dump> <pass>
|
25
|
-
UUID=`blkid -s UUID -o value $${disk_device}1` / $$filesystem_type errors=remount-ro 0 1
|
26
|
-
|
27
|
-
- install_initial_bootloader:
|
28
|
-
- exec_out: mkdir -p $$rootfs/boot/extlinux
|
29
|
-
- exec_out: extlinux --install $$rootfs/boot/extlinux 2>&1
|
30
|
-
- exec_out: |
|
31
|
-
MBR_PATH=
|
32
|
-
PATHS=("/usr/share/syslinux/mbr.bin"
|
33
|
-
"/usr/lib/bios/syslinux/mbr.bin"
|
34
|
-
"/usr/lib/syslinux/bios/mbr.bin"
|
35
|
-
"/usr/lib/extlinux/mbr.bin"
|
36
|
-
"/usr/lib/syslinux/mbr.bin"
|
37
|
-
"/usr/lib/syslinux/mbr/mbr.bin"
|
38
|
-
"/usr/lib/EXTLINUX/mbr.bin")
|
39
|
-
for element in "${PATHS[@]}"
|
40
|
-
do
|
41
|
-
if [ -f "$element" ]; then
|
42
|
-
MBR_PATH="$element"
|
43
|
-
break
|
44
|
-
fi
|
45
|
-
done
|
46
|
-
if [ "$MBR_PATH" == "" ]; then
|
47
|
-
fail "unable to locate the extlinux mbr"
|
48
|
-
else
|
49
|
-
dd if="$MBR_PATH" of="$$disk_device" bs=440 2>&1
|
50
|
-
fi
|
51
|
-
- write_out:
|
52
|
-
- $$rootfs/boot/extlinux/extlinux.conf
|
53
|
-
- |
|
54
|
-
default linux
|
55
|
-
timeout 1
|
56
|
-
|
57
|
-
label linux
|
58
|
-
kernel ../`basename $$rootfs/boot/vmlinuz*`
|
59
|
-
append initrd=../`basename $$rootfs/boot/init*` root=UUID=`blkid -s UUID -o value $${disk_device}1` ro
|
60
|
-
|
61
|
-
- umount_all:
|
62
|
-
- umount_out: $$rootfs/sys
|
63
|
-
- umount_out: $$rootfs/proc
|
64
|
-
- umount_out: $$rootfs/dev/pts
|
65
|
-
- umount_out: $$rootfs/dev
|
66
|
-
- umount_out: $$rootfs
|
67
|
-
|
68
|
-
- switch_out2in:
|
69
|
-
- exec_local: echo "Rebooting virtualbox vm ($$virtualbox_vmid)"
|
70
|
-
- exec_local: VBoxManage controlvm $$virtualbox_vmid poweroff 2>&1
|
71
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --boot1 disk
|
72
|
-
- exec_local: VBoxManage modifyvm $$virtualbox_vmid --boot2 dvd
|
73
|
-
- exec_local: VBoxManage startvm $$virtualbox_vmid --type headless 2>&1
|
74
|
-
- exec_local: |
|
75
|
-
NEXT_WAIT_TIME=0
|
76
|
-
SSH_AVAILABLE=0
|
77
|
-
until ssh-keyscan -T 1 -4 -p $$virtualbox_ssh_port localhost 2>&1 | grep -e ssh-rsa -e ssh-dsa &> /dev/null && SSH_AVAILABLE=1 || [ $NEXT_WAIT_TIME -eq $$reboot_timeout ];
|
78
|
-
do
|
79
|
-
echo -en "\rWaiting for SSH to become available for out_context...($(( $$reboot_timeout - 1 - NEXT_WAIT_TIME++ ))s)"
|
80
|
-
done
|
81
|
-
echo ""
|
82
|
-
- rescue:
|
83
|
-
- exec_local: test $SSH_AVAILABLE -eq 1
|
84
|
-
- breakpoint: Failed to connect to VM via SSH. Please verify the VM successfully booted by looking at the VirtualBox GUI.
|
85
|
-
|
86
|
-
- reload_context: out
|
@@ -1,17 +0,0 @@
|
|
1
|
-
enabled?:
|
2
|
-
- exec_local: test -f $KAMELEON_WORKDIR/MAIN_CONTAINER_ID
|
3
|
-
|
4
|
-
create:
|
5
|
-
- exec_local: docker commit $(cat $KAMELEON_WORKDIR/MAIN_CONTAINER_ID) $$docker_image:@microstep_id
|
6
|
-
|
7
|
-
apply:
|
8
|
-
- exec_local: docker tag $$docker_image:@microstep_id $$docker_image:latest
|
9
|
-
|
10
|
-
list:
|
11
|
-
- exec_local: |
|
12
|
-
docker images | grep $$docker_image | awk '{print $2}'
|
13
|
-
|
14
|
-
clear:
|
15
|
-
- exec_local: |
|
16
|
-
docker images | grep $$docker_image | awk '{print $3}' \
|
17
|
-
| xargs -I {} bash -c "docker rmi {} | cat || true"
|