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.
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"