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.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.rst +21 -0
  4. data/{templates → contrib}/steps/bootstrap/debian/debootstrap_arm.yaml +1 -1
  5. data/{templates → contrib}/steps/export/clean_appliance.yaml +0 -0
  6. data/{templates → contrib}/steps/export/compact_qcow_img.yaml +0 -0
  7. data/{templates → contrib}/steps/setup/archlinux/configure_ruby.yaml +0 -0
  8. data/{templates → contrib}/steps/setup/archlinux/install_dev_tools.yaml +0 -0
  9. data/{templates → contrib}/steps/setup/archlinux/install_gnome.yaml +0 -0
  10. data/{templates → contrib}/steps/setup/archlinux/install_yaourt.yaml +0 -0
  11. data/{templates → contrib}/steps/setup/centos/6.5/configure_repo.yaml +0 -0
  12. data/{templates → contrib}/steps/setup/debian/install_gnome.yaml +0 -0
  13. data/{templates → contrib}/steps/setup/debian/install_kde.yaml +0 -0
  14. data/{templates → erb}/extend.erb +2 -2
  15. data/erb/userconf.erb +5 -0
  16. data/kameleon-builder.gemspec +6 -1
  17. data/lib/kameleon.rb +53 -3
  18. data/lib/kameleon/cli.rb +146 -99
  19. data/lib/kameleon/engine.rb +20 -8
  20. data/lib/kameleon/environment.rb +11 -10
  21. data/lib/kameleon/persistent_cache.rb +1 -9
  22. data/lib/kameleon/recipe.rb +52 -24
  23. data/lib/kameleon/repository.rb +46 -0
  24. data/lib/kameleon/utils.rb +49 -0
  25. data/{templates → tests/recipes}/steps/aliases/defaults.yaml +0 -0
  26. data/tests/recipes/steps/bootstrap/linux/bootstrap.yaml +2 -0
  27. data/tests/recipes/steps/checkpoints/test.yaml +14 -0
  28. data/tests/recipes/steps/enable_something.yaml +2 -0
  29. data/tests/recipes/steps/export/save_appliance.yaml +10 -0
  30. data/tests/recipes/steps/setup/linux/software_install.yaml +7 -0
  31. data/tests/recipes/test_recipe.yaml +41 -0
  32. data/version.txt +1 -1
  33. metadata +34 -139
  34. data/templates/COPYRIGHT +0 -21
  35. data/templates/chroot/debian7-amd64.yaml +0 -119
  36. data/templates/docker/debian7.yaml +0 -107
  37. data/templates/grid5000/debian7.yaml +0 -97
  38. data/templates/qemu/archlinux-desktop-i686.yaml +0 -25
  39. data/templates/qemu/archlinux-desktop-x86_64.yaml +0 -25
  40. data/templates/qemu/archlinux-i686.yaml +0 -25
  41. data/templates/qemu/archlinux-x86_64.yaml +0 -109
  42. data/templates/qemu/centos6.5-x86_64.yaml +0 -122
  43. data/templates/qemu/centos7-x86_64.yaml +0 -122
  44. data/templates/qemu/debian7-amd64.yaml +0 -134
  45. data/templates/qemu/debian7-desktop-amd64.yaml +0 -24
  46. data/templates/qemu/debian7-kameleon-amd64.yaml +0 -40
  47. data/templates/qemu/debian7-oar-amd64.yaml +0 -51
  48. data/templates/qemu/debian8-amd64.yaml +0 -25
  49. data/templates/qemu/fedora20-desktop-x86_64.yaml +0 -21
  50. data/templates/qemu/fedora20-x86_64.yaml +0 -119
  51. data/templates/qemu/ubuntu-12.04-amd64.yaml +0 -132
  52. data/templates/qemu/ubuntu-12.04-desktop-amd64.yaml +0 -25
  53. data/templates/qemu/ubuntu-14.04-amd64.yaml +0 -25
  54. data/templates/qemu/ubuntu-14.04-desktop-amd64.yaml +0 -27
  55. data/templates/steps/bootstrap/archlinux/arch_bootstrap.yaml +0 -211
  56. data/templates/steps/bootstrap/centos/6.5/yum_bootstrap.yaml +0 -67
  57. data/templates/steps/bootstrap/debian/debootstrap.yaml +0 -20
  58. data/templates/steps/bootstrap/fedora/init_pxeboot.yaml +0 -13
  59. data/templates/steps/bootstrap/fedora/yum_bootstrap.yaml +0 -45
  60. data/templates/steps/bootstrap/g5k_reserv.yaml +0 -70
  61. data/templates/steps/bootstrap/initialize_disk.yaml +0 -16
  62. data/templates/steps/bootstrap/initialize_disk_chroot.yaml +0 -80
  63. data/templates/steps/bootstrap/install_requirements.yaml +0 -3
  64. data/templates/steps/bootstrap/prepare_chroot.yaml +0 -126
  65. data/templates/steps/bootstrap/prepare_docker.yaml +0 -51
  66. data/templates/steps/bootstrap/prepare_qemu.yaml +0 -41
  67. data/templates/steps/bootstrap/prepare_virtualbox.yaml +0 -67
  68. data/templates/steps/bootstrap/start_chroot.yaml +0 -51
  69. data/templates/steps/bootstrap/start_docker.yaml +0 -16
  70. data/templates/steps/bootstrap/start_qemu.yaml +0 -74
  71. data/templates/steps/bootstrap/start_virtualbox.yaml +0 -38
  72. data/templates/steps/bootstrap/switch_context_qemu.yaml +0 -84
  73. data/templates/steps/bootstrap/switch_context_virtualbox.yaml +0 -86
  74. data/templates/steps/breakpoint.yaml +0 -3
  75. data/templates/steps/checkpoints/docker.yaml +0 -17
  76. data/templates/steps/checkpoints/qcow2.yaml +0 -40
  77. data/templates/steps/checkpoints/qemu.yaml +0 -33
  78. data/templates/steps/checkpoints/virtualbox.yaml +0 -21
  79. data/templates/steps/disable_checkpoint.yaml +0 -3
  80. data/templates/steps/enable_checkpoint.yaml +0 -5
  81. data/templates/steps/export/qemu_save_appliance.yaml +0 -52
  82. data/templates/steps/export/save_appliance_from_g5k.yaml +0 -47
  83. data/templates/steps/export/vagrant_save_appliance.yaml +0 -14
  84. data/templates/steps/export/virtualbox_save_appliance.yaml +0 -61
  85. data/templates/steps/setup/archlinux/configure_keyboard.yaml +0 -9
  86. data/templates/steps/setup/archlinux/configure_network.yaml +0 -9
  87. data/templates/steps/setup/archlinux/configure_system.yaml +0 -20
  88. data/templates/steps/setup/archlinux/install_bootloader.yaml +0 -23
  89. data/templates/steps/setup/archlinux/install_software.yaml +0 -9
  90. data/templates/steps/setup/autologin.yaml +0 -16
  91. data/templates/steps/setup/centos/6.5/configure_network.yaml +0 -33
  92. data/templates/steps/setup/centos/6.5/configure_system.yaml +0 -46
  93. data/templates/steps/setup/centos/6.5/minimal_install.yaml +0 -3
  94. data/templates/steps/setup/centos/6.5/setup_vagrant_box.yaml +0 -77
  95. data/templates/steps/setup/create_group.yaml +0 -12
  96. data/templates/steps/setup/create_user.yaml +0 -11
  97. data/templates/steps/setup/debian/configure_apt.yaml +0 -73
  98. data/templates/steps/setup/debian/configure_kernel.yaml +0 -13
  99. data/templates/steps/setup/debian/configure_keyboard.yaml +0 -10
  100. data/templates/steps/setup/debian/configure_network.yaml +0 -30
  101. data/templates/steps/setup/debian/configure_system.yaml +0 -12
  102. data/templates/steps/setup/debian/install_bootloader.yaml +0 -36
  103. data/templates/steps/setup/debian/install_software.yaml +0 -2
  104. data/templates/steps/setup/debian/oar/oar_debian_config_frontend.yaml +0 -8
  105. data/templates/steps/setup/debian/oar/oar_debian_config_node.yaml +0 -5
  106. data/templates/steps/setup/debian/oar/oar_debian_config_server.yaml +0 -5
  107. data/templates/steps/setup/debian/oar/oar_prereq_install.yaml +0 -16
  108. data/templates/steps/setup/debian/setup_vagrant_box.yaml +0 -80
  109. data/templates/steps/setup/debian/upgrade_system.yaml +0 -10
  110. data/templates/steps/setup/fedora/configure_kernel.yaml +0 -9
  111. data/templates/steps/setup/fedora/configure_keyboard.yaml +0 -12
  112. data/templates/steps/setup/fedora/configure_network.yaml +0 -38
  113. data/templates/steps/setup/fedora/configure_system.yaml +0 -52
  114. data/templates/steps/setup/fedora/install_bootloader.yaml +0 -53
  115. data/templates/steps/setup/fedora/install_software.yaml +0 -3
  116. data/templates/steps/setup/fedora/minimal_install.yaml +0 -3
  117. data/templates/steps/setup/fedora/update_system.yaml +0 -16
  118. data/templates/steps/setup/oar/oar_config_devel.yaml +0 -21
  119. data/templates/steps/setup/oar/oar_config_frontend.yaml +0 -38
  120. data/templates/steps/setup/oar/oar_config_node.yaml +0 -4
  121. data/templates/steps/setup/oar/oar_config_server.yaml +0 -25
  122. data/templates/steps/setup/oar/oar_config_system.yaml +0 -34
  123. data/templates/steps/setup/oar/oar_devel_prereq_install.yaml +0 -5
  124. data/templates/steps/setup/oar/oar_git_install.yaml +0 -21
  125. data/templates/steps/setup/ubuntu/configure_apt.yaml +0 -62
  126. data/templates/virtualbox/archlinux-desktop-i686.yaml +0 -25
  127. data/templates/virtualbox/archlinux-desktop-x86_64.yaml +0 -28
  128. data/templates/virtualbox/archlinux-i686.yaml +0 -28
  129. data/templates/virtualbox/archlinux-x86_64.yaml +0 -108
  130. data/templates/virtualbox/centos6.5-i386.yaml +0 -39
  131. data/templates/virtualbox/centos6.5-vagrant-x86_64.yaml +0 -33
  132. data/templates/virtualbox/centos6.5-x86_64.yaml +0 -121
  133. data/templates/virtualbox/centos7-x86_64.yaml +0 -118
  134. data/templates/virtualbox/debian7-amd64.yaml +0 -128
  135. data/templates/virtualbox/debian7-desktop-amd64.yaml +0 -25
  136. data/templates/virtualbox/debian7-i386.yaml +0 -31
  137. data/templates/virtualbox/debian7-kameleon-amd64.yaml +0 -38
  138. data/templates/virtualbox/debian7-oar-amd64.yaml +0 -51
  139. data/templates/virtualbox/debian7-vagrant-amd64.yaml +0 -32
  140. data/templates/virtualbox/debian8-amd64.yaml +0 -25
  141. data/templates/virtualbox/debian8-i386.yaml +0 -31
  142. data/templates/virtualbox/fedora20-x86_64.yaml +0 -118
  143. data/templates/virtualbox/ubuntu-12.04-amd64.yaml +0 -128
  144. data/templates/virtualbox/ubuntu-12.04-desktop-amd64.yaml +0 -25
  145. data/templates/virtualbox/ubuntu-14.04-amd64.yaml +0 -25
  146. data/templates/virtualbox/ubuntu-14.04-desktop-amd64.yaml +0 -27
  147. data/tests/recipes/dummy_recipe.yaml +0 -48
  148. data/tests/recipes/steps/bootstrap/dummy_distro/dummy_bootstrap_static.yaml +0 -4
  149. data/tests/recipes/steps/export/dummy_save_appliance.yaml +0 -9
  150. data/tests/recipes/steps/setup/default/dummy_root_passwd.yaml +0 -8
  151. 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,3 +0,0 @@
1
- - breakpoint:
2
- - on_checkpoint: redo
3
- - breakpoint
@@ -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"