kameleon-builder 2.2.5 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|