[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-grid5k] 01/141: add new version of image
From: |
gnunet |
Subject: |
[taler-grid5k] 01/141: add new version of image |
Date: |
Thu, 18 Nov 2021 14:49:02 +0100 |
This is an automated email from the git hooks/post-receive script.
marco-boss pushed a commit to branch master
in repository grid5k.
commit 6deeecd8121acb9780f387806eb5392fb999dd21
Author: Boss Marco <bossm8@bfh.ch>
AuthorDate: Thu Sep 30 16:02:46 2021 +0200
add new version of image
---
default/from_scratch/x86_64/base.yaml | 138 -------
default/from_scratch/x86_64/debian-testing.yaml | 29 --
default/steps/aliases/defaults.yaml | 169 --------
default/steps/bootstrap/download_installer.yaml | 31 --
default/steps/bootstrap/start_http_server.yaml | 19 -
default/steps/bootstrap/start_qemu.yaml | 227 -----------
default/steps/data/helpers/export_appliance.py | 242 -----------
.../steps/data/helpers/netinstall_iso_finder.py | 163 --------
default/steps/data/helpers/simple_http_server.py | 129 ------
.../steps/data/preseed/debian-testing-preseed.cfg | 322 ---------------
default/steps/env/functions.sh | 201 ----------
grid5000/from_scratch/aarch64/base.yaml | 25 --
grid5000/from_scratch/aarch64/debian-base.yaml | 59 ---
grid5000/from_scratch/debian-base.yaml | 67 ----
grid5000/from_scratch/debian-bullseye.yaml | 24 --
.../bootstrap/debian/prepare_autoinstall.yaml | 11 -
grid5000/steps/bootstrap/prepare_appliance.yaml | 33 --
grid5000/steps/bootstrap/prepare_disk.yaml | 10 -
.../bootstrap/prepare_ssh_to_out_context.yaml | 23 --
grid5000/steps/checkpoints/simple.yaml | 21 -
.../steps/data/preseed/debian-buster-preseed.cfg | 443 ---------------------
grid5000/steps/data/qemu-sendkeys.rb | 121 ------
.../steps/data/qemu-sendkeys/netinst-iso-debian | 1 -
.../env/files/std/oar/default_oar-node_site | 49 ---
.../manifests/base/configure_ip_over_infiniband.pp | 69 ----
.../modules/env/manifests/big/install_openmpi.pp | 58 ---
.../modules/env/manifests/big/install_smartd.pp | 26 --
grid5000/steps/disable_checkpoint.yaml | 3 -
grid5000/steps/enable_checkpoint.yaml | 5 -
grid5000/steps/env/bashrc | 23 --
grid5000/steps/export/export_vagrant_box.yaml | 42 --
grid5000/steps/export/save_appliance_VM.yaml | 23 --
grid5000/steps/setup/create_user.yaml | 11 -
grid5000/steps/setup/debian/clean_system.yaml | 34 --
grid5000/steps/setup/debian/minimal_install.yaml | 6 -
grid5000/steps/setup/debian/setup_vagrant_box.yaml | 77 ----
.../grid5000}/debian11-x64-common.yaml | 0
{grid5000 => image/grid5000}/debian11-x64-min.yaml | 0
.../grid5000}/from_scratch/base.yaml | 0
.../grid5000/from_scratch}/debian-base.yaml | 0
.../grid5000/from_scratch}/debian-bullseye.yaml | 0
.../grid5000}/steps/aliases/defaults.yaml | 0
.../bootstrap/debian/prepare_autoinstall.yaml | 0
.../steps/bootstrap/download_installer.yaml | 2 +-
.../steps/bootstrap/prepare_appliance.yaml | 0
.../grid5000}/steps/bootstrap/prepare_disk.yaml | 0
.../bootstrap/prepare_ssh_to_out_context.yaml | 0
.../steps/bootstrap/start_http_server.yaml | 2 +-
.../grid5000}/steps/bootstrap/start_qemu.yaml | 0
.../grid5000}/steps/checkpoints/simple.yaml | 0
.../steps/data/helpers/export_appliance.py | 2 +-
.../steps/data/helpers/netinstall_iso_finder.py | 6 +-
.../steps/data/helpers/simple_http_server.py | 2 +-
.../steps/data/preseed/debian-bullseye-preseed.cfg | 0
.../grid5000}/steps/data/qemu-sendkeys.rb | 0
.../steps/data/qemu-sendkeys/netinst-iso-debian | 0
.../grid5000}/steps/data/setup/hiera/hiera.yaml | 0
.../steps/data/setup/hiera/hieradata/defaults.yaml | 0
.../steps/data/setup/puppet/manifests/base.pp | 0
.../steps/data/setup/puppet/manifests/big.pp | 0
.../steps/data/setup/puppet/manifests/min.pp | 0
.../steps/data/setup/puppet/manifests/nfs.pp | 0
.../steps/data/setup/puppet/manifests/std.pp | 0
.../steps/data/setup/puppet/manifests/xen.pp | 0
.../modules/env/files/base/cpufreq/cpufrequtils | 0
.../modules/env/files/base/ganglia/gmond.conf | 0
.../modules/env/files/base/infiniband/90-ib.rules | 0
.../modules/env/files/base/infiniband/openib.conf | 0
.../modules/env/files/base/infiniband/openibd | 0
.../env/files/base/infiniband/openibd.service | 0
.../puppet/modules/env/files/base/kexec/kexec | 0
.../puppet/modules/env/files/base/mx/ip_over_mx | 0
.../modules/env/files/base/ndctl/ndctl.preset | 0
.../modules/env/files/base/sshfs/40-fuse.rules | 0
.../env/files/base/tuning/limits-grid5000.conf | 0
.../env/files/base/tuning/sysctl-00-grid5000.conf | 0
.../env/files/base/userns/sysctl-00-userns.conf | 0
.../modules/env/files/big/amd_gpu/70-amdgpu.rules | 0
.../modules/env/files/big/kvm/60-qemu-system.rules | 0
.../puppet/modules/env/files/big/kvm/create_tap | 0
.../puppet/modules/env/files/big/kvm/random_mac | 0
.../setup/puppet/modules/env/files/big/kvm/sudoers | 0
.../puppet/modules/env/files/big/mic/85-mic.rules | 0
.../setup/puppet/modules/env/files/big/mic/fstab | 0
.../puppet/modules/env/files/big/mic/mic0.filelist | 0
.../setup/puppet/modules/env/files/big/mic/mpss | 0
.../puppet/modules/env/files/big/nvidia/cuda.conf | 0
.../env/files/big/nvidia/dcgm-exporter.service | 0
.../env/files/big/nvidia/ganglia-monitor.service | 0
.../env/files/big/nvidia/modpython-nvidia.conf | 0
.../files/big/nvidia/nvidia-persistenced.service | 0
.../env/files/big/nvidia/nvidia-smi.service | 0
.../env/files/min/apt/grid5000-archive-key.asc | 0
.../env/files/min/cpu_microcode/amd64-microcode | 0
.../env/files/min/cpu_microcode/intel-microcode | 0
.../modules/env/files/min/image_versioning/git_tag | 0
.../env/files/min/image_versioning/postinst | 0
.../puppet/modules/env/files/min/locales/locale | 0
.../modules/env/files/min/locales/locale.gen | 0
.../env/files/min/network/g5k-update-host-name | 0
.../puppet/modules/env/files/min/network/hosts | 0
.../env/files/nfs/ldap/ca2019.grid5000.fr.cert | 0
.../puppet/modules/env/files/nfs/ldap/common-auth | 0
.../modules/env/files/nfs/ldap/common-password | 0
.../puppet/modules/env/files/nfs/ldap/ldap.conf | 0
.../modules/env/files/nfs/ldap/libnss-ldap.conf | 0
.../puppet/modules/env/files/nfs/ldap/nscd.conf | 0
.../puppet/modules/env/files/nfs/ldap/nslcd.conf | 0
.../modules/env/files/nfs/ldap/nsswitch.conf | 0
.../env/files/nfs/openiscsi/55-openiscsi.rules | 0
.../modules/env/files/nfs/openiscsi/iscsidev.sh | 0
.../files/std/g5k-manager/g5k-disk-manager-backend | 0
.../g5k-manager/g5k-disk-manager-backend.service | 0
.../env/files/std/g5k-manager/g5k-pmem-manager | 0
.../files/std/g5k-manager/g5k-pmem-manager.service | 0
.../env/files/std/g5k-manager/lib/g5k-manager.rb | 0
.../env/files/std/g5k_generator/g5k_generator | 0
.../env/files/std/g5kchecks/g5k-checks.conf | 0
.../puppet/modules/env/files/std/lvm/lvm.conf | 0
.../modules/env/files/std/net_access/iptables | 0
.../env/files/std/net_access/iptables.stretch | 0
.../modules/env/files/std/net_access/rsyslog.conf | 0
.../env/files/std/net_access/syslog_iptables.conf | 0
.../files/std/nvidia_configure/nvidia-reset-mig | 0
.../std/nvidia_configure/nvidia-reset-mig.service | 0
.../modules/env/files/std/oar/batch_job_bashrc | 0
.../env/files/std/oar/etc/security/access.conf | 0
.../modules/env/files/std/oar/oar-node-service | 33 +-
.../env/files/std/oar/oar-node.service.override | 2 +
.../modules/env/files/std/oar/oar_sshclient_config | 0
.../env/files/std/oar/var/lib/oar/access.conf | 0
.../modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k | 0
.../env/files/std/sudo-g5k/id_rsa_sudo-g5k.pub | 0
.../data/setup/puppet/modules/env/files/version | 0
.../setup/puppet/modules/env/files/xen/xen/id_rsa | 0
.../puppet/modules/env/files/xen/xen/id_rsa.pub | 0
.../puppet/modules/env/files/xen/xen/random_mac | 0
.../setup/puppet/modules/env/files/xen/xen/xen-g5k | 0
.../modules/env/files/xen/xen/xen-g5k.service | 0
.../modules/env/files/xen/xen/xend-config.sxp | 0
.../env/lib/facter/installed_kernelreleases.rb | 0
.../setup/puppet/modules/env/manifests/base.pp | 0
.../modules/env/manifests/base/add_ca_grid5000.pp | 0
.../env/manifests/base/configure_dhclient.pp | 0
.../manifests/base/configure_ip_over_infiniband.pp | 75 ++++
.../modules/env/manifests/base/configure_kexec.pp | 0
.../env/manifests/base/configure_omnipath.pp | 3 +-
.../env/manifests/base/disable_ndctl_monitor.pp | 0
.../env/manifests/base/disable_nvme_multipath.pp | 0
.../modules/env/manifests/base/do_not_clean_tmp.pp | 0
.../enable_cpufreq_with_performance_governor.pp | 0
.../modules/env/manifests/base/enable_userns.pp | 0
.../env/manifests/base/increase_ssh_maxstartups.pp | 0
.../manifests/base/install_and_disable_ganglia.pp | 0
.../env/manifests/base/tcp_tuning_for_10gbe.pp | 0
.../base/unlimited_memlock_for_infiniband.pp | 0
.../data/setup/puppet/modules/env/manifests/big.pp | 0
.../modules/env/manifests/big/configure_amd_gpu.pp | 16 +-
.../env/manifests/big/configure_initramfs.pp | 0
.../modules/env/manifests/big/configure_kvm.pp | 0
.../env/manifests/big/configure_nvidia_gpu.pp | 0
.../env/manifests/big/configure_nvidia_gpu/cuda.pp | 0
.../manifests/big/configure_nvidia_gpu/drivers.pp | 0
.../manifests/big/configure_nvidia_gpu/ganglia.pp | 0
.../manifests/big/configure_nvidia_gpu/modules.pp | 0
.../big/configure_nvidia_gpu/prometheus.pp | 0
.../manifests/big/configure_nvidia_gpu/services.pp | 0
.../modules/env/manifests/big/configure_postfix.pp | 0
.../modules/env/manifests/big/configure_sshfs.pp | 0
.../modules/env/manifests/big/install_beegfs.pp | 0
.../env/manifests/big/install_g5k_jupyterlab.pp | 0
.../modules/env/manifests/big/install_openmpi.pp | 95 +++++
.../manifests/big/install_prometheus_exporters.pp | 0
.../modules/env/manifests/big/install_smartd.pp | 28 ++
.../env/manifests/big/install_snmp_tools.pp | 0
.../manifests/big/prepare_kernel_module_build.pp | 0
.../modules/env/manifests/common/apt_pinning.pp | 0
.../modules/env/manifests/common/g5kpackages.pp | 0
.../env/manifests/common/software_versions.pp | 7 +-
.../puppet/modules/env/manifests/commonpackages.pp | 0
.../setup/puppet/modules/env/manifests/init.pp | 0
.../data/setup/puppet/modules/env/manifests/min.pp | 0
.../env/manifests/min/add_image_version_in_etc.pp | 0
.../configure_kernel_and_blacklist_some_modules.pp | 0
.../min/configure_network_and_install_drivers.pp | 0
.../modules/env/manifests/min/generate_etc_motd.pp | 0
.../manifests/min/install_and_configure_locales.pp | 0
.../env/manifests/min/install_and_configure_ssh.pp | 0
.../env/manifests/min/install_cpu_microcode.pp | 0
.../env/manifests/min/install_metapackage.pp | 0
.../modules/env/manifests/min/install_tgz_g5k.pp | 0
.../modules/env/manifests/min/kernel/initramfs.pp | 0
.../modules/env/manifests/min/kernel/modules.pp | 0
.../modules/env/manifests/min/kernel/remove_old.pp | 0
.../env/manifests/min/kernel/setup_links.pp | 0
.../modules/env/manifests/min/set_root_password.pp | 0
.../manifests/min/set_timezone_to_europe_paris.pp | 0
.../data/setup/puppet/modules/env/manifests/nfs.pp | 0
.../modules/env/manifests/nfs/configure_iscsi.pp | 0
.../modules/env/manifests/nfs/configure_ldap.pp | 0
.../env/manifests/nfs/configure_module_path.pp | 0
.../modules/env/manifests/nfs/configure_ntp.pp | 0
.../env/manifests/nfs/install_nfs_requirements.pp | 0
.../manifests/nfs/install_osirim_requirements.pp | 0
.../nfs/install_storage5k_requirements.pp | 0
.../data/setup/puppet/modules/env/manifests/std.pp | 2 +
.../env/manifests/std/add_g5kcode_to_path.pp | 0
.../std/configure_g5kdiskmanagerbackend.pp | 0
.../env/manifests/std/configure_g5kmanager.pp | 0
.../env/manifests/std/configure_g5kpmemmanager.pp | 0
.../env/manifests/std/configure_oar_client.pp | 23 +-
.../env/manifests/std/configure_rsyslog_remote.pp | 0
.../setup/puppet/modules/env/manifests/std/dell.pp | 0
.../modules/env/manifests/std/dell/params.pp | 0
.../env/manifests/std/disable_lvm_pvscan.pp | 0
.../modules/env/manifests/std/g5k_generator.pp | 0
.../modules/env/manifests/std/install_g5kchecks.pp | 12 +
.../env/manifests/std/install_g5ksubnets.pp | 0
.../env/manifests/std/install_hwraid_apt_source.pp | 0
.../modules/env/manifests/std/install_kameleon.pp | 21 +
.../manifests/std/install_libguestfs_backport.pp | 0
.../modules/env/manifests/std/install_megacli.pp | 0
.../modules/env/manifests/std/install_sudog5k.pp | 0
.../puppet/modules/env/manifests/std/ipmitool.pp | 0
.../modules/env/manifests/std/nvidia_reset_mig.pp | 0
.../data/setup/puppet/modules/env/manifests/xen.pp | 0
.../modules/env/manifests/xen/configure_xen.pp | 0
.../modules/env/manifests/xen/install_grub.pp | 0
.../env/templates/base/omnipath/scibian.key.erb | 0
.../modules/env/templates/common/apt_pinning.erb | 0
.../puppet/modules/env/templates/min/motd.erb | 0
.../env/templates/nfs/ldap/common-account.erb | 0
.../modules/env/templates/nfs/ntp/ntp.conf.erb | 0
.../env/templates/std/dell/linux.dell.com.key.erb | 0
.../std/hwraid/hwraid.le-vert.net.key.erb | 0
.../grid5000}/steps/disable_checkpoint.yaml | 0
.../grid5000}/steps/enable_checkpoint.yaml | 0
{default => image/grid5000}/steps/env/bashrc | 0
.../grid5000}/steps/env/functions.sh | 0
.../steps/export/debian/clean_dhcp_leases.yaml | 0
.../steps/export/do_qcow2_finish_works.yaml | 0
.../grid5000}/steps/export/export_g5k.yaml | 0
.../grid5000}/steps/export/save_appliance_VM.yaml | 3 +-
.../grid5000}/steps/setup/debian/clean_system.yaml | 0
.../setup/debian/clean_unnecessary_packages.yaml | 0
.../steps/setup/debian/configure_apt_sources.yaml | 0
.../steps/setup/debian/configure_system.yaml | 0
.../steps/setup/debian/install_packages.yaml | 0
.../steps/setup/debian/minimal_install.yaml | 0
.../steps/setup/debian/run_orchestrator.yaml | 0
.../steps/setup/debian/setup_orchestrator.yaml | 0
notes.txt => image/notes.txt | 0
debian11-taler.yaml => image/taler-debian11.yaml | 32 +-
steps/setup/taler_install.yaml | 8 -
steps/setup/taler_install.yaml~ | 2 -
update.sh | 11 +
256 files changed, 341 insertions(+), 2980 deletions(-)
diff --git a/default/from_scratch/x86_64/base.yaml
b/default/from_scratch/x86_64/base.yaml
deleted file mode 100644
index 777fdc4..0000000
--- a/default/from_scratch/x86_64/base.yaml
+++ /dev/null
@@ -1,138 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: Base recipe template
-#
-#==============================================================================
----
-# Load qemu checkpoint
-checkpoint: simple.yaml
-# Loads some helpful aliases (this files are located in steps/aliases/
directory)
-aliases: defaults.yaml
-
-# Custom shell environement (this files are located in steps/env/ directory)
-env:
- - bashrc
- - functions.sh
-
-# Global variables use by Kameleon engine and the steps
-global:
- # Architecture for the target system
- arch: x86_64
- distrib: unknown
- release: unknown
- # Default hostname
- hostname: kameleon-$${distrib}
- # Default root password
- root_password: kameleon
-
- ## System variables. Required by kameleon engine
- # Include specific steps
- include_steps:
- - $${distrib}/$${release}
- - $${distrib}
-
- # If qemu_iso_path is set, boot from an iso, retrieved from the following
URL:
- installer_iso_arch: x86_64
- installer_iso_url:
- # or give an helper script to find out the iso URL:
- installer_iso_finder_helper:
- installer_iso_finder_args:
-
- # Otherwise, if qemu_kernel_path is set, boot from an kernel, initrd and
- # cmdline fetched from the URL defined below, and used directly in qemu:
- installer_kernel_url:
- installer_initrd_url:
- installer_cmdline:
-
- ## GPG keyserver (Waring: not all servers are reliable)
- gpg_keyserver: keyserver.ubuntu.com
-
- ## QEMU options
- qemu_enable_kvm: true
- qemu_uefi: false
- qemu_cpus: 2
- qemu_memory_size: 768
- qemu_monitor_socket: $${kameleon_cwd}/qemu_monitor.socket
- qemu_arch: $${arch}
- qemu_image_size: 10G
- qemu_pidfile: $${kameleon_cwd}/qemu.pid
- qemu_kernel_path: $${kameleon_cwd}/qemu_kernel
- qemu_initrd_path: $${kameleon_cwd}/qemu_initrd
- qemu_append_cmdline: $${installer_cmdline}
- qemu_iso_path: $${kameleon_cwd}/qemu.iso
-
- # rootfs options
- disk_device: /dev/vda
- rootfs: /rootfs
- filesystem_type: ext4
-
- # appliance options
- image_disk: $${kameleon_cwd}/base_$${kameleon_recipe_name}
- image_format: qcow2
-
- # Allowed formats are: tar.gz, tar.bz2, tar.xz, tar.lzo, qcow, qcow2, qed,
vdi, raw, vmdk
- appliance_formats: tar.xz
- appliance_filename: "$${kameleon_cwd}/$${kameleon_recipe_name}"
- appliance_tar_excludes: >-
- ./etc/fstab ./root/.bash_history ./root/kameleon_workdir ./root/.ssh
- ./var/tmp/* ./tmp/* ./dev/* ./proc/* ./run/*
- ./sys/* ./root/.rpmdb ./boot/extlinux ./boot/grub ./boot/grub2
- zerofree: false
-
- # GRUB
- grub_cmdline_linux: console=tty0 console=ttyS0,115200
-
- http_directory: $${kameleon_cwd}/http_dir
- http_pid: $${kameleon_cwd}/http.pid
-
- ssh_config_file: $${kameleon_cwd}/ssh_config
- local_ip: 10.0.2.2
-
- out_context:
- cmd: ssh -F $${ssh_config_file} $${kameleon_recipe_name} -t /bin/bash
- workdir: /root/kameleon_workdir
- proxy_cache: $${local_ip}
-
- in_context:
- cmd: ssh -F $${ssh_config_file} $${kameleon_recipe_name} -t /bin/bash
- workdir: /root/kameleon_workdir
- proxy_cache: $${local_ip}
-
-# Bootstrap the new system and create the 'in_context'
-bootstrap:
- - enable_checkpoint
- - download_installer
- - prepare_disk
- - prepare_autoinstall
- - start_http_server
- - start_qemu:
- - force_vm_shutdown: false
- - shutdown_vm_immediately: true
- - vm_cleanup_section: bootstrap
- - vm_expected_service:
- - boot_timeout: 5
- - prepare_ssh_to_out_context
- - prepare_appliance
- - start_qemu:
- - force_vm_shutdown: true
- - shutdown_vm_immediately: false
- - vm_cleanup_section: setup
- - vm_expected_server: ssh
- - boot_timeout: 100
- - qemu_iso_boot: false
- - qemu_iso_path: ""
- - qemu_kernel_path: ""
- - qemu_sendkeys_commands: ""
-
-# Install and configuration steps
-setup:
- - minimal_install
- - clean_system
-
-# Export the generated appliance in the format of your choice
-export:
- - disable_checkpoint
- - save_appliance_VM:
- - appliance_tar_compression_level: "9"
diff --git a/default/from_scratch/x86_64/debian-testing.yaml
b/default/from_scratch/x86_64/debian-testing.yaml
deleted file mode 100644
index 5c65ed8..0000000
--- a/default/from_scratch/x86_64/debian-testing.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: Debian testing recipe using the netinstall mechanism
-#
-#==============================================================================
----
-extend: debian-base.yaml
-# Global variables use by Kameleon engine and the steps
-global:
- # Distribution
- distrib: debian
- release: testing
- release_number: X
- # This URL may be invalid when the testing distribution is in its early
stage,
- # i.e after a recent release of a new Debian stable.
- # In this case, it is expected for this recipe to NOT work.
- # The debian-debootstrap-testing recipe may be prefered.
- installer_iso_url:
https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso
-
-bootstrap:
- - "@base"
-
-setup:
- - "@base"
-
-export:
- - "@base"
diff --git a/default/steps/aliases/defaults.yaml
b/default/steps/aliases/defaults.yaml
deleted file mode 100644
index 6cf723b..0000000
--- a/default/steps/aliases/defaults.yaml
+++ /dev/null
@@ -1,169 +0,0 @@
-write_local:
- - exec_local: |
- mkdir -p $(dirname @1);
- cat >@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-write_in:
- - exec_in: |
- mkdir -p $(dirname @1);
- cat >@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-write_out:
- - exec_out: |
- mkdir -p $(dirname @1);
- cat >@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-append_local:
- - exec_local: |
- mkdir -p $(dirname @1);
- cat >>@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-append_in:
- - exec_in: |
- mkdir -p $(dirname @1);
- cat >>@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-append_out:
- - exec_out: |
- mkdir -p $(dirname @1);
- cat >>@1 <<EOF_KAMELEON_INTERNAL
- @2
- EOF_KAMELEON_INTERNAL
-
-write_raw_local:
- - exec_local: |
- mkdir -p $(dirname @1);
- cat >@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-write_raw_in:
- - exec_in: |
- mkdir -p $(dirname @1);
- cat >@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-write_raw_out:
- - exec_out: |
- mkdir -p $(dirname @1);
- cat >@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-append_raw_local:
- - exec_local: |
- mkdir -p $(dirname @1);
- cat >>@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-append_raw_in:
- - exec_in: |
- mkdir -p $(dirname @1);
- cat >>@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-append_raw_out:
- - exec_out: |
- mkdir -p $(dirname @1);
- cat >>@1 <<'EOF_KAMELEON_INTERNAL'
- @2
- EOF_KAMELEON_INTERNAL
-
-local2out:
- - exec_out: |
- mkdir -p $(dirname @2)
- - pipe:
- - exec_local: cat @1
- - exec_out: cat > @2
-
-local2in:
- - exec_in: mkdir -p $(dirname @2)
- - pipe:
- - exec_local: cat @1
- - exec_in: cat > @2
-
-out2local:
- - exec_local: mkdir -p $(dirname @2)
- - pipe:
- - exec_out: cat @1
- - exec_local: cat > @2
-
-out2in:
- - exec_in: mkdir -p $(dirname @2)
- - pipe:
- - exec_out: cat @1
- - exec_in: cat > @2
-
-in2local:
- - exec_local: mkdir -p $(dirname @2)
- - pipe:
- - exec_in: cat @1
- - exec_local: cat > @2
-
-in2out:
- - exec_out: mkdir -p $(dirname @2)
- - pipe:
- - exec_in: cat @1
- - exec_out: cat > @2
-
-check_cmd_out:
- - rescue:
- - exec_out: command -V @1 2> /dev/null
- - breakpoint: "@1 is missing from out_context"
-
-check_cmd_local:
- - on_bootstrap_init:
- - rescue:
- - exec_local: command -V @1 2> /dev/null
- - breakpoint: "@1 is missing from local_context"
-
-check_cmd_in:
- - rescue:
- - exec_in: command -V @1 2> /dev/null
- - breakpoint: "@1 is missing from in_context"
-
-umount_out:
- - exec_out: |
- echo "try umount @1..." ; mountpoint -q "@1" && umount -f -l "@1" || true
-
-umount_local:
- - exec_local: |
- echo "try umount @1..." ; mountpoint -q "@1" && umount -f -l "@1" || true
-
-umount_in:
- - exec_in: |
- echo "try umount @1..." ; mountpoint -q "@1" && umount -f -l "@1" || true
-
-download_file_in:
- - exec_in: __download "@1" "@2"
-
-download_file_out:
- - exec_out: __download "@1" "@2"
-
-download_file_local:
- - exec_local: __download "@1" "@2"
-
-download_recipe_build_local:
- - exec_local: __download_recipe_build "@1" "@2" "@3" "@4" "@5" "@6" "@7"
-
-download_kadeploy_environment_image_local:
- - exec_local: __download_kadeploy_environment_image "@1" "@2" "@3" "@4" "@5"
-
-apt-get_in:
- - exec_in: DEBIAN_FRONTEND=noninteractive apt-get -y --force-yes @1 2>&1
-
-apt-get_out:
- - exec_out: DEBIAN_FRONTEND=noninteractive apt-get -y --force-yes @1 2>&1
diff --git a/default/steps/bootstrap/download_installer.yaml
b/default/steps/bootstrap/download_installer.yaml
deleted file mode 100644
index f15f58c..0000000
--- a/default/steps/bootstrap/download_installer.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-- download_installer:
- - test:
- - exec_local: test -n "$${installer_iso_url}" -o -n
"$${installer_iso_finder_helper}"
- - group:
- - test:
- - exec_local: test -z "$${installer_iso_url}"
- - exec_local: |
- echo "Looking for the netinstall iso URL for
$${installer_iso_finder_args}"
- DOWNLOAD_SRC_URL=$(python2 $${installer_iso_finder_helper}
$${installer_iso_finder_args})
- - download_file_local:
- - $${installer_iso_url}
- - $${qemu_iso_path}
- - exec_local: unset DOWNLOAD_SRC_URL
- - group:
- - test:
- - exec_local: test -n "$${installer_kernel_url}"
- - download_file_local:
- - $${installer_kernel_url}
- - $${qemu_kernel_path}
- - test:
- - exec_local: test -n "$${installer_initrd_url}"
- - download_file_local:
- - $${installer_initrd_url}
- - $${qemu_initrd_path}
-
-- delete_installer:
- - on_checkpoint: skip
- - on_export_clean:
- - exec_local: rm -f $${qemu_iso_path}
- - exec_local: rm -f $${qemu_kernel_path}
- - exec_local: rm -f $${qemu_initrd_path}
diff --git a/default/steps/bootstrap/start_http_server.yaml
b/default/steps/bootstrap/start_http_server.yaml
deleted file mode 100644
index 59184c3..0000000
--- a/default/steps/bootstrap/start_http_server.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-- http_script: $${kameleon_data_dir}/helpers/simple_http_server.py
-
-- run_http_server:
- - exec_local: |
- HTTP_PORT=$(__find_free_port 8000 8100)
- echo "HTTP port: $HTTP_PORT"
- export HTTP_PORT
- - exec_local: python2 $${http_script} --root $${http_directory} --bind
0.0.0.0 --port $HTTP_PORT --daemon --pid $${http_pid}
- - on_bootstrap_clean:
- - exec_local: |
- if [ -f $${http_pid} ]; then
- HTTP_PID=$(cat $${http_pid})
- if ps -p $HTTP_PID > /dev/null; then
- echo "Killing HTTP server (pid: $HTTP_PID)..."
- kill -9 "$HTTP_PID"
- rm -f $${http_pid}
- fi
- rm -f $${http_pid}
- fi
diff --git a/default/steps/bootstrap/start_qemu.yaml
b/default/steps/bootstrap/start_qemu.yaml
deleted file mode 100644
index 4d47953..0000000
--- a/default/steps/bootstrap/start_qemu.yaml
+++ /dev/null
@@ -1,227 +0,0 @@
-# Require SSH_FWD_PORT bash environment variable to be set
-
-# This must be set if you want to boot an ISO image:
-- qemu_iso_path: ""
-- qemu_iso_boot: true
-# Else that can be set to boot from a kernel, initrd and cmdline:
-- qemu_kernel_path: ""
-- qemu_initrd_path: ""
-- qemu_append_cmdline: ""
-# Else boot from disk.
-
-- vm_expected_service: ssh
-- boot_timeout: 100
-- shutdown_timeout: 100
-- debug: false
-- telnet_port: ""
-- no_reboot: true
-- socat_monitor: socat - UNIX-CONNECT:$${qemu_monitor_socket}
-- qemu_sendkeys_script: $${kameleon_data_dir}/qemu-sendkeys.rb
-- qemu_sendkeys_commands:
-- vm_expected_service: ssh
-- vm_cleanup_section: setup
-- shutdown_vm_immediately: false
-- force_vm_shutdown: true
-- qemu_enable_kvm: true
-- qemu_cpus: 2
-- qemu_memory_size: 768
-- qemu_monitor_socket: $${kameleon_cwd}/qemu_monitor.socket
-- qemu_arch: $${arch}
-- qemu_image_size: 10G
-- qemu_pidfile: $${kameleon_cwd}/qemu.pid
-- qemu_uefi: false
-- qemu_uefi_code_path: /usr/share/AAVMF/AAVMF_CODE.fd
-- qemu_uefi_vars_path: /usr/share/AAVMF/AAVMF_VARS.fd
-- qemu_netdev_user_options:
-- disk_cache: unsafe
-
-- start_vm:
- - on_checkpoint: redo
- - check_cmd_local: qemu-system-$${qemu_arch}
- - check_cmd_local: socat
- - on_bootstrap_clean:
- - test:
- - exec_local: test "$${shutdown_vm_immediately}" == "false" -a
"$${vm_cleanup_section}" == "bootstrap"
- - group:
- - exec_local: &1 |
- if [ -f $${qemu_pidfile} ]; then
- _QEMU_PID=$(< $${qemu_pidfile})
- if ps -p $_QEMU_PID > /dev/null; then
- if [ "$${force_vm_shutdown}" == "true" ]; then
- if [ -S $${qemu_monitor_socket} ]; then
- echo "Executing a graceful shutdown of the qemu VM via the
monitor socket..."
- NEXT_WAIT_TIME=0
- echo system_powerdown | socat -
UNIX-CONNECT:$${qemu_monitor_socket} || true
- while ps -p $_QEMU_PID > /dev/null && [ $NEXT_WAIT_TIME
-lt $${shutdown_timeout} ];
- do
- sleep 1
- echo -en "\rWaiting for qemu virtual machine to
shutdown...($(( $${shutdown_timeout} - 1 - NEXT_WAIT_TIME++ ))s)"
- done
- fi
- else
- echo "Waiting for the VM to shutdown"
- echo "Run 'vncviewer :$VNC_PORT' to see what's happening in
the VM"
- while ps -p $_QEMU_PID > /dev/null;
- do
- sleep 2
- done
- fi
- fi
- fi
- - exec_local: &2 |
- if [ -f $${qemu_pidfile} ]; then
- _QEMU_PID=$(< $${qemu_pidfile})
- if ps -p $_QEMU_PID > /dev/null; then
- if [ -S $${qemu_monitor_socket} ]; then
- echo "The graceful shutdown of the qemu VM should have
failed (monitor socket is there)..."
- fi
- echo "Killing qemu (pid: $_QEMU_PID)."
- kill -9 "$_QEMU_PID"
- fi
- rm -f $${qemu_pidfile}
- fi
- rm -f $${qemu_monitor_socket}
- - on_setup_clean:
- - test:
- - exec_local: test "$${shutdown_vm_immediately}" == "false" -a
"$${vm_cleanup_section}" == "setup"
- - group:
- - exec_local: *1
- - exec_local: *2
- - on_export_clean:
- - test:
- - exec_local: test "$${shutdown_vm_immediately}" == "false" -a
"$${vm_cleanup_section}" == "export"
- - group:
- - exec_local: *1
- - exec_local: *2
- - exec_local: |
- if [ "$${shutdown_vm_immediately}" == "true" ]; then
- echo "Qemu VM shutdown: immediately"
- else
- echo "Qemu VM shutdown: in $${vm_cleanup_section} section cleaning"
- fi
- - exec_local: |
- if [ -r $${qemu_pidfile} ] && pgrep -F $${qemu_pidfile} > /dev/null; then
- echo "Qemu pid file found, with process running: killing it !" 1>&2
- pkill -F $${qemu_pidfile}
- sleep 0.5
- if pgrep -F $${qemu_pidfile} > /dev/null; then
- echo "Failed to kill qemu process." 1>&2
- exit 1
- fi
- fi
- - exec_local: |
- echo "Starting qemu..."
- if [ "$${qemu_enable_kvm}" == "true" ] && (/usr/sbin/kvm-ok > /dev/null
|| egrep '(vmx|svm)' /proc/cpuinfo > /dev/null) ; then # print warning if
/usr/sbin/kvm-ok is not installed
- if [ "$${qemu_arch}" == "aarch64" ]; then
- ENABLE_KVM="-enable-kvm -accel kvm -machine
virt,gic-version=host,accel=kvm:tcg -cpu host"
- #ENABLE_KVM="-global virtio-blk-pci.scsi=off -no-user-config
-enable-fips -machine virt,gic-version=host,accel=kvm:tcg -cpu host -rtc
driftfix=slew -object rng-random,filename=/dev/urandom,id=rng0 -device
virtio-rng-pci,rng=rng0"
- elif [ "$${qemu_arch}" == "ppc64" ]; then
- ENABLE_KVM="-enable-kvm -accel kvm -machine pseries,accel=kvm:tcg
-cpu host"
- else #X86_64
- ENABLE_KVM="-enable-kvm -cpu host"
- fi
- BOOT_TIMEOUT=$${boot_timeout}
- else
- echo "No KVM acceleration used"
- BOOT_TIMEOUT=$(($${boot_timeout}*2))
- fi
- if [ -f "vm_state_to_load.txt" ]
- then
- SAVED_STATE="$(< vm_state_to_load.txt)"
- LOADVM="-loadvm $SAVED_STATE"
- rm -f vm_state_to_load.txt
- fi
- if [ "$${debug}" == "true" ]; then
- VNC_OPT=""
- else
- # Find empty VNC port
- VNC_PORT=$(( $(__find_free_port 5900 5910) - 5900 ))
- echo "VNC port: $VNC_PORT"
- VNC_OPT="-vnc :$VNC_PORT"
- fi
- if [ -n "$${telnet_port}" ]; then
- SERIAL_TELNET="telnet:localhost:$${telnet_port},server"
- fi
- # Select disk
- QEMU_DRIVES="-drive
file=$${image_disk}.$${image_format},cache=$${disk_cache},media=disk,if=virtio,id=drive0"
- QEMU_BOOT=
- QEMU_APPEND_CMDLINE=
- if [ "$${qemu_uefi}" == "true" ]; then
- if [ ! -f $${kameleon_cwd}/qemu_uefi_vars.fd ]; then
- cp $${qemu_uefi_vars_path} $${kameleon_cwd}/qemu_uefi_vars.fd
- fi
- QEMU_BOOT="-drive
if=pflash,format=raw,readonly,file=$${qemu_uefi_code_path} -drive
if=pflash,format=raw,file=$${kameleon_cwd}/qemu_uefi_vars.fd"
- fi
- if [ -n "$${qemu_iso_path}" ]; then
- QEMU_DRIVES="-drive file=$${qemu_iso_path},readonly,media=cdrom
$QEMU_DRIVES"
- if [ "$${qemu_iso_boot}" == "true" ]; then
- QEMU_BOOT="$QEMU_BOOT -boot order=d"
- fi
- elif [ -n "$${qemu_kernel_path}" ]; then
- QEMU_BOOT="$QEMU_BOOT -kernel $${qemu_kernel_path}"
- if [ -n "$${qemu_initrd_path}" ]; then
- QEMU_BOOT="$QEMU_BOOT -initrd $${qemu_initrd_path}"
- fi
- if [ -n "$${qemu_append_cmdline}" ]; then
- QEMU_APPEND_CMDLINE="$${qemu_append_cmdline}"
- QEMU_APPEND_CMDLINE=${QEMU_APPEND_CMDLINE//%LOCAL_IP%/$${local_ip}}
- QEMU_APPEND_CMDLINE=${QEMU_APPEND_CMDLINE//%HTTP_PORT%/$HTTP_PORT}
- fi
- fi
- if [ -n "$${qemu_netdev_user_options}" ]; then
- QEMU_NETDEV_USER_OPTIONS=",$${qemu_netdev_user_options}"
- fi
- if [ "$${no_reboot}" == "true" ]; then
- NO_REBOOT="-no-reboot"
- fi
- if [ -n "${SSH_FWD_PORT}" ]; then
- HOSTFWD=",hostfwd=tcp::${SSH_FWD_PORT}-:22"
- fi
- qemu-system-$${qemu_arch} $ENABLE_KVM -smp $${qemu_cpus} -m
$${qemu_memory_size} -rtc base=localtime \
- -net nic,model=virtio -net user${QEMU_NETDEV_USER_OPTIONS}${HOSTFWD} \
- $QEMU_DRIVES \
- -monitor unix:$${qemu_monitor_socket},server,nowait -pidfile
$${qemu_pidfile} -daemonize \
- $QEMU_BOOT ${QEMU_APPEND_CMDLINE:+-append "$QEMU_APPEND_CMDLINE"}
$NO_REBOOT \
- $VNC_OPT $SERIAL_TELNET\
- $LOADVM
- - exec_local: |
- VM_AVAILABLE=0
- if [ "$${vm_expected_service}" == "ssh" ]; then
- TIMEOUT=$(( $(date +%s) + $BOOT_TIMEOUT ))
- until timeout 5 ssh -q -F $${ssh_config_file} -o ConnectionAttempts=1
$${kameleon_recipe_name} -t true && VM_AVAILABLE=1 || [ $(date +%s) -gt
$TIMEOUT ];
- do
- echo -en "\rWaiting for SSH to become available in VM for
out_context...($(( TIMEOUT - $(date +%s) ))s)"
- sleep 1
- done
- echo
- else
- TIMEOUT=$(( $(date +%s) + $BOOT_TIMEOUT ))
- until timeout 1 [ $(date +%s) -gt $TIMEOUT ];
- do
- echo -en "\rWaiting for VM to become available : ($(( TIMEOUT -
$(date +%s) ))s)"
- sleep 1
- done
- echo
- VM_AVAILABLE=1
- fi
- - rescue:
- - exec_local: test $VM_AVAILABLE -eq 1
- - breakpoint: |
- Failed to get VM up and running (expected service:
$${vm_expected_service}). Please verify the VM successfully booted with a vnc
client.
- - test:
- - exec_local: test -e "$${qemu_sendkeys_commands}" -a -s
"$${qemu_sendkeys_commands}"
- - exec_local: |
- echo "Sending keyboard commands to the VM: $${qemu_sendkeys_commands}"
- echo "(Local httpd server url: http://$${local_ip}:$HTTP_PORT)"
- ruby $${qemu_sendkeys_script} -d 0.05 "$(sed -e
s/%LOCAL_IP%/$${local_ip}/g -e s/%HTTP_PORT%/$HTTP_PORT/g
$${qemu_sendkeys_commands})" | $${socat_monitor} > /dev/null
- - exec_local: echo "No keyboard commands to send"
-
-- shutdown_vm:
- - on_checkpoint: redo
- - on_clean:
- - test:
- - exec_local: test "$${shutdown_vm_immediately}" == "true"
- - exec_local: *2
- - test:
- - exec_local: test "$${shutdown_vm_immediately}" == "true"
- - exec_local: *1
diff --git a/default/steps/data/helpers/export_appliance.py
b/default/steps/data/helpers/export_appliance.py
deleted file mode 100644
index 634b240..0000000
--- a/default/steps/data/helpers/export_appliance.py
+++ /dev/null
@@ -1,242 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-"""Convert a disk image to many others formats with guestfish."""
-from __future__ import division, unicode_literals
-
-import os
-# import time
-import os.path as op
-import sys
-import subprocess
-import argparse
-import logging
-
-
-logger = logging.getLogger(__name__)
-
-tar_formats = ('tar', 'tar.gz', 'tgz', 'tar.bz2', 'tbz', 'tar.xz', 'txz',
- 'tar.lzo', 'tzo')
-
-tar_options = ["--selinux", "--xattrs", "--xattrs-include=*",
"--numeric-owner", "--one-file-system"]
-
-disk_formats = ('qcow', 'qcow2', 'qed', 'vdi', 'raw', 'vmdk')
-
-
-def which(command):
- """Locate a command.
- Snippet from: http://stackoverflow.com/a/377028
- """
- def is_exe(fpath):
- return os.path.isfile(fpath) and os.access(fpath, os.X_OK)
-
- fpath, fname = os.path.split(command)
- if fpath:
- if is_exe(command):
- return command
- else:
- for path in os.environ["PATH"].split(os.pathsep):
- path = path.strip('"')
- exe_file = os.path.join(path, command)
- if is_exe(exe_file):
- return exe_file
-
- raise ValueError("Command '%s' not found" % command)
-
-
-def tar_convert(disk, output, excludes, compression_level):
- """Convert image to a tar rootfs archive."""
- if compression_level in ("best", "fast"):
- compression_level_opt = "--%s" % compression_level
- else:
- compression_level_opt = "-%s" % compression_level
-
- compr = ""
- if output.endswith(('tar.gz', 'tgz')):
- try:
- compr = "| %s %s" % (which("pigz"), compression_level_opt)
- except:
- compr = "| %s %s" % (which("gzip"), compression_level_opt)
- elif output.endswith(('tar.bz2', 'tbz')):
- compr = "| %s %s" % (which("bzip2"), compression_level_opt)
- elif output.endswith(('tar.xz', 'txz')):
- compr = "| {} {} -c --threads=0 -".format(
- which("xz"), compression_level_opt)
- elif output.endswith(('tar.lzo', 'tzo')):
- compr = "| %s %s -c -" % (which("lzop"), compression_level_opt)
-
- # NB: guestfish version >= 1.32 supports the special tar options, but not
available in Debian stable (jessie): do not use for now
- #tar_options_list = ["selinux:true", "acls:true", "xattrs:true",
- # "numericowner:true",
- # "excludes:\"%s\"" % ' '.join(excludes)]
- #tar_options_str = ' '.join(tar_options_list)
- #cmd = which("guestfish") + \
- # " --ro -i tar-out -a %s / - %s %s > %s"
- #cmd = cmd % (disk, tar_options_str, compr, output)
- #proc = subprocess.Popen(cmd_mount_tar, env=os.environ.copy(), shell=True)
- #proc.communicate()
- #if proc.returncode:
- # raise subprocess.CalledProcessError(proc.returncode, cmd)
-
- tar_options_str = ' '.join(tar_options + ['--exclude="%s"' % s for s in
excludes])
- # Necessary to have quick access to /etc (bug 12240) and also good for
reproducibility
- tar_options_str += ' --sort=name'
- directory = dir_path = os.path.dirname(os.path.realpath(disk))
- cmds = [
- which("mkdir") + " %s/.mnt" % directory,
- which("guestmount") + " --ro -i -a %s %s/.mnt" % (disk, directory),
- which("tar") + " -c %s -C %s/.mnt . %s > %s" % (tar_options_str,
directory, compr, output)
- ]
- cmd_mount_tar = " && ".join(cmds)
- proc = subprocess.Popen(cmd_mount_tar, env=os.environ.copy(), shell=True)
- proc.communicate()
- returncode_mount_tar = proc.returncode
-
- # try to umount even if the previous command failed
- cmds = [
- which("guestunmount") + " %s/.mnt" % directory,
- which("rmdir") + " %s/.mnt" % directory
- ]
- cmd_umount = " && ".join(cmds)
- proc = subprocess.Popen(cmd_umount, env=os.environ.copy(), shell=True)
- proc.communicate()
- returncode_umount = proc.returncode
-
- if returncode_mount_tar:
- raise subprocess.CalledProcessError(returncode_mount_tar,
cmd_mount_tar)
- elif returncode_umount:
- raise subprocess.CalledProcessError(returncode_umount, cmd_umount)
-
-
-def qemu_convert(disk, output_fmt, output_filename):
- """Convert the disk image filename to disk image output_filename."""
- binary = which("qemu-img")
- cmd = [binary, "convert", "-O", output_fmt, disk, output_filename]
- if output_fmt in ("qcow", "qcow2"):
- cmd.insert(2, "-c")
- proc = subprocess.Popen(cmd, env=os.environ.copy(), shell=False)
- proc.communicate()
- if proc.returncode:
- raise subprocess.CalledProcessError(proc.returncode, ' '.join(cmd))
-
-
-def run_guestfish_script(disk, script, mount=""):
- """
- Run guestfish script.
- Mount should be in ("read_only", "read_write", "ro", "rw")
- """
- args = [which("guestfish"), '-a', disk]
- if mount in ("read_only", "read_write", "ro", "rw"):
- args.append('-i')
- if mount in mount in ("read_only", "ro"):
- args.append('--ro')
- else:
- args.append('--rw')
- else:
- script = "run\n%s" % script
- proc = subprocess.Popen(args,
- stdin=subprocess.PIPE,
- env=os.environ.copy())
- proc.communicate(input=script.encode('utf-8'))
- if proc.returncode:
- raise subprocess.CalledProcessError(proc.returncode, ' '.join(args))
-
-
-def guestfish_zerofree(filename):
- """Fill free space with zero"""
- logger.info(guestfish_zerofree.__doc__)
- cmd = "virt-filesystems -a %s" % filename
- fs = subprocess.check_output(cmd.encode('utf-8'),
- stderr=subprocess.STDOUT,
- shell=True,
- env=os.environ.copy())
- list_fs = fs.decode('utf-8').split()
- logger.info('\n'.join((' `--> %s' % i for i in list_fs)))
- script = '\n'.join(('zerofree %s' % i for i in list_fs))
- run_guestfish_script(filename, script, mount="read_only")
-
-
-def convert_disk_image(args):
- """Convert disk to another format."""
- filename = op.abspath(args.file.name)
- output = op.abspath(args.output)
-
- os.environ['LIBGUESTFS_CACHEDIR'] = os.getcwd()
- if args.verbose:
- os.environ['LIBGUESTFS_DEBUG'] = '1'
-
- # sometimes guestfish fails because of other virtualization tools are
- # still running use a test and retry to wait for availability
- # attempts = 0
- # while attempts < 3:
- # try:
- # logger.info("Waiting for virtualisation to be available...")
- # run_guestfish_script(filename, "cat /etc/hostname", mount='ro')
- # break
- # except:
- # attempts += 1
- # time.sleep(1)
-
- if args.zerofree and (set(args.formats) & set(disk_formats)):
- guestfish_zerofree(filename)
-
- for fmt in args.formats:
- if fmt in (tar_formats + disk_formats):
- output_filename = "%s.%s" % (output, fmt)
- if output_filename == filename:
- continue
- logger.info("Creating %s" % output_filename)
- try:
- if fmt in tar_formats:
- tar_convert(filename, output_filename,
- args.tar_excludes,
- args.tar_compression_level)
- else:
- qemu_convert(filename, fmt, output_filename)
- except ValueError as exp:
- logger.error("Error: %s" % exp)
-
-
-if __name__ == '__main__':
- allowed_formats = tar_formats + disk_formats
- allowed_formats_help = 'Allowed values are ' + ', '.join(allowed_formats)
-
- allowed_levels = ["%d" % i for i in range(1, 10)] + ["best", "fast"]
- allowed_levels_helps = 'Allowed values are ' + ', '.join(allowed_levels)
-
- parser = argparse.ArgumentParser(
- description=sys.modules[__name__].__doc__,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter
- )
- parser.add_argument('file', action="store", type=argparse.FileType('r'),
- help='Disk image filename')
- parser.add_argument('-F', '--formats', action="store", type=str, nargs='+',
- help='Output format. ' + allowed_formats_help,
- choices=allowed_formats, metavar='fmt', required=True)
- parser.add_argument('-o', '--output', action="store", type=str,
- help='Output filename (without file extension)',
- required=True, metavar='filename')
- parser.add_argument('--tar-compression-level', action="store", type=str,
- default="9", choices=allowed_levels, metavar='lvl',
- help="Compression level. " + allowed_levels_helps)
- parser.add_argument('--tar-excludes', action="store", type=str, nargs='+',
- help="Files to excluded from archive",
- metavar='pattern', default=[])
- parser.add_argument('--zerofree', action="store_true", default=False,
- help='Zero free unallocated blocks from ext2/3 '
- 'file-systems before export to reduce image size')
- parser.add_argument('--verbose', action="store_true", default=False,
- help='Enable very verbose messages')
- log_format = '%(levelname)s: %(message)s'
- level = logging.INFO
- args = parser.parse_args()
- if args.verbose:
- level = logging.DEBUG
-
- handler = logging.StreamHandler(sys.stdout)
- handler.setLevel(level)
- handler.setFormatter(logging.Formatter(log_format))
-
- logger.setLevel(level)
- logger.addHandler(handler)
-
- convert_disk_image(args)
diff --git a/default/steps/data/helpers/netinstall_iso_finder.py
b/default/steps/data/helpers/netinstall_iso_finder.py
deleted file mode 100644
index b4a135b..0000000
--- a/default/steps/data/helpers/netinstall_iso_finder.py
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
-"""Find the latest netinstall iso for a Debian version and system
architecture."""
-
-from html.parser import HTMLParser
-from urllib2 import urlopen
-from urlparse import urljoin
-import re
-import sys
-import argparse
-import logging
-
-logger = logging.getLogger(__name__)
-
-class LinkParser(HTMLParser):
- """Retrieve links (a hrefs) from a text/html document"""
- def __init__(self, url):
- HTMLParser.__init__(self)
- self.url = url
- self.links = set()
- response = urlopen(url)
- contentType = response.info().get('Content-Type')
- if not contentType:
- return
- logger.debug("url = " + url );
- logger.debug("contentType = " + contentType );
- if ';' in contentType:
- (mediaType,charset) = contentType.split(";")
- charset = charset.split("=")[1]
- else:
- mediaType = contentType
- # ISO-8859-1 is no longer the default charset, see
https://tools.ietf.org/html/rfc7231#appendix-B
- # Let's use UTF-8.
- charset = "utf-8"
- if mediaType =='text/html':
- htmlBytes = response.read()
- htmlString = htmlBytes.decode(charset)
- self.feed(htmlString)
-
- def handle_starttag(self, tag, attrs):
- if tag == 'a':
- for (key, value) in attrs:
- if key == 'href':
- new_url = urljoin(self.url,value)
- if re.match("^"+self.url, new_url):
- self.links.add(new_url)
-
- def get_links(self):
- """Returns all the collected links"""
- return self.links
-
-
-def url_find(to_visit_url_set,visited_url_set,found_url_set):
- """Recursively look for urls given a regex, a set of urls to visit, a set
of already visited urls, a set of already found urls. Returns the set of found
urls"""
- logger.debug("Progress: to_visit:{} visited:{}
found:{}".format(len(to_visit_url_set),len(visited_url_set),len(found_url_set)))
- assert(len(to_visit_url_set.intersection(visited_url_set)) == 0)
- assert(len(to_visit_url_set.intersection(found_url_set)) == 0)
- if (len(to_visit_url_set) == 0):
- return [visited_url_set,found_url_set]
- else:
- url = to_visit_url_set.pop()
- visited_url_set.add(url)
- if target_regex.match(url):
- found_url_set.add(url)
- return url_find(to_visit_url_set, visited_url_set, found_url_set)
- else:
- new_url_set = set([url for url in LinkParser(url).get_links() if
(logger.debug(url) or True) and url_regex.match(url)])
- new_url_set.difference_update(visited_url_set)
- to_visit_url_set.update(new_url_set)
- return url_find(to_visit_url_set, visited_url_set, found_url_set)
-
-def key_normalize(version_string):
- """"
- In order to perform a natural sorting, we normalize the version (X.Y.Z) as
a unique integer with the following formula: X*100 + Y*10 + Z
- For instance, it solves situations where "9.9.0" is greater than "9.9.11"
- """
- splitted_string = version_string.split('.')
- assert(len(splitted_string) == 3)
- return
int(splitted_string[0])*100+int(splitted_string[1])*10+int(splitted_string[2])
-
-if __name__ == '__main__':
- parser =
argparse.ArgumentParser(description=sys.modules[__name__].__doc__,
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
- parser.add_argument("distrib", metavar="DISTRIB", help="distribution")
- parser.add_argument("version", metavar="VERSION", help="version")
- parser.add_argument("arch", metavar="ARCH", help="architecture")
- parser.add_argument("mirror", metavar="MIRROR", help="mirror", nargs="?")
- parser.add_argument('--info', action="store_true", default=False,
help='print info messages')
- parser.add_argument('--debug', action="store_true", default=False,
help='print debug messages')
- args = parser.parse_args()
-
- handler = logging.StreamHandler()
- if args.debug:
- logger.setLevel(logging.DEBUG)
- handler.setLevel(logging.DEBUG)
- elif args.info:
- logger.setLevel(logging.INFO)
- handler.setLevel(logging.INFO)
- else:
- logger.setLevel(logging.WARNING)
- handler.setLevel(logging.WARNING)
- handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
- logger.addHandler(handler)
-
- try:
- visited = set([])
- found = set([])
- if (args.distrib.lower() == "debian"):
- if args.mirror == None:
- args.mirror = "http://cdimage.debian.org/"
- if not re.match("^\d+$",args.version):
- raise Exception("please give the Debian release number (e.g. 8
for Jessie)")
- if args.version == '10':
- url_regex =
re.compile("^"+args.mirror+"cdimage/release/(?:"+args.version+"\.\d+\.\d+/(?:"+args.arch+"/(?:iso-cd/(?:debian-"+args.version+"\.\d+\.\d+-"+args.arch+"-netinst\.iso)?)?)?)?$")
- else:
- url_regex =
re.compile("^"+args.mirror+"cdimage/archive/(?:"+args.version+"\.\d+\.\d+/(?:"+args.arch+"/(?:iso-cd/(?:debian-"+args.version+"\.\d+\.\d+-"+args.arch+"-netinst\.iso)?)?)?)?$")
- target_regex = re.compile("^.*-netinst\.iso$")
- [visited,found] = url_find(set([args.mirror+"cdimage/"+v+"/" for v
in ["release","archive"]]), set(), set())
- elif (args.distrib.lower() == "ubuntu"):
- if args.mirror == None:
- args.mirror = "http://(?:archive|old-releases).ubuntu.com/"
- servers = set(["http://"+s+".ubuntu.com/ubuntu/" for s in
["old-releases","archive"]])
- else:
- servers = set([args.mirror])
- if not re.match("^\w+$",args.version):
- raise Exception("please give the Ubuntu release name")
- url_regex =
re.compile("^"+args.mirror+"ubuntu/dists/(?:"+args.version+"(?:-updates)?/(?:main/(?:installer-"+args.arch+"/(?:current/(?:(?:legacy-)?images/(?:netboot/(?:mini\.iso)?)?)?)?)?)?)?$")
- target_regex = re.compile("^.*/mini\.iso$")
- [visited,found] = url_find(servers, set(), set())
- elif (args.distrib.lower() == "centos"):
- if args.mirror == None:
- args.mirror = "http://mirror.in2p3.fr/linux/CentOS/"
- if not re.match("^\d+$",args.version):
- raise Exception("please give the CentOS release number (e.g. 7
for CentOS-7)")
- if args.version == '6':
- url_regex =
re.compile("^"+args.mirror+"(?:"+args.version+"/(?:isos/(?:"+args.arch+"/(?:CentOS-"+args.version+"(?:\.\d+)?-"+args.arch+"-netinstall\.iso)?)?)?)?$")
- target_regex =
re.compile("^.*CentOS-\d+(?:\.\d+)?-\w+-netinstall\.iso$")
- elif args.version == '7':
- url_regex =
re.compile("^"+args.mirror+"(?:"+args.version+"/(?:isos/(?:"+args.arch+"/(?:CentOS-"+args.version+"-"+args.arch+"-NetInstall-\d+\.iso)?)?)?)?$")
- target_regex =
re.compile("^.*CentOS-\d+-\w+-NetInstall-\d+\.iso$")
- else:
- url_regex =
re.compile("^"+args.mirror+"(?:"+args.version+"/(?:isos/(?:"+args.arch+"/(?:CentOS-"+args.version+"\.\d+\.\d+-"+args.arch+"-boot\.iso)?)?)?)?$")
- target_regex =
re.compile("^.*CentOS-\d+\.\d+\.\d+-\w+-boot\.iso$")
- [visited,found] = url_find(set([args.mirror]), set(), set())
- else:
- raise Exception("this distribution is not supported")
- logger.info("URL regex: "+url_regex.pattern)
- logger.info("Target regex: "+target_regex.pattern)
- logger.debug("Visited URLs:")
- for url in visited:
- logger.debug(url)
- logger.info("Found URLs:")
- for url in found:
- logger.info(url)
- if len(found) > 0:
- if (args.distrib.lower() == "debian"):
- print(sorted(found,key=lambda
x:key_normalize(re.sub(r".*/debian-(\d+).(\d+).(\d+)-"+args.arch+"-netinst\.iso$",r"\1.\2.\3",x)),reverse=True)[0])
- else:
- print(sorted(found, reverse=False)[0])
- else:
- raise Exception("no url found")
- except Exception as exc:
- sys.stderr.write(u"Error: %s\n" % exc)
- sys.exit(1)
diff --git a/default/steps/data/helpers/simple_http_server.py
b/default/steps/data/helpers/simple_http_server.py
deleted file mode 100644
index 881343a..0000000
--- a/default/steps/data/helpers/simple_http_server.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python2
-"""Simple HTTP server"""
-from __future__ import unicode_literals
-import atexit
-import os
-import sys
-import argparse
-
-
-class HTTPServerDaemon(object):
-
- """A HTTP server daemon class."""
-
- def __init__(self, root=os.getcwd()):
- """ Initialize the object."""
- self.root = root
-
- def daemonize(self, pidfile):
- """Deamonize class. UNIX double fork mechanism."""
- try:
- pid = os.fork()
- if pid > 0:
- # exit first parent
- sys.exit(0)
- except OSError as err:
- sys.stderr.write('fork #1 failed: {0}\n'.format(err))
- sys.exit(1)
-
- # decouple from parent environment
- os.chdir(self.root)
- os.setsid()
- os.umask(0)
-
- # do second fork
- try:
- pid = os.fork()
- if pid > 0:
-
- # exit from second parent
- sys.exit(0)
- except OSError as err:
- sys.stderr.write('fork #2 failed: {0}\n'.format(err))
- sys.exit(1)
-
- # redirect standard file descriptors
- sys.stdout.flush()
- sys.stderr.flush()
- si = open(os.devnull, 'r')
- so = open(os.devnull, 'a+')
- se = open(os.devnull, 'a+')
-
- os.dup2(si.fileno(), sys.stdin.fileno())
- os.dup2(so.fileno(), sys.stdout.fileno())
- os.dup2(se.fileno(), sys.stderr.fileno())
-
- # Make sure pid file is removed if we quit
- @atexit.register
- def delpid(self):
- os.remove(pidfile)
-
- # write pidfile
- pid = str(os.getpid())
- with open(pidfile, 'w+') as f:
- f.write(pid + '\n')
-
- def start(self, pidfile, *args, **kwargs):
- """Start the daemon."""
- # Check for a pidfile to see if the daemon already runs
- try:
- with open(pidfile, 'r') as pf:
-
- pid = int(pf.read().strip())
- except IOError:
- pid = None
-
- if pid:
- message = "pidfile {0} already exist. " + \
- "Daemon already running?\n"
- sys.stderr.write(message.format(pidfile))
- sys.exit(1)
-
- # Start the daemon
- self.daemonize(pidfile)
- self.run(*args, **kwargs)
-
- def run(self, host, port):
- """ Run an HTTP server."""
- if sys.version_info[0] == 3:
- from http.server import HTTPServer, SimpleHTTPRequestHandler
- httpd = HTTPServer((host, port), SimpleHTTPRequestHandler)
- else:
- import SimpleHTTPServer
- import SocketServer
- handler = SimpleHTTPServer.SimpleHTTPRequestHandler
- httpd = SocketServer.TCPServer((host, port), handler)
-
- print("Running on http://%s:%s/" % (host, port))
- os.chdir(self.root)
- try:
- httpd.serve_forever()
- except KeyboardInterrupt:
- sys.stderr.write(u"\nBye\n")
-
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(
- description=sys.modules[__name__].__doc__,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter
- )
- parser.add_argument('--port', action="store", default=9090, type=int,
- help='Set the listening port')
- parser.add_argument('--root', action="store", default=os.getcwd())
- parser.add_argument('--bind', action="store", default="0.0.0.0",
- help='Set the binding address')
- parser.add_argument('--daemon', action="store_true", default=False)
- parser.add_argument('--pid', action="store")
-
- try:
- args = parser.parse_args()
- http_server = HTTPServerDaemon(root=args.root)
- if args.daemon:
- if args.pid is None:
- parser.error("Need to set a pid file")
- http_server.start(args.pid, args.bind, args.port)
- else:
- http_server.run(args.bind, args.port)
- except Exception as exc:
- sys.stderr.write(u"\nError: %s\n" % exc)
- sys.exit(1)
diff --git a/default/steps/data/preseed/debian-testing-preseed.cfg
b/default/steps/data/preseed/debian-testing-preseed.cfg
deleted file mode 100644
index 5af0d99..0000000
--- a/default/steps/data/preseed/debian-testing-preseed.cfg
+++ /dev/null
@@ -1,322 +0,0 @@
-#### Contents of the preconfiguration file (for wheezy)
-### Localization
-# Locale sets language and country.
-d-i debian-installer/locale string en_US.UTF-8
-
-# Keyboard selection.
-#d-i keymap select us
-d-i keyboard-configuration/xkb-keymap select us
-
-### Network configuration
-# netcfg will choose an interface that has link if possible. This makes it
-# skip displaying a list if there is more than one interface.
-d-i netcfg/choose_interface select auto
-
-# To pick a particular interface instead:
-#d-i netcfg/choose_interface select eth1
-
-# If you have a slow dhcp server and the installer times out waiting for
-# it, this might be useful.
-#d-i netcfg/dhcp_timeout string 60
-
-# If you prefer to configure the network manually, uncomment this line and
-# the static network configuration below.
-#d-i netcfg/disable_dhcp boolean true
-
-# If you want the preconfiguration file to work on systems both with and
-# without a dhcp server, uncomment these lines and the static network
-# configuration below.
-#d-i netcfg/dhcp_failed note
-#d-i netcfg/dhcp_options select Configure network manually
-
-# Static network configuration.
-#d-i netcfg/get_nameservers string 192.168.1.1
-#d-i netcfg/get_ipaddress string 192.168.1.42
-#d-i netcfg/get_netmask string 255.255.255.0
-#d-i netcfg/get_gateway string 192.168.1.1
-#d-i netcfg/confirm_static boolean true
-
-# Any hostname and domain names assigned from dhcp take precedence over
-# values set here. However, setting the values still prevents the questions
-# from being shown, even if values come from dhcp.
-d-i netcfg/get_hostname string kameleon
-d-i netcfg/get_domain string kameleon
-
-# Disable that annoying WEP key dialog.
-d-i netcfg/wireless_wep string
-# The wacky dhcp hostname that some ISPs use as a password of sorts.
-#d-i netcfg/dhcp_hostname string radish
-
-# If non-free firmware is needed for the network or other hardware, you can
-# configure the installer to always try to load it, without prompting. Or
-# change to false to disable asking.
-#d-i hw-detect/load_firmware boolean true
-
-### Network console
-# Use the following settings if you wish to make use of the network-console
-# component for remote installation over SSH. This only makes sense if you
-# intend to perform the remainder of the installation manually.
-#d-i anna/choose_modules string network-console
-#d-i network-console/password password r00tme
-#d-i network-console/password-again password r00tme
-
-### Mirror settings
-# If you select ftp, the mirror/country string does not need to be set.
-#d-i mirror/protocol string ftp
-d-i mirror/country string manual
-d-i mirror/http/hostname string http.debian.net
-d-i mirror/http/directory string /debian
-d-i mirror/http/proxy string
-
-# Suite to install.
-d-i mirror/suite string testing
-# Suite to use for loading installer components (optional).
-d-i mirror/udeb/suite string unstable
-
-### Clock and time zone setup
-# Controls whether or not the hardware clock is set to UTC.
-d-i clock-setup/utc boolean true
-
-# You may set this to any valid setting for $TZ; see the contents of
-# /usr/share/zoneinfo/ for valid values.
-d-i time/zone string UTC
-
-# Controls whether to use NTP to set the clock during the install
-d-i clock-setup/ntp boolean true
-# NTP server to use. The default is almost always fine here.
-#d-i clock-setup/ntp-server string ntp.example.com
-
-### Partitioning
-# If the system has free space you can choose to only partition that space.
-#d-i partman-auto/init_automatically_partition select biggest_free
-
-# Alternatively, you can specify a disk to partition. The device name must
-# be given in traditional non-devfs format.
-# Note: A disk must be specified, unless the system has only one disk.
-# For example, to use the first SCSI/SATA hard disk:
-#d-i partman-auto/disk string /dev/sda
-# In addition, you'll need to specify the method to use.
-# The presently available methods are: "regular", "lvm" and "crypto"
-d-i partman-auto/method string regular
-
-# If one of the disks that are going to be automatically partitioned
-# contains an old LVM configuration, the user will normally receive a
-# warning. This can be preseeded away...
-d-i partman-lvm/device_remove_lvm boolean true
-# The same applies to pre-existing software RAID array:
-d-i partman-md/device_remove_md boolean true
-
-# And the same goes for the confirmation to write the lvm partitions.
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-
-
-d-i partman/choose_partition select finish
-d-i partman-auto-lvm/guided_size string max
-
-# You can choose one of the three predefined partitioning recipes:
-# - atomic: all files in one partition
-# - home: separate /home partition
-# - multi: separate /home, /usr, /var, and /tmp partitions
-d-i partman-auto/choose_recipe select atomic
-d-i partman/default_filesystem string ext4
-
-# Or provide a recipe of your own...
-# The recipe format is documented in the file devel/partman-auto-recipe.txt.
-# If you have a way to get a recipe file into the d-i environment, you can
-# just point at it.
-#d-i partman-auto/expert_recipe_file string /hd-media/recipe
-
-# If not, you can put an entire recipe into the preconfiguration file in one
-# (logical) line. This example creates a small /boot partition, suitable
-# swap, and uses the rest of the space for the root partition:
-#d-i partman-auto/expert_recipe string \
-# boot-root :: \
-# 40 50 100 ext3 \
-# $primary{ } $bootable{ } \
-# method{ format } format{ } \
-# use_filesystem{ } filesystem{ ext3 } \
-# mountpoint{ /boot } \
-# . \
-# 500 10000 1000000000 ext3 \
-# method{ format } format{ } \
-# use_filesystem{ } filesystem{ ext3 } \
-# mountpoint{ / } \
-# . \
-# 64 512 300% linux-swap \
-# method{ swap } format{ } \
-# .
-
-#The preseed line that "selects finish" needs to be in a certain order in your
preseed, the example-preseed does not follow this.
-#http://ubuntuforums.org/archive/index.php/t-1504045.html
-
-# This makes partman automatically partition without confirmation, provided
-# that you told it what to do using one of the methods above.
-d-i partman/confirm_write_new_label boolean true
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-
-### Base system installation
-# Select the initramfs generator used to generate the initrd for 2.6 kernels.
-#d-i base-installer/kernel/linux/initramfs-generators string yaird
-
-# The kernel image (meta) package to be installed; "none" can be used if no
-# kernel is to be installed.
-#d-i base-installer/kernel/image string linux-image-2.6-486
-
-### Account setup
-# Enable login to root account
-d-i passwd/root-login boolean true
-# Root password, either in clear text
-d-i passwd/root-password password kameleon
-d-i passwd/root-password-again password kameleon
-# or encrypted using an MD5 hash.
-#d-i passwd/root-password-crypted password [MD5 hash]
-
-# Skip creation of a normal user account.
-# d-i passwd/make-user boolean false
-
-# To create a normal user account.
-d-i passwd/user-fullname string Kameleon User
-d-i passwd/username string kameleon
-# Normal user's password, either in clear text
-d-i passwd/user-password password kameleon
-d-i passwd/user-password-again password kameleon
-# or encrypted using an MD5 hash.
-#d-i passwd/user-password-crypted password [MD5 hash]
-# Create the first user with the specified UID instead of the default.
-#d-i passwd/user-uid string 1010
-# d-i user-setup/encrypt-home boolean false
-# d-i user-setup/allow-password-weak boolean true
-
-# The user account will be added to some standard initial groups. To
-# override that, use this.
-d-i passwd/user-default-groups string audio cdrom video admin
-
-### Apt setup
-# You can choose to install non-free and contrib software.
-#d-i apt-setup/non-free boolean true
-#d-i apt-setup/contrib boolean true
-# Uncomment this if you don't want to use a network mirror.
-#d-i apt-setup/use_mirror boolean false
-# Select which update services to use; define the mirrors to be used.
-# Values shown below are the normal defaults.
-# FIXME : temporarily remove security repo while debian fixes the installer
(default value : d-i apt-setup/services-select multiselect security, volatile)
-d-i apt-setup/services-select multiselect
-#d-i apt-setup/security_host string security.debian.org
-#d-i apt-setup/volatile_host string volatile.debian.org
-
-# Scan another CD or DVD?
-d-i apt-setup/cdrom/set-first boolean false
-
-# By default the installer requires that repositories be authenticated
-# using a known gpg key. This setting can be used to disable that
-# authentication. Warning: Insecure, not recommended.
-#d-i debian-installer/allow_unauthenticated string true
-
-### Package selection
-tasksel tasksel/first multiselect none
-# If the desktop task is selected, install the kde and xfce desktops
-# instead of the default gnome desktop.
-#tasksel tasksel/desktop multiselect kde, xfce
-
-# Individual additional packages to install
-d-i pkgsel/include string openssh-server sudo rsync haveged
-
-# Whether to upgrade packages after debootstrap.
-# Allowed values: none, safe-upgrade, full-upgrade
-d-i pkgsel/upgrade select none
-
-# Some versions of the installer can report back on what software you have
-# installed, and what software you use. The default is not to report back,
-# but sending reports helps the project determine what software is most
-# popular and include it on CDs.
-popularity-contest popularity-contest/participate boolean false
-
-### Boot loader installation
-# Grub is the default boot loader (for x86). If you want lilo installed
-# instead, uncomment this:
-#d-i grub-installer/skip boolean true
-# To also skip installing lilo, and install no bootloader, uncomment this
-# too:
-#d-i lilo-installer/skip boolean true
-
-# This is fairly safe to set, it makes grub install automatically to the MBR
-# if no other operating system is detected on the machine.
-d-i grub-installer/only_debian boolean true
-
-# This one makes grub-installer install to the MBR if it also finds some other
-# OS, which is less safe as it might not be able to boot that other OS.
-d-i grub-installer/with_other_os boolean true
-
-# Alternatively, if you want to install to a location other than the mbr,
-# uncomment and edit these lines:
-#d-i grub-installer/only_debian boolean false
-#d-i grub-installer/with_other_os boolean false
-#d-i grub-installer/bootdev string (hd0,0)
-# To install grub to multiple disks:
-#d-i grub-installer/bootdev string (hd0,0) (hd1,0) (hd2,0)
-
-# Optional password for grub, either in clear text
-#d-i grub-installer/password password r00tme
-#d-i grub-installer/password-again password r00tme
-# or encrypted using an MD5 hash, see grub-md5-crypt(8).
-#d-i grub-installer/password-crypted password [MD5 hash]
-
-# GRUB install devices:
-# Choices: /dev/sda (21474 MB; VMware_Virtual_S), /dev/sda1 (21472 MB;
VMware_Virtual_S)
-grub-pc grub-pc/install_devices multiselect /dev/vda
-# Choices: Enter device manually, /dev/sda
-grub-installer grub-installer/choose_bootdev select /dev/vda
-
-### Finishing up the installation
-# During installations from serial console, the regular virtual consoles
-# (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next
-# line to prevent this.
-#d-i finish-install/keep-consoles boolean true
-
-# Avoid that last message about the install being complete.
-d-i finish-install/reboot_in_progress note
-
-# This will prevent the installer from ejecting the CD during the reboot,
-# which is useful in some situations.
-d-i cdrom-detect/eject boolean false
-
-# This is how to make the installer shutdown when finished, but not
-# reboot into the installed system.
-#d-i debian-installer/exit/halt boolean true
-# This will power off the machine instead of just halting it.
-d-i debian-installer/exit/poweroff boolean true
-
-### Preseeding other packages
-# Depending on what software you choose to install, or if things go wrong
-# during the installation process, it's possible that other questions may
-# be asked. You can preseed those too, of course. To get a list of every
-# possible question that could be asked during an install, do an
-# installation, and then run these commands:
-# debconf-get-selections --installer > file
-# debconf-get-selections >> file
-
-
-#### Advanced options
-### Running custom commands during the installation
-# d-i preseeding is inherently not secure. Nothing in the installer checks
-# for attempts at buffer overflows or other exploits of the values of a
-# preconfiguration file like this one. Only use preconfiguration files from
-# trusted locations! To drive that home, and because it's generally useful,
-# here's a way to run any shell command you'd like inside the installer,
-# automatically.
-
-# This first command is run as early as possible, just after
-# preseeding is read.
-# Prevent packaged version of VirtualBox Guest Additions being installed:
-#d-i preseed/early_command string sed -i \
-# '/in-target/idiscover(){/sbin/discover|grep -v VirtualBox;}' \
-# /usr/lib/pre-pkgsel.d/20install-hwpackages
-
-# This command is run just before the install finishes, but when there is
-# still a usable /target directory. You can chroot to /target and use it
-# directly, or use the apt-install and in-target commands to easily install
-# packages and run commands in the target system.
-
diff --git a/default/steps/env/functions.sh b/default/steps/env/functions.sh
deleted file mode 100644
index 1abcc38..0000000
--- a/default/steps/env/functions.sh
+++ /dev/null
@@ -1,201 +0,0 @@
-## functions
-
-function fail {
- echo $@ 1>&2
- false
-}
-
-export -f fail
-
-function __download {
- local src=$1
- local dst=$2
- if [ -n "$DOWNLOAD_SRC_URL" ]; then
- src="$DOWNLOAD_SRC_URL"
- fi
- if [ -z "$src" ]; then
- fail "No URL to download from"
- fi
- # If dst is unset or a directory, infers dst pathname from src
- if [ -z "$dst" -o "${dst: -1}" == "/" ]; then
- dst="$dst${src##*/}"
- dst="${dst%%\?*}"
- fi
- local dstdir=${dst%/*}
- if [ -n "$dstdir" -a "$dstdir" != "$dst" ]; then
- mkdir -p $dstdir
- fi
- echo -n "Downloading: $src..."
- # Put cURL first because it accept URIs (like file://...)
- if which curl >/dev/null; then
- echo " (cURL)"
- curl -S --fail -# -L --retry 999 --retry-max-time 0 "$src" -o "$dst"
2>&1
- elif which wget >/dev/null; then
- echo " (wget)"
- wget --retry-connrefused --progress=bar:force "$src" -O "$dst" 2>&1
- elif which python >/dev/null; then
- echo " (python)"
- python -c <<EOF
-import sys
-import time
-if sys.version_info >= (3,):
- import urllib.request as urllib
-else:
- import urllib
-
-
-def reporthook(count, block_size, total_size):
- global start_time
- if count == 0:
- start_time = time.time()
- return
- duration = time.time() - start_time
- progress_size = float(count * block_size)
- if duration != 0:
- if total_size == -1:
- total_size = block_size
- percent = 'Unknown size, '
- else:
- percent = '%.0f%%, ' % float(count * block_size * 100 / total_size)
- speed = int(progress_size / (1024 * duration))
- sys.stdout.write('\r%s%.2f MB, %d KB/s, %d seconds passed'
- % (percent, progress_size / (1024 * 1024), speed,
duration))
- sys.stdout.flush()
-
-urllib.urlretrieve('$src', '$dst', reporthook=reporthook)
-print('\n')
-EOF
- true
- else
- fail "No way to download $src"
- fi
-}
-
-export -f __download
-
-function __download_recipe_build() {
- set -e
- local recipe=$1
- local version=${2:-latest}
- local do_checksum=${3:-true}
- local do_checksign=${4:-false}
- local do_cache=${5:-false}
- local builds_url=${6:-http://kameleon.imag.fr/builds}
- local dest_dir="${7:-$recipe}"
- local dest=""
- mkdir -p $dest_dir
- pushd $dest_dir > /dev/null
- echo "Downloading $recipe ($version):"
- __download $builds_url/${recipe}_$version.manifest
- if [ "$do_checksign" == "true" ]; then
- __download $builds_url/${recipe}_$version.manifest.sign
- gpg --verify ${recipe}_$version.manifest{.sign,} || fail "Cannot
verify signature"
- fi
- for f in $(< ${recipe}_$version.manifest); do
- if [[ $f =~ ^$recipe-cache_ ]] && [ "$do_cache" != "true" ]; then
- continue
- fi
- if [[ $f =~ \.sha[[:digit:]]+sum$ ]]; then
- if [ "$do_checksum" == "true" ]; then
- __download $builds_url/$f
- ${f##*.} -c $f || fail "Cannot verify checksum"
- if [ "$do_checksign" == "true" ]; then
- __download $builds_url/$f.sign
- gpg --verify $f{.sign,} || fail "Cannot verify signature"
- fi
- fi
- else
- __download $builds_url/$f
- echo -n "Link to version-less filename: "
- dest=${f%_*}.tar.${f#*.tar.}
- ln -fv $f $dest
- fi
- done
- popd > /dev/null
- export UPSTREAM_TARBALL="$dest_dir/$dest"
- set +e
-}
-
-export -f __download_recipe_build
-
-function __download_kadeploy_environment_image() {
- set -e
- local kaenv_name=$1
- local kaenv_user=$2
- local kaenv_version=$3
- local remote=$4
- local dest_dir=${5:-$kaenv_name}
- mkdir -p $dest_dir
- echo "Retrieve image for Kadeploy environment $kaenv_name"
- ${remote:+ssh $remote }which kaenv3 > /dev/null || fail "kaenv3 command
not found (${remote:-localhost})"
- # retrieve image[file], image[kind] and image[compression] from kaenv3
- declare -A image
- __kaenv() { local k=${2%%:*}; image[$k]=${2#*:}; }
- mapfile -s 1 -t -c1 -C __kaenv < <(${remote:+ssh $remote
}kaenv3${kaenv_user:+ -u $kaenv_user}${kaenv_version:+ --env-version
$kaenv_version} -p $kaenv_name | grep -A3 -e '^image:' | sed -e 's/ //g')
- [ -n "${image[file]}" ] || fail "Failed to retrieve environment
$kaenv_name"
- if [ "${image[compression]}" == "gzip" ]; then
- image[compression]="gz"
- elif [ "${image[compression]}" == "bzip2" ]; then
- image[compression]="bz2"
- fi
- image[protocol]=${image[file]%%:*}
- image[path]=${image[file]#*://}
- image[filename]=${image[path]##*/}
- local
dest=$dest_dir/${image[filename]%%.*}.${image[kind]}.${image[compression]}
- if [ "${image[kind]}" == "tar" ]; then
- if [ "${image[protocol]}" == "http" -o "${image[protocol]}" == "https"
]; then
- __download ${image[file]} $dest
- else
- if [ "${image[protocol]}" == "server" ]; then
- # If server:// => see if available locally (NFS) or fail, same
as if local:// <=> ""
- echo "Image is server side, try and fetch it from local file
${image[path]}"
- fi
- [ -r ${image[path]} ] || fail "Cannot retrieve ${image[file]}"
- cp -v ${image[path]} $dest
- fi
- else # dd or whatever
- fail "Image format${image[kind]:+ ${image[kind]}} is not supported"
- fi
- export UPSTREAM_TARBALL=$dest
- set +e
-}
-
-export -f __download_kadeploy_environment_image
-
-function __find_linux_boot_device() {
- local PDEVICE=`stat -c %04D /boot`
- for file in $(find /dev -type b 2>/dev/null) ; do
- local CURRENT_DEVICE=$(stat -c "%02t%02T" $file)
- if [ $CURRENT_DEVICE = $PDEVICE ]; then
- ROOTDEVICE="$file"
- break;
- fi
- done
- echo "$ROOTDEVICE"
-}
-
-export -f __find_linux_boot_device
-
-
-function __find_free_port() {
- local begin_port=$1
- local end_port=$2
-
- local port=$begin_port
- local ret=$(nc -z 127.0.0.1 $port && echo in use || echo free)
- while [ $port -le $end_port ] && [ "$ret" == "in use" ]
- do
- local port=$[$port+1]
- local ret=$(nc -z 127.0.0.1 $port && echo in use || echo free)
- done
-
- # manage loop exits
- if [[ $port -gt $end_port ]]
- then
- fail "No free port available between $begin_port and $end_port"
- fi
-
- echo $port
-}
-
-export -f __find_free_port
diff --git a/grid5000/from_scratch/aarch64/base.yaml
b/grid5000/from_scratch/aarch64/base.yaml
deleted file mode 100644
index 3b6d58b..0000000
--- a/grid5000/from_scratch/aarch64/base.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: arm64 base recipe
-#
-#==============================================================================
----
-extend: ../base.yaml
-# Global variables use by Kameleon engine and the steps
-global:
- arch: aarch64
- installer_iso_arch: aarch64
- qemu_arch: aarch64
- qemu_enable_kvm: true
- qemu_uefi: true
-
-bootstrap:
- - "@base"
-
-setup:
- - "@base"
-
-export:
- - "@base"
diff --git a/grid5000/from_scratch/aarch64/debian-base.yaml
b/grid5000/from_scratch/aarch64/debian-base.yaml
deleted file mode 100644
index 4450198..0000000
--- a/grid5000/from_scratch/aarch64/debian-base.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: Debian generic recipe using the netinstall mechanim
-#
-# USAGE:
-# Select directly in this recipe: see usage example commented in the global
of
-# this recipe
-#
-# or, override the globals directly in CLI. For example:
-#
-# kameleon build --global distrib:debian,release:wheezy
-#
-# or extends this recipe with your own and override those variable in it.
-#
-#==============================================================================
----
-extend: base.yaml
-
-global:
- # Boilerplate values, so that `kameleon info' works with the recipe.
- # For a specific version of Debian, please see the dedicated recipe, as this
- # recipe is mainly meant as being extended.
- distrib: debian
- deb_arch: arm64
- release: buster
- release_number: 10
-
- # URL to retrieve packages from (sources.list)
- deb_mirror_hostname: deb.debian.org
- deb_mirror_directory: /debian
- deb_mirror_uri: http://$${deb_mirror_hostname}$${deb_mirror_directory}
- deb_security_hostname: security.debian.org
- deb_security_directory: /debian
- deb_components: main contrib non-free
-
- qemu_iso_path:
- installer_iso_finder_helper:
- # Debian netinstall iso refuses to get keyborad keys via the qemu sendkey
command on ARM64.
- # Because of that, we cannot set the preseed in the iso image cdrom boot in
qemu.
- # As a consequence, we use the netboot instead and boot kernel and initrd
directly
- installer_kernel_url:
$${deb_mirror_uri}/dists/$${release}/main/installer-$${deb_arch}/current/images/netboot/debian-installer/$${deb_arch}/linux
- installer_initrd_url:
$${deb_mirror_uri}/dists/$${release}/main/installer-$${deb_arch}/current/images/netboot/debian-installer/$${deb_arch}/initrd.gz
- # Debian arm64 netboot requires to give explicitly auto=true and
priority=critical
- # (the "auto" alias seems not to only be defined for amd64).
- # FIXME find the Debian documentation page which explains that.
- installer_cmdline: "auto=true priority=critical
url=http://%LOCAL_IP%:%HTTP_PORT%/preseed.cfg"
- base_preseed_path:
$${kameleon_data_dir}/preseed/$${distrib}-$${release}-preseed.cfg
- preseed_path: $${kameleon_cwd}/preseed.cfg
-
-bootstrap:
- - "@base"
-
-setup:
- - "@base"
-
-export:
- - "@base"
diff --git a/grid5000/from_scratch/debian-base.yaml
b/grid5000/from_scratch/debian-base.yaml
deleted file mode 100644
index 447e57d..0000000
--- a/grid5000/from_scratch/debian-base.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: Debian generic recipe using the netinstall mechanim
-#
-# USAGE:
-# Select directly in this recipe: see usage example commented in the global
of
-# this recipe
-#
-# or, override the globals directly in CLI. For example:
-#
-# kameleon build --global distrib:debian,release:wheezy
-#
-# or extends this recipe with your own and override those variable in it.
-#
-#==============================================================================
----
-extend: base.yaml
-
-global:
- # Boilerplate values, so that `kameleon info' works with the recipe.
- # For a specific version of Debian, please see the dedicated recipe, as this
- # recipe is mainly meant as being extended.
- distrib: debian
- deb_arch: amd64
- release: jessie
- release_number: 8
-
- # URL to retrieve packages from (sources.list)
- deb_mirror_hostname: deb.debian.org
- deb_mirror_directory: /debian
- deb_mirror_uri: http://$${deb_mirror_hostname}$${deb_mirror_directory}
- deb_security_hostname: security.debian.org
- deb_security_directory: /debian
- deb_components: main contrib non-free
-
- # Install from the installer's iso
- # The location of the Debian netinstall iso can be set manually or guessed
- # using a url finder helper script
- #installer_iso_filename: debian-$${release_number}-$${deb_arch}-netinst.iso
- #installer_iso_location: archive
- #installer_iso_release_version: 8.0.0
- #installer_iso_url:
http://cdimage.debian.org/cdimage/$${installer_iso_location}/$${installer_iso_release_version}/$${deb_arch}/iso-cd/$${installer_iso_filename}
- installer_iso_url:
- installer_iso_finder_helper:
$${kameleon_data_dir}/helpers/netinstall_iso_finder.py
- installer_iso_finder_args: $${distrib} $${release_number} $${deb_arch}
- qemu_iso_path: $${kameleon_cwd}/$${distrib}.iso
- # Or install from the netboot kernel and initrd directly
- #installer_kernel_url:
http://deb.debian.org/debian/dists/$${release}/main/installer-$${deb_arch}/current/images/netboot/debian-installer/$${deb_arch}/linux
- #installer_initrd_url:
http://deb.debian.org/debian/dists/$${release}/main/installer-$${deb_arch}/current/images/netboot/debian-installer/$${deb_arch}/initrd.gz
- #installer_cmdline: "auto url=http://%LOCAL_IP%:%HTTP_PORT%/preseed.cfg"
-
- base_preseed_path:
$${kameleon_data_dir}/preseed/$${distrib}-$${release}-preseed.cfg
- preseed_path: $${kameleon_cwd}/preseed.cfg
-
- qemu_sendkeys_commands:
$${kameleon_data_dir}/qemu-sendkeys/netinst-iso-$${distrib}
-
-
-bootstrap:
- - "@base"
-
-setup:
- - "@base"
-
-export:
- - "@base"
diff --git a/grid5000/from_scratch/debian-bullseye.yaml
b/grid5000/from_scratch/debian-bullseye.yaml
deleted file mode 100644
index a017aab..0000000
--- a/grid5000/from_scratch/debian-bullseye.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-#==============================================================================
-# vim: softtabstop=2 shiftwidth=2 expandtab fenc=utf-8 cc=81 tw=80
-#==============================================================================
-#
-# DESCRIPTION: Debian 11 (Bullseye) recipe using the netinstall mechanism
-#
-#==============================================================================
----
-extend: debian-base.yaml
-# Global variables use by Kameleon engine and the steps
-global:
- # Distribution
- distrib: debian
- release: bullseye
- release_number: 11
-
-bootstrap:
- - "@base"
-
-setup:
- - "@base"
-
-export:
- - "@base"
diff --git a/grid5000/steps/bootstrap/debian/prepare_autoinstall.yaml
b/grid5000/steps/bootstrap/debian/prepare_autoinstall.yaml
deleted file mode 100644
index f737d20..0000000
--- a/grid5000/steps/bootstrap/debian/prepare_autoinstall.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-- copy_autoinstall_script_to_http_directory:
- - exec_local: mkdir -p $${http_directory}
- - exec_local: cp $${base_preseed_path} $${http_directory}/preseed.cfg
-
-- customize_preseed:
- - exec_local: sed -i -e 's|\(d-i passwd/root-password password
\).*|\1$${root_password}|g' $${http_directory}/preseed.cfg
- - exec_local: sed -i -e 's|\(d-i passwd/root-password-again password
\).*|\1$${root_password}|g' $${http_directory}/preseed.cfg
- - exec_local: sed -i -e 's|\(d-i mirror/http/hostname string
\).*|\1$${deb_mirror_hostname}|g' $${http_directory}/preseed.cfg
- - exec_local: sed -i -e 's|\(d-i mirror/http/directory string
\).*|\1$${deb_mirror_directory}|g' $${http_directory}/preseed.cfg
- - exec_local: sed -i -e 's|\(d-i apt-setup/security_host string
\).*|\1$${deb_security_hostname}|g' $${http_directory}/preseed.cfg
- - exec_local: sed -i -e 's|\(d-i apt-setup/security_path string
\).*|\1$${deb_security_directory}|g' $${http_directory}/preseed.cfg
diff --git a/grid5000/steps/bootstrap/prepare_appliance.yaml
b/grid5000/steps/bootstrap/prepare_appliance.yaml
deleted file mode 100644
index 4f597c4..0000000
--- a/grid5000/steps/bootstrap/prepare_appliance.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-- insecure_ssh_key: $${kameleon_cwd}/insecure_ssh_key
-
-- generate_ssh_keys:
- - check_cmd_local: ssh-keygen
- - exec_local: echo -e 'y\n' | ssh-keygen -q -t rsa -b 4096 -f
$${insecure_ssh_key} -N ''
- - exec_local: cat $${insecure_ssh_key}
-
-- inject_ssh_private_key:
- - check_cmd_local: virt-customize
- - exec_local: |
- virt-customize \
- -a $${image_disk}.$${image_format} \
- --run-command 'mkdir -p /root/.ssh' \
- --upload $${insecure_ssh_key}.pub:/root/.ssh/.kameleon_authorized_keys
\
- --run-command 'touch /root/.ssh/authorized_keys' \
- --run-command 'cp /root/.ssh/authorized_keys
/root/.ssh/authorized_keys.bak' \
- --run-command 'cat /root/.ssh/.kameleon_authorized_keys >>
/root/.ssh/authorized_keys' \
- --run-command 'chmod 700 /root/.ssh' \
- --run-command 'chmod -R go-rw /root/.ssh' \
- --run-command 'chown -R root:root /root/.ssh'
- - on_export_init:
- - exec_local: |
- virt-customize \
- -a $${image_disk}.$${image_format} \
- --run-command 'mv /root/.ssh/authorized_keys.bak
/root/.ssh/authorized_keys' \
- --delete /root/.ssh/.kameleon_authorized_keys
-
-- add_insecure_key_to_ssh_config:
- - on_checkpoint: redo
- - exec_local: |
- cat <<EOF >> $${ssh_config_file}
- IdentityFile $${insecure_ssh_key}
- EOF
diff --git a/grid5000/steps/bootstrap/prepare_disk.yaml
b/grid5000/steps/bootstrap/prepare_disk.yaml
deleted file mode 100644
index 9c3dce4..0000000
--- a/grid5000/steps/bootstrap/prepare_disk.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-- create_initial_image:
- - check_cmd_local: qemu-img
- - exec_local: |
- rm -f $${image_disk}.$${image_format}
- qemu-img create -f qcow2 $${image_disk}.$${image_format}
$${qemu_image_size}
-
-- delete_initial_image:
- - on_checkpoint: skip
- - on_export_clean:
- - exec_local: rm -f $${image_disk}.$${image_format}
diff --git a/grid5000/steps/bootstrap/prepare_ssh_to_out_context.yaml
b/grid5000/steps/bootstrap/prepare_ssh_to_out_context.yaml
deleted file mode 100644
index 172f7a4..0000000
--- a/grid5000/steps/bootstrap/prepare_ssh_to_out_context.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-- select_empty_port:
- - on_checkpoint: redo
- - exec_local: |
- # Find empty SSH forwarding port
- SSH_FWD_PORT=$(__find_free_port 50000 60000)
- echo "SSH forwarding port: $SSH_FWD_PORT"
-- prepare_ssh_config:
- - on_checkpoint: redo
- - write_local:
- - $${ssh_config_file}
- - |
- Host $${kameleon_recipe_name}
- HostName 127.0.0.1
- Port ${SSH_FWD_PORT}
- User root
- UserKnownHostsFile /dev/null
- StrictHostKeyChecking no
- PasswordAuthentication no
- IdentitiesOnly yes
- LogLevel FATAL
- ForwardAgent yes
- Compression yes
- Protocol 2
diff --git a/grid5000/steps/checkpoints/simple.yaml
b/grid5000/steps/checkpoints/simple.yaml
deleted file mode 100644
index dbd60df..0000000
--- a/grid5000/steps/checkpoints/simple.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-enabled?:
- - exec_local: test -f $${kameleon_cwd}/checkpoint_enabled
-
-create:
- - exec_local: |
- echo @microstep_id >> $${kameleon_cwd}/checkpoints.list
-
-apply:
- - exec_local: |
- touch $${kameleon_cwd}/checkpoints.list
- grep -R @microstep_id $${kameleon_cwd}/checkpoints.list
-
-
-clear:
- - exec_local: |
- echo > $${kameleon_cwd}/checkpoints.list
-
-list:
- - exec_local: |
- touch $${kameleon_cwd}/checkpoints.list
- cat $${kameleon_cwd}/checkpoints.list | uniq
diff --git a/grid5000/steps/data/preseed/debian-buster-preseed.cfg
b/grid5000/steps/data/preseed/debian-buster-preseed.cfg
deleted file mode 100644
index 434efb0..0000000
--- a/grid5000/steps/data/preseed/debian-buster-preseed.cfg
+++ /dev/null
@@ -1,443 +0,0 @@
-#### Contents of the preconfiguration file (for buster)
-### Localization
-# Preseeding only locale sets language, country and locale.
-d-i debian-installer/locale string en_US.UTF-8
-
-# The values can also be preseeded individually for greater flexibility.
-#d-i debian-installer/language string en
-#d-i debian-installer/country string NL
-#d-i debian-installer/locale string en_GB.UTF-8
-# Optionally specify additional locales to be generated.
-#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8
-
-# Keyboard selection.
-d-i keyboard-configuration/xkb-keymap select us
-# d-i keyboard-configuration/toggle select No toggling
-
-### Network configuration
-# Disable network configuration entirely. This is useful for cdrom
-# installations on non-networked devices where the network questions,
-# warning and long timeouts are a nuisance.
-#d-i netcfg/enable boolean false
-
-# netcfg will choose an interface that has link if possible. This makes it
-# skip displaying a list if there is more than one interface.
-d-i netcfg/choose_interface select auto
-
-# To pick a particular interface instead:
-#d-i netcfg/choose_interface select eth1
-
-# To set a different link detection timeout (default is 3 seconds).
-# Values are interpreted as seconds.
-#d-i netcfg/link_wait_timeout string 10
-
-# If you have a slow dhcp server and the installer times out waiting for
-# it, this might be useful.
-#d-i netcfg/dhcp_timeout string 60
-#d-i netcfg/dhcpv6_timeout string 60
-
-# If you prefer to configure the network manually, uncomment this line and
-# the static network configuration below.
-#d-i netcfg/disable_autoconfig boolean true
-
-# If you want the preconfiguration file to work on systems both with and
-# without a dhcp server, uncomment these lines and the static network
-# configuration below.
-#d-i netcfg/dhcp_failed note
-#d-i netcfg/dhcp_options select Configure network manually
-
-# Static network configuration.
-#
-# IPv4 example
-#d-i netcfg/get_ipaddress string 192.168.1.42
-#d-i netcfg/get_netmask string 255.255.255.0
-#d-i netcfg/get_gateway string 192.168.1.1
-#d-i netcfg/get_nameservers string 192.168.1.1
-#d-i netcfg/confirm_static boolean true
-#
-# IPv6 example
-#d-i netcfg/get_ipaddress string fc00::2
-#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff::
-#d-i netcfg/get_gateway string fc00::1
-#d-i netcfg/get_nameservers string fc00::1
-#d-i netcfg/confirm_static boolean true
-
-# Any hostname and domain names assigned from dhcp take precedence over
-# values set here. However, setting the values still prevents the questions
-# from being shown, even if values come from dhcp.
-d-i netcfg/get_hostname string kameleon
-d-i netcfg/get_domain string kameleon
-
-# If you want to force a hostname, regardless of what either the DHCP
-# server returns or what the reverse DNS entry for the IP is, uncomment
-# and adjust the following line.
-#d-i netcfg/hostname string somehost
-
-# Disable that annoying WEP key dialog.
-d-i netcfg/wireless_wep string
-# The wacky dhcp hostname that some ISPs use as a password of sorts.
-#d-i netcfg/dhcp_hostname string radish
-
-# If non-free firmware is needed for the network or other hardware, you can
-# configure the installer to always try to load it, without prompting. Or
-# change to false to disable asking.
-#d-i hw-detect/load_firmware boolean true
-
-### Network console
-# Use the following settings if you wish to make use of the network-console
-# component for remote installation over SSH. This only makes sense if you
-# intend to perform the remainder of the installation manually.
-#d-i anna/choose_modules string network-console
-#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
-#d-i network-console/password password r00tme
-#d-i network-console/password-again password r00tme
-
-### Mirror settings
-# If you select ftp, the mirror/country string does not need to be set.
-#d-i mirror/protocol string ftp
-d-i mirror/country string manual
-d-i mirror/http/hostname string http.fr.debian.org
-d-i mirror/http/directory string /debian
-d-i mirror/http/proxy string
-
-# Suite to install.
-#d-i mirror/suite string testing
-# Suite to use for loading installer components (optional).
-#d-i mirror/udeb/suite string testing
-
-### Account setup
-# Skip creation of a root account (normal user account will be able to
-# use sudo).
-#d-i passwd/root-login boolean false
-# Alternatively, to skip creation of a normal user account.
-#d-i passwd/make-user boolean false
-# Enable login to root account
-d-i passwd/root-login boolean true
-
-# Root password, either in clear text
-d-i passwd/root-password password kameleon
-d-i passwd/root-password-again password kameleon
-# or encrypted using a crypt(3) hash.
-#d-i passwd/root-password-crypted password [crypt(3) hash]
-
-# To create a normal user account.
-d-i passwd/user-fullname string Kameleon User
-d-i passwd/username string kameleon
-# Normal user's password, either in clear text
-d-i passwd/user-password password kameleon
-d-i passwd/user-password-again password kameleon
-# or encrypted using a crypt(3) hash.
-#d-i passwd/user-password-crypted password [crypt(3) hash]
-# Create the first user with the specified UID instead of the default.
-#d-i passwd/user-uid string 1010
-
-# The user account will be added to some standard initial groups. To
-# override that, use this.
-#d-i passwd/user-default-groups string audio cdrom video
-d-i passwd/user-default-groups string audio cdrom video admin
-
-### Clock and time zone setup
-# Controls whether or not the hardware clock is set to UTC.
-d-i clock-setup/utc boolean true
-
-# You may set this to any valid setting for $TZ; see the contents of
-# /usr/share/zoneinfo/ for valid values.
-d-i time/zone string UTC
-
-# Controls whether to use NTP to set the clock during the install
-d-i clock-setup/ntp boolean true
-# NTP server to use. The default is almost always fine here.
-#d-i clock-setup/ntp-server string ntp.example.com
-
-### Partitioning
-## Partitioning example
-# If the system has free space you can choose to only partition that space.
-# This is only honoured if partman-auto/method (below) is not set.
-#d-i partman-auto/init_automatically_partition select biggest_free
-
-# Alternatively, you may specify a disk to partition. If the system has only
-# one disk the installer will default to using that, but otherwise the device
-# name must be given in traditional, non-devfs format (so e.g. /dev/sda
-# and not e.g. /dev/discs/disc0/disc).
-# For example, to use the first SCSI/SATA hard disk:
-#d-i partman-auto/disk string /dev/sda
-# In addition, you'll need to specify the method to use.
-# The presently available methods are:
-# - regular: use the usual partition types for your architecture
-# - lvm: use LVM to partition the disk
-# - crypto: use LVM within an encrypted partition
-d-i partman-auto/method string regular
-
-# If one of the disks that are going to be automatically partitioned
-# contains an old LVM configuration, the user will normally receive a
-# warning. This can be preseeded away...
-d-i partman-lvm/device_remove_lvm boolean true
-# The same applies to pre-existing software RAID array:
-d-i partman-md/device_remove_md boolean true
-# And the same goes for the confirmation to write the lvm partitions.
-d-i partman-lvm/confirm boolean true
-d-i partman-lvm/confirm_nooverwrite boolean true
-
-# You can choose one of the three predefined partitioning recipes:
-# - atomic: all files in one partition
-# - home: separate /home partition
-# - multi: separate /home, /var, and /tmp partitions
-d-i partman-auto/choose_recipe select atomic
-
-# Or provide a recipe of your own...
-# If you have a way to get a recipe file into the d-i environment, you can
-# just point at it.
-#d-i partman-auto/expert_recipe_file string /hd-media/recipe
-
-# If not, you can put an entire recipe into the preconfiguration file in one
-# (logical) line. This example creates a small /boot partition, suitable
-# swap, and uses the rest of the space for the root partition:
-#d-i partman-auto/expert_recipe string \
-# boot-root :: \
-# 40 50 100 ext3 \
-# $primary{ } $bootable{ } \
-# method{ format } format{ } \
-# use_filesystem{ } filesystem{ ext3 } \
-# mountpoint{ /boot } \
-# . \
-# 500 10000 1000000000 ext3 \
-# method{ format } format{ } \
-# use_filesystem{ } filesystem{ ext3 } \
-# mountpoint{ / } \
-# . \
-# 64 512 300% linux-swap \
-# method{ swap } format{ } \
-# .
-
-# The full recipe format is documented in the file partman-auto-recipe.txt
-# included in the 'debian-installer' package or available from D-I source
-# repository. This also documents how to specify settings such as file
-# system labels, volume group names and which physical devices to include
-# in a volume group.
-
-# This makes partman automatically partition without confirmation, provided
-# that you told it what to do using one of the methods above.
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-# When disk encryption is enabled, skip wiping the partitions beforehand.
-#d-i partman-auto-crypto/erase_disks boolean false
-
-## Partitioning using RAID
-# The method should be set to "raid".
-#d-i partman-auto/method string raid
-# Specify the disks to be partitioned. They will all get the same layout,
-# so this will only work if the disks are the same size.
-#d-i partman-auto/disk string /dev/sda /dev/sdb
-
-# Next you need to specify the physical partitions that will be used.
-#d-i partman-auto/expert_recipe string \
-# multiraid :: \
-# 1000 5000 4000 raid \
-# $primary{ } method{ raid } \
-# . \
-# 64 512 300% raid \
-# method{ raid } \
-# . \
-# 500 10000 1000000000 raid \
-# method{ raid } \
-# .
-
-# Last you need to specify how the previously defined partitions will be
-# used in the RAID setup. Remember to use the correct partition numbers
-# for logical partitions. RAID levels 0, 1, 5, 6 and 10 are supported;
-# devices are separated using "#".
-# Parameters are:
-# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
-# <devices> <sparedevices>
-
-#d-i partman-auto-raid/recipe string \
-# 1 2 0 ext3 / \
-# /dev/sda1#/dev/sdb1 \
-# . \
-# 1 2 0 swap - \
-# /dev/sda5#/dev/sdb5 \
-# . \
-# 0 2 0 ext3 /home \
-# /dev/sda6#/dev/sdb6 \
-# .
-
-# For additional information see the file partman-auto-raid-recipe.txt
-# included in the 'debian-installer' package or available from D-I source
-# repository.
-
-# This makes partman automatically partition without confirmation.
-d-i partman-md/confirm boolean true
-d-i partman-partitioning/confirm_write_new_label boolean true
-d-i partman/choose_partition select finish
-d-i partman/confirm boolean true
-d-i partman/confirm_nooverwrite boolean true
-
-## Controlling how partitions are mounted
-# The default is to mount by UUID, but you can also choose "traditional" to
-# use traditional device names, or "label" to try filesystem labels before
-# falling back to UUIDs.
-#d-i partman/mount_style select uuid
-
-### Base system installation
-# Configure APT to not install recommended packages by default. Use of this
-# option can result in an incomplete system and should only be used by very
-# experienced users.
-#d-i base-installer/install-recommends boolean false
-
-# The kernel image (meta) package to be installed; "none" can be used if no
-# kernel is to be installed.
-#d-i base-installer/kernel/image string linux-image-686
-
-### Apt setup
-# You can choose to install non-free and contrib software.
-#d-i apt-setup/non-free boolean true
-#d-i apt-setup/contrib boolean true
-# Uncomment this if you don't want to use a network mirror.
-#d-i apt-setup/use_mirror boolean false
-# Select which update services to use; define the mirrors to be used.
-# Values shown below are the normal defaults.
-#d-i apt-setup/services-select multiselect security, updates
-#d-i apt-setup/security_host string security.debian.org
-
-# Additional repositories, local[0-9] available
-#d-i apt-setup/local0/repository string \
-# http://local.server/debian stable main
-#d-i apt-setup/local0/comment string local server
-# Enable deb-src lines
-#d-i apt-setup/local0/source boolean true
-# URL to the public key of the local repository; you must provide a key or
-# apt will complain about the unauthenticated repository and so the
-# sources.list line will be left commented out
-#d-i apt-setup/local0/key string http://local.server/key
-# Scan another CD or DVD?
-d-i apt-setup/cdrom/set-first boolean false
-
-# By default the installer requires that repositories be authenticated
-# using a known gpg key. This setting can be used to disable that
-# authentication. Warning: Insecure, not recommended.
-#d-i debian-installer/allow_unauthenticated boolean true
-
-# Uncomment this to add multiarch configuration for i386
-#d-i apt-setup/multiarch string i386
-
-
-### Package selection
-#tasksel tasksel/first multiselect standard, web-server, kde-desktop
-tasksel tasksel/first multiselect none
-
-# Individual additional packages to install
-#d-i pkgsel/include string openssh-server build-essential
-d-i pkgsel/include string openssh-server sudo rsync haveged
-# Whether to upgrade packages after debootstrap.
-# Allowed values: none, safe-upgrade, full-upgrade
-d-i pkgsel/upgrade select none
-
-# Some versions of the installer can report back on what software you have
-# installed, and what software you use. The default is not to report back,
-# but sending reports helps the project determine what software is most
-# popular and include it on CDs.
-popularity-contest popularity-contest/participate boolean false
-
-### Boot loader installation
-# Grub is the default boot loader (for x86). If you want lilo installed
-# instead, uncomment this:
-#d-i grub-installer/skip boolean true
-# To also skip installing lilo, and install no bootloader, uncomment this
-# too:
-#d-i lilo-installer/skip boolean true
-
-
-# This is fairly safe to set, it makes grub install automatically to the MBR
-# if no other operating system is detected on the machine.
-d-i grub-installer/only_debian boolean true
-
-# This one makes grub-installer install to the MBR if it also finds some other
-# OS, which is less safe as it might not be able to boot that other OS.
-d-i grub-installer/with_other_os boolean true
-
-# Due notably to potential USB sticks, the location of the MBR can not be
-# determined safely in general, so this needs to be specified:
-#d-i grub-installer/bootdev string /dev/sda
-# To install to the first device (assuming it is not a USB stick):
-#d-i grub-installer/bootdev string default
-
-# Alternatively, if you want to install to a location other than the mbr,
-# uncomment and edit these lines:
-#d-i grub-installer/only_debian boolean false
-#d-i grub-installer/with_other_os boolean false
-#d-i grub-installer/bootdev string (hd0,1)
-# To install grub to multiple disks:
-#d-i grub-installer/bootdev string (hd0,1) (hd1,1) (hd2,1)
-
-# Optional password for grub, either in clear text
-#d-i grub-installer/password password r00tme
-#d-i grub-installer/password-again password r00tme
-# or encrypted using an MD5 hash, see grub-md5-crypt(8).
-#d-i grub-installer/password-crypted password [MD5 hash]
-
-# Use the following option to add additional boot parameters for the
-# installed system (if supported by the bootloader installer).
-# Note: options passed to the installer will be added automatically.
-#d-i debian-installer/add-kernel-opts string nousb
-
-# GRUB install devices:
-# Choices: /dev/sda (21474 MB; VMware_Virtual_S), /dev/sda1 (21472 MB;
VMware_Virtual_S)
-grub-pc grub-pc/install_devices multiselect /dev/vda
-# Choices: Enter device manually, /dev/sda
-grub-installer grub-installer/choose_bootdev select /dev/vda
-
-### Finishing up the installation
-# During installations from serial console, the regular virtual consoles
-# (VT1-VT6) are normally disabled in /etc/inittab. Uncomment the next
-# line to prevent this.
-#d-i finish-install/keep-consoles boolean true
-
-# Avoid that last message about the install being complete.
-d-i finish-install/reboot_in_progress note
-
-# This will prevent the installer from ejecting the CD during the reboot,
-# which is useful in some situations.
-d-i cdrom-detect/eject boolean false
-
-# This is how to make the installer shutdown when finished, but not
-# reboot into the installed system.
-#d-i debian-installer/exit/halt boolean true
-# This will power off the machine instead of just halting it.
-d-i debian-installer/exit/poweroff boolean true
-
-### Preseeding other packages
-# Depending on what software you choose to install, or if things go wrong
-# during the installation process, it's possible that other questions may
-# be asked. You can preseed those too, of course. To get a list of every
-# possible question that could be asked during an install, do an
-# installation, and then run these commands:
-# debconf-get-selections --installer > file
-# debconf-get-selections >> file
-
-
-#### Advanced options
-### Running custom commands during the installation
-# d-i preseeding is inherently not secure. Nothing in the installer checks
-# for attempts at buffer overflows or other exploits of the values of a
-# preconfiguration file like this one. Only use preconfiguration files from
-# trusted locations! To drive that home, and because it's generally useful,
-# here's a way to run any shell command you'd like inside the installer,
-# automatically.
-
-# This first command is run as early as possible, just after
-# preseeding is read.
-#d-i preseed/early_command string anna-install some-udeb
-# This command is run immediately before the partitioner starts. It may be
-# useful to apply dynamic partitioner preseeding that depends on the state
-# of the disks (which may not be visible when preseed/early_command runs).
-#d-i partman/early_command \
-# string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
-# This command is run just before the install finishes, but when there is
-# still a usable /target directory. You can chroot to /target and use it
-# directly, or use the apt-install and in-target commands to easily install
-# packages and run commands in the target system.
-#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
-
diff --git a/grid5000/steps/data/qemu-sendkeys.rb
b/grid5000/steps/data/qemu-sendkeys.rb
deleted file mode 100644
index d1bcb0f..0000000
--- a/grid5000/steps/data/qemu-sendkeys.rb
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env ruby
-# Translate a string to "sendkey" commands for QEMU.
-# Martin Vidner, MIT License
-
-# https://en.wikibooks.org/wiki/QEMU/Monitor#sendkey_keys
-# sendkey keys
-#
-# You can emulate keyboard events through sendkey command. The syntax is:
sendkey keys. To get a list of keys, type sendkey [tab]. Examples:
-#
-# sendkey a
-# sendkey shift-a
-# sendkey ctrl-u
-# sendkey ctrl-alt-f1
-#
-# As of QEMU 0.12.5 there are:
-# shift shift_r alt alt_r altgr altgr_r
-# ctrl ctrl_r menu esc 1 2
-# 3 4 5 6 7 8
-# 9 0 minus equal backspace tab
-# q w e r t y
-# u i o p ret a
-# s d f g h j
-# k l z x c v
-# b n m comma dot slash
-# asterisk spc caps_lock f1 f2 f3
-# f4 f5 f6 f7 f8 f9
-# f10 num_lock scroll_lock kp_divide kp_multiply kp_subtract
-# kp_add kp_enter kp_decimal sysrq kp_0 kp_1
-# kp_2 kp_3 kp_4 kp_5 kp_6 kp_7
-# kp_8 kp_9 < f11 f12 print
-# home pgup pgdn end left up
-# down right insert delete
-
-require "optparse"
-
-# incomplete! only what I need now.
-KEYS = {
- "%" => "shift-5",
- "/" => "slash",
- ":" => "shift-semicolon",
- "=" => "equal",
- "." => "dot",
- " " => "spc",
- "-" => "minus",
- "_" => "shift-minus",
- "*" => "asterisk",
- "," => "comma",
- "+" => "shift-equal",
- "|" => "shift-backslash",
- "\\" => "backslash",
-}
-
-class Main
- attr_accessor :command
- attr_accessor :delay_s
- attr_accessor :keystring
-
- def initialize
- self.command = nil
- self.delay_s = 0.1
-
- OptionParser.new do |opts|
- opts.banner = "Usage: sendkeys [-c command_to_pipe_to] STRING\n" +
- "Where STRING can be 'ls<enter>ls<gt>/dev/null<enter>'"
-
- opts.on("-c", "--command COMMAND",
- "Pipe sendkeys to this commands, individually") do |v|
- self.command = v
- end
- opts.on("-d", "--delay SECONDS", Float,
- "Delay SECONDS after each key (default: 0.1)") do |v|
- self.delay_s = v
- end
- end.parse!
- self.keystring = ARGV[0]
- end
-
- def sendkey(qemu_key_name)
- if qemu_key_name == "wait"
- sleep 1
- else
- if qemu_key_name =~ /[A-Za-z]/ && qemu_key_name == qemu_key_name.upcase
- key = "shift-#{qemu_key_name.downcase}"
- else
- key = qemu_key_name
- end
- qemu_cmd = "sendkey #{key}"
- if command
- system "echo '#{qemu_cmd}' | #{command}"
- else
- puts qemu_cmd
- $stdout.flush # important when we are piped
- end
- sleep delay_s
- end
- end
-
- PATTERN = /
- \G # where last match ended
- < [^>]+ >
- |
- \G
- .
- /x
- def run
- keystring.scan(PATTERN) do |match|
- if match[0] == "<"
- key_name = match.slice(1..-2)
- sendkey case key_name
- when "lt" then "shift-comma"
- when "gt" then "shift-dot"
- else key_name
- end
- else
- sendkey KEYS.fetch(match, match)
- end
- end
- end
-end
-
-Main.new.run
diff --git a/grid5000/steps/data/qemu-sendkeys/netinst-iso-debian
b/grid5000/steps/data/qemu-sendkeys/netinst-iso-debian
deleted file mode 100644
index 7705a44..0000000
--- a/grid5000/steps/data/qemu-sendkeys/netinst-iso-debian
+++ /dev/null
@@ -1 +0,0 @@
-<esc><wait>auto preseed/url=http://%LOCAL_IP%:%HTTP_PORT%/preseed.cfg<kp_enter>
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node_site
b/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node_site
deleted file mode 100644
index 273cf08..0000000
---
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node_site
+++ /dev/null
@@ -1,49 +0,0 @@
-# OARSERVER: machine where we remotely run oarnodesetting
-OARREMOTE="frontend"
-
-# The paths to oarnodecheckquery and oarnodecheckrun (check your installation)
-OARNODECHECKQUERY=/usr/bin/oarnodecheckquery
-OARNODECHECKRUN=/usr/lib/oar/oarnodecheckrun
-# Home directory of user oar
-OARHOME=/var/lib/oar
-
-# retry settings
-MODSLEEP=20
-MINSLEEP=10
-MAXRETRY=180
-# Ungly glitch do use the good oar key.
-SITE=$( hostname | cut -d'.' -f2)
-
-
-start_oar_node() {
- test -n "$OARREMOTE" || exit 0
- local retry=0
- local sleep=0
- local status=1
- until [ $status -eq 0 ]; do
- echo "oar-node: perform sanity checks"
- $OARNODECHECKRUN
- $OARNODECHECKQUERY
- status=$?
- [ $status -eq 0 ] && {
- echo "oar-node: set the ressources of this node to Alive"
- ssh -t -oStrictHostKeyChecking=no -oPasswordAuthentication=no -i
$OARHOME/.ssh/oarnodesetting_ssh_$SITE.key oar@$OARREMOTE -p 6667
- status=$?
- }
- [ $status -ne 0 ] && {
- if [ $((retry+=sleep)) -gt $MAXRETRY ]; then
- echo "oar-node: FAILED"
- return 1
- fi
- ((sleep = $RANDOM % $MODSLEEP + $MINSLEEP))
- echo "oar-node: retrying in $sleep seconds..."
- sleep $sleep
- }
- done
- return 0
-}
-
-stop_oar_node() {
- :
-}
-
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
b/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
deleted file mode 100644
index 50fd606..0000000
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
+++ /dev/null
@@ -1,69 +0,0 @@
-class env::base::configure_ip_over_infiniband (){
-
- if $::lsbdistcodename == 'stretch' {
-
- $infiniband_packages = ['qlvnictools']
-
- ensure_packages([$infiniband_packages], {'ensure' => 'installed'})
-
- Package[$infiniband_packages]
- ->Service['openibd']
-
- }
-
- # En suivant la doc https://wiki.debian.org/RDMA, vous n'avez pas besoin
d'installer opensm sur les environnements
- # Il risque de rentrer en conflit avec d'autres instances d'OpenSM présent
sur du matériel réseau, ou bien sur des clusters externes à Grid5000 (exemple :
https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=10747)
- service {
- 'openibd':
- provider => 'systemd',
- enable => true,
- require => [
- File['/etc/systemd/system/openibd.service']
- ];
- }
-
- file {
- '/etc/infiniband':
- ensure => directory,
- owner => root,
- group => root,
- mode => '0644';
- '/etc/infiniband/openib.conf':
- ensure => file,
- owner => root,
- group => root,
- mode => '0644',
- source => 'puppet:///modules/env/base/infiniband/openib.conf',
- require => File['/etc/infiniband'];
- '/etc/init.d/openibd':
- ensure => file,
- owner => root,
- group => root,
- mode => '0755',
- source => 'puppet:///modules/env/base/infiniband/openibd';
- '/etc/systemd/system/openibd.service':
- ensure => file,
- owner => root,
- group => root,
- mode => '0644',
- source => 'puppet:///modules/env/base/infiniband/openibd.service';
- '/lib/udev/rules.d/90-ib.rules':
- ensure => present,
- owner => root,
- group => root,
- mode => '0644',
- source => 'puppet:///modules/env/base/infiniband/90-ib.rules';
- }
-
- # Empeche que ibacm.service soit en status failed (voir #13013)
- if "${::lsbdistcodename}" == "bullseye" {
- file {
- '/etc/systemd/system/ibacm.service.d/':
- ensure => directory;
- '/etc/systemd/system/ibacm.service.d/override.conf':
- ensure => present,
- content =>
"[Service]\nType=exec\nExecStart=\nExecStart=-/usr/sbin/ibacm --systemd",
- require => File['/etc/systemd/system/ibacm.service.d/'];
- }
- }
-}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
b/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
deleted file mode 100644
index b9af00e..0000000
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
+++ /dev/null
@@ -1,58 +0,0 @@
-class env::big::install_openmpi () {
-
- case "${::lsbdistcodename}" {
-
- "stretch" : {
- $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
- $openmpi_deps_packages = [ 'librdmacm1', 'libgfortran3', 'libnuma1',
'blcr-util', 'libibverbs1-dbg', 'libibverbs-dev', 'libpsm2-dev', 'libhfi1-dev',
'libopamgt-dev' ]
- $openmpi_scibian_version = '2.0.2-2sci9+opa10.7u4'
-
- ensure_packages($openmpi_deps_packages, {
- ensure => present,
- require => Class['apt::update']
- })
-
- ensure_packages($openmpi_packages, {
- ensure => $openmpi_scibian_version,
- require => Class['apt::update']
- })
- }
-
- "buster", "bullseye" : {
- $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
- $openmpi_deps_packages = [ 'libnuma1', 'libibverbs-dev' ]
- $openmpi_opa_packages = [ 'libpsm2-dev', 'libopamgt-dev' ]
-
- ensure_packages($openmpi_deps_packages, {
- ensure => present,
- require => Class['apt::update']
- })
-
- if $env::deb_arch == 'amd64' {
- ensure_packages($openmpi_opa_packages, {
- ensure => present,
- require => Class['apt::update']
- })
- }
-
- ensure_packages($openmpi_packages, {
- ensure => present,
- require => Class['apt::update']
- })
- }
- }
-
- if ($::lsbdistcodename == 'buster') {
- # The 'verbs' OFI provider is broken in OpenMPI 3.1.3. We disable it.
- # See https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=10918
- # and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941996
- # https://github.com/open-mpi/ompi/issues/7035
- # OpenMPI 4.x is not affected, so this can be removed after buster.
- # This does not affect OpenMPI when loaded using 'module'
- file_line { 'disable_verbs_ofi_provider':
- path => '/etc/openmpi/openmpi-mca-params.conf',
- line => 'mtl_ofi_provider_exclude = shm,sockets,tcp,udp,rstream,verbs',
- require => Package['openmpi-bin'];
- }
- }
-}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
b/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
deleted file mode 100644
index 3d266d5..0000000
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
+++ /dev/null
@@ -1,26 +0,0 @@
-class env::big::install_smartd {
-
- package {
- 'smartmontools':
- ensure => installed;
- }
-
- file {
- '/etc/systemd/system/smartd.service.d/':
- ensure => directory,
- require => Package['smartmontools'];
- '/etc/systemd/system/smartd.service.d/override.conf':
- ensure => present,
- content => "[Service]\nExecStartPre=mkdir -p /dev/discs",
- require => File['/etc/systemd/system/smartd.service.d/'];
- }
-
- file_line { 'smard.conf':
- ensure => present,
- require => Package['smartmontools'],
- path => '/etc/smartd.conf',
- line => 'DEVICESCAN -d nvme -d scsi -d ata -d sat -n standby -m root -M
exec /usr/share/smartmontools/smartd-runner',
- match => '^DEVICESCAN .*';
- }
-
-}
diff --git a/grid5000/steps/disable_checkpoint.yaml
b/grid5000/steps/disable_checkpoint.yaml
deleted file mode 100644
index cb571da..0000000
--- a/grid5000/steps/disable_checkpoint.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-- disable_checkpoint:
- - on_checkpoint: redo
- - exec_local: rm -f $${kameleon_cwd}/checkpoint_enabled
diff --git a/grid5000/steps/enable_checkpoint.yaml
b/grid5000/steps/enable_checkpoint.yaml
deleted file mode 100644
index 8ac4751..0000000
--- a/grid5000/steps/enable_checkpoint.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-- enable_checkpoint:
- - on_checkpoint: redo
- - on_bootstrap_init:
- - exec_local: rm -f $${kameleon_cwd}/checkpoint_enabled
- - exec_local: touch $${kameleon_cwd}/checkpoint_enabled
diff --git a/grid5000/steps/env/bashrc b/grid5000/steps/env/bashrc
deleted file mode 100644
index 6306e37..0000000
--- a/grid5000/steps/env/bashrc
+++ /dev/null
@@ -1,23 +0,0 @@
-## aliases
-# If not running interactively, don't do anything
-export USER=${USER:-"root"}
-export HOME=${HOME:-"/root"}
-export PATH=/usr/bin:/usr/sbin:/bin:/sbin:$PATH
-export LC_ALL=${LC_ALL:-"POSIX"}
-
-export DEBIAN_FRONTEND=noninteractive
-
-if [ -t 1 ] ; then
-export TERM=xterm
-# for fast typing
-alias h='history'
-alias g='git status'
-alias l='ls -lah'
-alias ll='ls -lh'
-alias la='ls -Ah'
-
-# for human readable output
-alias ls='ls -h'
-alias df='df -h'
-alias du='du -h'
-fi
diff --git a/grid5000/steps/export/export_vagrant_box.yaml
b/grid5000/steps/export/export_vagrant_box.yaml
deleted file mode 100644
index 6c048ef..0000000
--- a/grid5000/steps/export/export_vagrant_box.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-- virtualbox_vmid: $${kameleon_recipe_name}_$${kameleon_short_uuid}
-- virtualbox_disk_filename: $${appliance_filename}.$${appliance_formats}
-- virtualbox_os_type: "Debian_64"
-- vagrant_box_filename: $${kameleon_cwd}/$${kameleon_recipe_name}.box
-
-- create_vbox_machine:
- - on_export_clean:
- - exec_local: |
- if VBoxManage list vms | grep -q $${virtualbox_vmid}; then
- echo "Deleting VBox machine $${virtualbox_vmid}"
- VBoxManage unregistervm $${virtualbox_vmid} --delete
- fi
- - exec_local: |
- if [ -e $${virtualbox_disk_filename} ]; then
- echo "Deleting disk file $${virtualbox_disk_filename}"
- rm $${virtualbox_disk_filename}
- fi
- - exec_local: echo "Creating VBox machine $${virtualbox_vmid}"
- - exec_local: VBoxManage createvm --name $${virtualbox_vmid} --register
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --ostype
$${virtualbox_os_type}
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --boot1 disk
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --memory 256
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --acpi on
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --nictype1 82540EM
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --nictype2 82540EM
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --nictype3 82540EM
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --nictype4 82540EM
- - exec_local: VBoxManage modifyvm $${virtualbox_vmid} --nic1 nat
--cableconnected1 on
- - exec_local: VBoxManage storagectl $${virtualbox_vmid} --name "SATA
Controller" --add sata --controller IntelAHCI --hostiocache on
- - exec_local: |
- VBoxManage storageattach $${virtualbox_vmid} \
- --storagectl "SATA Controller" \
- --port 0 \
- --device 0 \
- --type hdd \
- --medium $${virtualbox_disk_filename}
-
-- save_box:
- - check_cmd_local: vagrant
- - exec_local: echo "Create vagrant box $${vagrant_box_filename}..."
- - exec_local: rm -f $${vagrant_box_filename}
- - exec_local: vagrant package --base $${virtualbox_vmid} --output
$${vagrant_box_filename}
diff --git a/grid5000/steps/export/save_appliance_VM.yaml
b/grid5000/steps/export/save_appliance_VM.yaml
deleted file mode 100644
index b064d02..0000000
--- a/grid5000/steps/export/save_appliance_VM.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Save Appliance from virtual machine
-#
-- export_appliance_script: $${kameleon_data_dir}/helpers/export_appliance.py
-
-# Zero free unallocated blocks from ext2/3 file-systems before export to
-# reduce image size
-- zerofree: true
-
-- save_appliance:
- - check_cmd_local: python2
- - exec_local: |
- if [ "$${zerofree}" = "true" ]; then
- EXPORT_OPTS="--zerofree"
- else
- EXPORT_OPTS=""
- fi
- - exec_local: |
- python2 $${export_appliance_script} $${image_disk}.$${image_format} \
- -o $${appliance_filename} \
- --formats $${appliance_formats} \
- --tar-compression-level $${appliance_tar_compression_level} \
- --tar-excludes $${appliance_tar_excludes} $EXPORT_OPTS
diff --git a/grid5000/steps/setup/create_user.yaml
b/grid5000/steps/setup/create_user.yaml
deleted file mode 100644
index d7c75cf..0000000
--- a/grid5000/steps/setup/create_user.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-# Create User
-
-- shell: /bin/bash
-
-- add_user:
- - exec_in: useradd -m $${name} -s $${shell}
- - exec_in: echo -n '$${name}:$${password}' | chpasswd
-
-- add_to_groups:
- - exec_in: |
- usermod -G "$(echo $${groups} | tr ' ' ',')" $${name}
diff --git a/grid5000/steps/setup/debian/clean_system.yaml
b/grid5000/steps/setup/debian/clean_system.yaml
deleted file mode 100644
index 399c339..0000000
--- a/grid5000/steps/setup/debian/clean_system.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-- enable_lighten: false
-
-- clean_user:
- - on_setup_clean:
- - exec_in: |
- if id kameleon > /dev/null 2>&1; then
- echo "Removing the kameleon user"
- userdel -r kameleon 2> >(grep -v "userdel: kameleon mail spool
(/var/mail/kameleon) not found" )
- fi
-
-- clean_apt:
- - on_setup_clean:
- - apt-get_in: autoremove
- - apt-get_in: autoclean
- - apt-get_in: purge
- - apt-get_in: clean
- - exec_in: |
- if [ $${enable_lighten} = true ]; then
- rm -rf /var/lib/apt/lists/*
- rm -rf /usr/share/locale/*
- rm -rf /usr/share/man/*
- rm -rf /usr/share/doc/*
- fi
-
-- clean_network:
- - on_setup_clean:
- - exec_in: rm -rf /var/lib/dhcp/*
-
-- clean_udev:
- - on_setup_clean:
- - exec_in: rm -rf /etc/udev/rules.d/70-persistent-net.rules
- - exec_in: rm -rf /dev/.udev/
- - exec_in: touch /etc/udev/rules.d/70-persistent-net.rules
- - exec_in: rm -rf /lib/udev/rules.d/75-persistent-net-generator.rules
\ No newline at end of file
diff --git a/grid5000/steps/setup/debian/minimal_install.yaml
b/grid5000/steps/setup/debian/minimal_install.yaml
deleted file mode 100644
index d1cdc69..0000000
--- a/grid5000/steps/setup/debian/minimal_install.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-- set_root_password:
- - exec_in: echo -n 'root:$${root_password}' | chpasswd
-
-- upgrade_system:
- - apt-get_in: dist-upgrade
diff --git a/grid5000/steps/setup/debian/setup_vagrant_box.yaml
b/grid5000/steps/setup/debian/setup_vagrant_box.yaml
deleted file mode 100644
index fb1f827..0000000
--- a/grid5000/steps/setup/debian/setup_vagrant_box.yaml
+++ /dev/null
@@ -1,77 +0,0 @@
-- puppet_deb_source: "distib" #or "puppetlabs"
-- puppet_deb_url: "http://apt.puppetlabs.com/puppet-release-$${release}.deb"
-- virtualbox_deb_source: "distrib" #or "backports"
-
-- install_requirements:
- - apt-get_in: install rsync curl linux-headers-amd64
-
-- install_virtualbox:
- - test:
- - exec_in: test "$${virtualbox_deb_source}" = "backports"
- - group:
- - write_in:
- - /etc/apt/sources.list.d/virtualbox.list
- - deb $${deb_mirror_uri} $${release}-backports $${deb_components}
- - apt-get_in: update
- - apt-get_in: install virtualbox-guest-utils
- - exec_in: rm -f /etc/apt/sources.list.d/virtualbox.list
- - apt-get_in: update
- - apt-get_in: install virtualbox-guest-utils
-
-- enable_passwordless_sudo:
- - exec_in: |
- sed -i.bkp -e \
- 's/%sudo\s\+ALL=(ALL\(:ALL\)\?)\s\+ALL/%sudo ALL=NOPASSWD:ALL/g' \
- /etc/sudoers
-
-- install_puppet:
- - test:
- - exec_in: test "$${puppet_deb_source}" = "puppetlabs"
- - group:
- - download_file_in:
- - $${puppet_deb_url}
- - $KAMELEON_WORKDIR/puppet.deb
- - exec_in: dpkg -i $KAMELEON_WORKDIR/puppet.deb
- - apt-get_in: update
- - apt-get_in: install puppet
- - exec_in: rm -f $KAMELEON_WORKDIR/puppet.deb
-
-- copy_insecure_sshkey:
- - exec_in: mkdir -pm 700 /home/$${user_name}/.ssh/
- - download_file_in:
- - "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant"
- - /home/$${user_name}/.ssh/id_rsa
- - download_file_in:
- - "https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub"
- - /home/$${user_name}/.ssh/id_rsa.pub
- - exec_in: cp /home/$${user_name}/.ssh/id_rsa.pub
/home/$${user_name}/.ssh/authorized_keys
- - exec_in: chmod 0600 /home/$${user_name}/.ssh/*
-
-- config_ssh:
- - exec_in: echo "UseDNS no" >> /etc/ssh/sshd_config
- - write_in:
- - /home/$${user_name}/.ssh/config
- - |
- Host *
- ForwardX11 no
- StrictHostKeyChecking no
- PasswordAuthentication no
- AddressFamily inet
- - exec_in: chmod 0600 /home/$${user_name}/.ssh/config
- - exec_in: rsync -ah /home/$${user_name}/.ssh/ /root/.ssh
- - exec_in: |
- if [ -e /root/.ssh/.kameleon_authorized_keys ]; then
- cat /root/.ssh/.kameleon_authorized_keys >> /root/.ssh/authorized_keys
- fi
- - exec_in: chown "$${user_name}:$${user_name}" -R /home/$${user_name}
-
-- customize_motd:
- - exec_in: echo 'Welcome to your Vagrant-built virtual machine.' > /etc/motd
-
-- fix_network_interface_for_vbox:
- - exec_in: sed -i -e 's/ens3/enp0s3/g' /etc/network/interfaces
-
-- cleanup:
- - exec_in: |
- echo "Adding a 2 sec delay to the interface up, to make the dhclient
happy"
- echo "pre-up sleep 2" >> /etc/network/interfaces
diff --git a/grid5000/debian11-x64-common.yaml
b/image/grid5000/debian11-x64-common.yaml
similarity index 100%
rename from grid5000/debian11-x64-common.yaml
rename to image/grid5000/debian11-x64-common.yaml
diff --git a/grid5000/debian11-x64-min.yaml
b/image/grid5000/debian11-x64-min.yaml
similarity index 100%
rename from grid5000/debian11-x64-min.yaml
rename to image/grid5000/debian11-x64-min.yaml
diff --git a/grid5000/from_scratch/base.yaml
b/image/grid5000/from_scratch/base.yaml
similarity index 100%
rename from grid5000/from_scratch/base.yaml
rename to image/grid5000/from_scratch/base.yaml
diff --git a/default/from_scratch/x86_64/debian-base.yaml
b/image/grid5000/from_scratch/debian-base.yaml
similarity index 100%
rename from default/from_scratch/x86_64/debian-base.yaml
rename to image/grid5000/from_scratch/debian-base.yaml
diff --git a/grid5000/from_scratch/aarch64/debian-bullseye.yaml
b/image/grid5000/from_scratch/debian-bullseye.yaml
similarity index 100%
rename from grid5000/from_scratch/aarch64/debian-bullseye.yaml
rename to image/grid5000/from_scratch/debian-bullseye.yaml
diff --git a/grid5000/steps/aliases/defaults.yaml
b/image/grid5000/steps/aliases/defaults.yaml
similarity index 100%
rename from grid5000/steps/aliases/defaults.yaml
rename to image/grid5000/steps/aliases/defaults.yaml
diff --git a/default/steps/bootstrap/debian/prepare_autoinstall.yaml
b/image/grid5000/steps/bootstrap/debian/prepare_autoinstall.yaml
similarity index 100%
rename from default/steps/bootstrap/debian/prepare_autoinstall.yaml
rename to image/grid5000/steps/bootstrap/debian/prepare_autoinstall.yaml
diff --git a/grid5000/steps/bootstrap/download_installer.yaml
b/image/grid5000/steps/bootstrap/download_installer.yaml
similarity index 90%
rename from grid5000/steps/bootstrap/download_installer.yaml
rename to image/grid5000/steps/bootstrap/download_installer.yaml
index f15f58c..b57fdcc 100644
--- a/grid5000/steps/bootstrap/download_installer.yaml
+++ b/image/grid5000/steps/bootstrap/download_installer.yaml
@@ -6,7 +6,7 @@
- exec_local: test -z "$${installer_iso_url}"
- exec_local: |
echo "Looking for the netinstall iso URL for
$${installer_iso_finder_args}"
- DOWNLOAD_SRC_URL=$(python2 $${installer_iso_finder_helper}
$${installer_iso_finder_args})
+ DOWNLOAD_SRC_URL=$($${installer_iso_finder_helper}
$${installer_iso_finder_args})
- download_file_local:
- $${installer_iso_url}
- $${qemu_iso_path}
diff --git a/default/steps/bootstrap/prepare_appliance.yaml
b/image/grid5000/steps/bootstrap/prepare_appliance.yaml
similarity index 100%
rename from default/steps/bootstrap/prepare_appliance.yaml
rename to image/grid5000/steps/bootstrap/prepare_appliance.yaml
diff --git a/default/steps/bootstrap/prepare_disk.yaml
b/image/grid5000/steps/bootstrap/prepare_disk.yaml
similarity index 100%
rename from default/steps/bootstrap/prepare_disk.yaml
rename to image/grid5000/steps/bootstrap/prepare_disk.yaml
diff --git a/default/steps/bootstrap/prepare_ssh_to_out_context.yaml
b/image/grid5000/steps/bootstrap/prepare_ssh_to_out_context.yaml
similarity index 100%
rename from default/steps/bootstrap/prepare_ssh_to_out_context.yaml
rename to image/grid5000/steps/bootstrap/prepare_ssh_to_out_context.yaml
diff --git a/grid5000/steps/bootstrap/start_http_server.yaml
b/image/grid5000/steps/bootstrap/start_http_server.yaml
similarity index 81%
rename from grid5000/steps/bootstrap/start_http_server.yaml
rename to image/grid5000/steps/bootstrap/start_http_server.yaml
index 59184c3..04af024 100644
--- a/grid5000/steps/bootstrap/start_http_server.yaml
+++ b/image/grid5000/steps/bootstrap/start_http_server.yaml
@@ -5,7 +5,7 @@
HTTP_PORT=$(__find_free_port 8000 8100)
echo "HTTP port: $HTTP_PORT"
export HTTP_PORT
- - exec_local: python2 $${http_script} --root $${http_directory} --bind
0.0.0.0 --port $HTTP_PORT --daemon --pid $${http_pid}
+ - exec_local: $${http_script} --root $${http_directory} --bind 0.0.0.0
--port $HTTP_PORT --daemon --pid $${http_pid}
- on_bootstrap_clean:
- exec_local: |
if [ -f $${http_pid} ]; then
diff --git a/grid5000/steps/bootstrap/start_qemu.yaml
b/image/grid5000/steps/bootstrap/start_qemu.yaml
similarity index 100%
rename from grid5000/steps/bootstrap/start_qemu.yaml
rename to image/grid5000/steps/bootstrap/start_qemu.yaml
diff --git a/default/steps/checkpoints/simple.yaml
b/image/grid5000/steps/checkpoints/simple.yaml
similarity index 100%
rename from default/steps/checkpoints/simple.yaml
rename to image/grid5000/steps/checkpoints/simple.yaml
diff --git a/grid5000/steps/data/helpers/export_appliance.py
b/image/grid5000/steps/data/helpers/export_appliance.py
old mode 100644
new mode 100755
similarity index 99%
rename from grid5000/steps/data/helpers/export_appliance.py
rename to image/grid5000/steps/data/helpers/export_appliance.py
index 450ef47..5207e81
--- a/grid5000/steps/data/helpers/export_appliance.py
+++ b/image/grid5000/steps/data/helpers/export_appliance.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""Convert a disk image to many others formats with guestfish."""
from __future__ import division, unicode_literals
diff --git a/grid5000/steps/data/helpers/netinstall_iso_finder.py
b/image/grid5000/steps/data/helpers/netinstall_iso_finder.py
old mode 100644
new mode 100755
similarity index 98%
rename from grid5000/steps/data/helpers/netinstall_iso_finder.py
rename to image/grid5000/steps/data/helpers/netinstall_iso_finder.py
index aa9a2e6..a3a98ab
--- a/grid5000/steps/data/helpers/netinstall_iso_finder.py
+++ b/image/grid5000/steps/data/helpers/netinstall_iso_finder.py
@@ -1,10 +1,10 @@
-#!/usr/bin/env python2
+#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""Find the latest netinstall iso for a Debian version and system
architecture."""
from html.parser import HTMLParser
-from urllib2 import urlopen
-from urlparse import urljoin
+from urllib.request import urlopen
+from urllib.parse import urljoin
import re
import sys
import argparse
diff --git a/grid5000/steps/data/helpers/simple_http_server.py
b/image/grid5000/steps/data/helpers/simple_http_server.py
old mode 100644
new mode 100755
similarity index 99%
rename from grid5000/steps/data/helpers/simple_http_server.py
rename to image/grid5000/steps/data/helpers/simple_http_server.py
index 881343a..62c6215
--- a/grid5000/steps/data/helpers/simple_http_server.py
+++ b/image/grid5000/steps/data/helpers/simple_http_server.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/python3
"""Simple HTTP server"""
from __future__ import unicode_literals
import atexit
diff --git a/grid5000/steps/data/preseed/debian-bullseye-preseed.cfg
b/image/grid5000/steps/data/preseed/debian-bullseye-preseed.cfg
similarity index 100%
rename from grid5000/steps/data/preseed/debian-bullseye-preseed.cfg
rename to image/grid5000/steps/data/preseed/debian-bullseye-preseed.cfg
diff --git a/default/steps/data/qemu-sendkeys.rb
b/image/grid5000/steps/data/qemu-sendkeys.rb
similarity index 100%
rename from default/steps/data/qemu-sendkeys.rb
rename to image/grid5000/steps/data/qemu-sendkeys.rb
diff --git a/default/steps/data/qemu-sendkeys/netinst-iso-debian
b/image/grid5000/steps/data/qemu-sendkeys/netinst-iso-debian
similarity index 100%
rename from default/steps/data/qemu-sendkeys/netinst-iso-debian
rename to image/grid5000/steps/data/qemu-sendkeys/netinst-iso-debian
diff --git a/grid5000/steps/data/setup/hiera/hiera.yaml
b/image/grid5000/steps/data/setup/hiera/hiera.yaml
similarity index 100%
rename from grid5000/steps/data/setup/hiera/hiera.yaml
rename to image/grid5000/steps/data/setup/hiera/hiera.yaml
diff --git a/grid5000/steps/data/setup/hiera/hieradata/defaults.yaml
b/image/grid5000/steps/data/setup/hiera/hieradata/defaults.yaml
similarity index 100%
rename from grid5000/steps/data/setup/hiera/hieradata/defaults.yaml
rename to image/grid5000/steps/data/setup/hiera/hieradata/defaults.yaml
diff --git a/grid5000/steps/data/setup/puppet/manifests/base.pp
b/image/grid5000/steps/data/setup/puppet/manifests/base.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/base.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/base.pp
diff --git a/grid5000/steps/data/setup/puppet/manifests/big.pp
b/image/grid5000/steps/data/setup/puppet/manifests/big.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/big.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/big.pp
diff --git a/grid5000/steps/data/setup/puppet/manifests/min.pp
b/image/grid5000/steps/data/setup/puppet/manifests/min.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/min.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/min.pp
diff --git a/grid5000/steps/data/setup/puppet/manifests/nfs.pp
b/image/grid5000/steps/data/setup/puppet/manifests/nfs.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/nfs.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/nfs.pp
diff --git a/grid5000/steps/data/setup/puppet/manifests/std.pp
b/image/grid5000/steps/data/setup/puppet/manifests/std.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/std.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/std.pp
diff --git a/grid5000/steps/data/setup/puppet/manifests/xen.pp
b/image/grid5000/steps/data/setup/puppet/manifests/xen.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/manifests/xen.pp
rename to image/grid5000/steps/data/setup/puppet/manifests/xen.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/cpufreq/cpufrequtils
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/cpufreq/cpufrequtils
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/cpufreq/cpufrequtils
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/cpufreq/cpufrequtils
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/ganglia/gmond.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/ganglia/gmond.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/ganglia/gmond.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/ganglia/gmond.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/90-ib.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/90-ib.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/90-ib.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/90-ib.rules
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openib.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openib.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openib.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openib.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/infiniband/openibd.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/kexec/kexec
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/kexec/kexec
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/base/kexec/kexec
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/kexec/kexec
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/mx/ip_over_mx
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/mx/ip_over_mx
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/mx/ip_over_mx
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/mx/ip_over_mx
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/ndctl/ndctl.preset
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/ndctl/ndctl.preset
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/ndctl/ndctl.preset
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/ndctl/ndctl.preset
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/sshfs/40-fuse.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/sshfs/40-fuse.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/sshfs/40-fuse.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/sshfs/40-fuse.rules
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/limits-grid5000.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/limits-grid5000.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/limits-grid5000.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/limits-grid5000.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/sysctl-00-grid5000.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/sysctl-00-grid5000.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/sysctl-00-grid5000.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/tuning/sysctl-00-grid5000.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/base/userns/sysctl-00-userns.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/base/userns/sysctl-00-userns.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/base/userns/sysctl-00-userns.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/base/userns/sysctl-00-userns.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/amd_gpu/70-amdgpu.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/amd_gpu/70-amdgpu.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/amd_gpu/70-amdgpu.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/amd_gpu/70-amdgpu.rules
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/60-qemu-system.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/60-qemu-system.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/60-qemu-system.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/60-qemu-system.rules
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/create_tap
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/create_tap
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/create_tap
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/create_tap
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/random_mac
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/random_mac
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/random_mac
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/random_mac
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/sudoers
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/sudoers
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/sudoers
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/kvm/sudoers
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/85-mic.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/85-mic.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/mic/85-mic.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/85-mic.rules
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/fstab
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/fstab
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/big/mic/fstab
rename to image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/fstab
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mic0.filelist
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mic0.filelist
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mic0.filelist
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mic0.filelist
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mpss
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mpss
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mpss
rename to image/grid5000/steps/data/setup/puppet/modules/env/files/big/mic/mpss
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/cuda.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/cuda.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/cuda.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/cuda.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/dcgm-exporter.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/dcgm-exporter.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/dcgm-exporter.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/dcgm-exporter.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/ganglia-monitor.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/ganglia-monitor.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/ganglia-monitor.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/ganglia-monitor.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/modpython-nvidia.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/modpython-nvidia.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/modpython-nvidia.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/modpython-nvidia.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-persistenced.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-persistenced.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-persistenced.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-persistenced.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-smi.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-smi.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-smi.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/big/nvidia/nvidia-smi.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/apt/grid5000-archive-key.asc
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/apt/grid5000-archive-key.asc
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/apt/grid5000-archive-key.asc
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/apt/grid5000-archive-key.asc
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/amd64-microcode
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/amd64-microcode
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/amd64-microcode
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/amd64-microcode
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/intel-microcode
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/intel-microcode
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/intel-microcode
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/cpu_microcode/intel-microcode
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/git_tag
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/git_tag
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/git_tag
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/git_tag
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/postinst
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/postinst
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/postinst
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/image_versioning/postinst
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale.gen
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale.gen
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale.gen
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/locales/locale.gen
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/network/g5k-update-host-name
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/network/g5k-update-host-name
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/min/network/g5k-update-host-name
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/network/g5k-update-host-name
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/min/network/hosts
b/image/grid5000/steps/data/setup/puppet/modules/env/files/min/network/hosts
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/min/network/hosts
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/min/network/hosts
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ca2019.grid5000.fr.cert
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ca2019.grid5000.fr.cert
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ca2019.grid5000.fr.cert
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ca2019.grid5000.fr.cert
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-auth
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-auth
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-auth
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-auth
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-password
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-password
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-password
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/common-password
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ldap.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ldap.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ldap.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/ldap.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/libnss-ldap.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/libnss-ldap.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/libnss-ldap.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/libnss-ldap.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nscd.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nscd.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nscd.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nscd.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nslcd.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nslcd.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nslcd.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nslcd.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nsswitch.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nsswitch.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nsswitch.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/ldap/nsswitch.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/55-openiscsi.rules
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/55-openiscsi.rules
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/55-openiscsi.rules
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/55-openiscsi.rules
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/iscsidev.sh
b/image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/iscsidev.sh
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/iscsidev.sh
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/nfs/openiscsi/iscsidev.sh
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-disk-manager-backend.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/g5k-pmem-manager.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/lib/g5k-manager.rb
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/lib/g5k-manager.rb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/lib/g5k-manager.rb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k-manager/lib/g5k-manager.rb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k_generator/g5k_generator
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k_generator/g5k_generator
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5k_generator/g5k_generator
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5k_generator/g5k_generator
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/g5kchecks/g5k-checks.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5kchecks/g5k-checks.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/g5kchecks/g5k-checks.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/g5kchecks/g5k-checks.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/lvm/lvm.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/lvm/lvm.conf
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/std/lvm/lvm.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/lvm/lvm.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables.stretch
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables.stretch
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables.stretch
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/iptables.stretch
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/rsyslog.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/rsyslog.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/rsyslog.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/rsyslog.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/syslog_iptables.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/syslog_iptables.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/syslog_iptables.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/net_access/syslog_iptables.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/nvidia_configure/nvidia-reset-mig.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/batch_job_bashrc
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/batch_job_bashrc
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/oar/batch_job_bashrc
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/batch_job_bashrc
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/etc/security/access.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/etc/security/access.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/oar/etc/security/access.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/etc/security/access.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node-service
similarity index 69%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node-service
index b8a6fc0..3ce7360 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/default_oar-node
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node-service
@@ -1,3 +1,8 @@
+#!/bin/sh
+
+# This script is called when oar-node service is started.
+# You can change this to use another method to switch the node into the Alive
state
+
# OARSERVER: machine where we remotely run oarnodesetting
OARREMOTE="oar"
@@ -10,8 +15,7 @@ OARHOME=/var/lib/oar
# retry settings
MODSLEEP=20
MINSLEEP=10
-MAXRETRY=180
-
+MAXRETRY=300
start_oar_node() {
test -n "$OARREMOTE" || exit 0
@@ -38,16 +42,39 @@ start_oar_node() {
# not provide $RANDOM
if [ "x$random" = "x" ]; then
random=$(bash -c 'echo $RANDOM')
- fi
+ fi
sleep=$(($random % $MODSLEEP + $MINSLEEP))
echo "oar-node: retrying in $sleep seconds..."
sleep $sleep
}
done
+
return 0
}
+# This function is called when oar-node service is stopped.
+# You can change this to use another method to switch the node into the Absent
state
+
stop_oar_node() {
:
}
+usage() {
+ echo "Usage: $0 start|stop"
+}
+
+if [ $# -eq 0 ]; then
+ echo "Missing operation!"
+ usage
+ exit 1
+fi
+
+if [ $1 = "start" ]; then
+ start_oar_node
+elif [ $1 = "stop" ]; then
+ stop_oar_node
+else
+ echo "Unknown operation!"
+ usage
+ exit 1
+fi
diff --git
a/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node.service.override
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node.service.override
new file mode 100644
index 0000000..352c851
--- /dev/null
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar-node.service.override
@@ -0,0 +1,2 @@
+[Service]
+TimeoutStartSec=300
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar_sshclient_config
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar_sshclient_config
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar_sshclient_config
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/oar_sshclient_config
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/var/lib/oar/access.conf
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/var/lib/oar/access.conf
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/oar/var/lib/oar/access.conf
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/oar/var/lib/oar/access.conf
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k.pub
b/image/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k.pub
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k.pub
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/std/sudo-g5k/id_rsa_sudo-g5k.pub
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/version
b/image/grid5000/steps/data/setup/puppet/modules/env/files/version
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/version
rename to image/grid5000/steps/data/setup/puppet/modules/env/files/version
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa.pub
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa.pub
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa.pub
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/id_rsa.pub
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/random_mac
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/random_mac
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/random_mac
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/random_mac
diff --git a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k.service
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k.service
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k.service
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xen-g5k.service
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xend-config.sxp
b/image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xend-config.sxp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xend-config.sxp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/files/xen/xen/xend-config.sxp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/lib/facter/installed_kernelreleases.rb
b/image/grid5000/steps/data/setup/puppet/modules/env/lib/facter/installed_kernelreleases.rb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/lib/facter/installed_kernelreleases.rb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/lib/facter/installed_kernelreleases.rb
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/base.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/base.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/base.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/add_ca_grid5000.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/add_ca_grid5000.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/add_ca_grid5000.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/add_ca_grid5000.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_dhclient.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_dhclient.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_dhclient.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_dhclient.pp
diff --git
a/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
new file mode 100644
index 0000000..7b34f73
--- /dev/null
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_ip_over_infiniband.pp
@@ -0,0 +1,75 @@
+class env::base::configure_ip_over_infiniband (){
+
+ if $::lsbdistcodename == 'stretch' {
+
+ $infiniband_packages = ['qlvnictools']
+
+ ensure_packages([$infiniband_packages], {'ensure' => 'installed'})
+
+ Package[$infiniband_packages]
+ ->Service['openibd']
+
+ }
+
+ if $::lsbdistcodename != 'bullseye' {
+ # En suivant la doc https://wiki.debian.org/RDMA, vous n'avez pas besoin
d'installer opensm sur les environnements
+ # Il risque de rentrer en conflit avec d'autres instances d'OpenSM présent
sur du matériel réseau, ou bien sur des clusters externes à Grid5000 (exemple :
https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=10747)
+ service {
+ 'openibd':
+ provider => 'systemd',
+ enable => true,
+ require => [
+ File['/etc/systemd/system/openibd.service']
+ ];
+ }
+
+ file {
+ '/etc/infiniband':
+ ensure => directory,
+ owner => root,
+ group => root,
+ mode => '0644';
+ '/etc/infiniband/openib.conf':
+ ensure => file,
+ owner => root,
+ group => root,
+ mode => '0644',
+ source => 'puppet:///modules/env/base/infiniband/openib.conf',
+ require => File['/etc/infiniband'];
+ '/etc/init.d/openibd':
+ ensure => file,
+ owner => root,
+ group => root,
+ mode => '0755',
+ source => 'puppet:///modules/env/base/infiniband/openibd';
+ '/etc/systemd/system/openibd.service':
+ ensure => file,
+ owner => root,
+ group => root,
+ mode => '0644',
+ source => 'puppet:///modules/env/base/infiniband/openibd.service';
+ '/lib/udev/rules.d/90-ib.rules':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0644',
+ source => 'puppet:///modules/env/base/infiniband/90-ib.rules';
+ }
+ }
+
+ if "${::lsbdistcodename}" == "bullseye" {
+ package {
+ 'rdma-core':
+ ensure => installed;
+ }
+ # Empeche que ibacm.service soit en status failed (voir #13013)
+ file {
+ '/etc/systemd/system/ibacm.service.d/':
+ ensure => directory;
+ '/etc/systemd/system/ibacm.service.d/override.conf':
+ ensure => present,
+ content =>
"[Service]\nType=exec\nExecStart=\nExecStart=-/usr/sbin/ibacm --systemd",
+ require => File['/etc/systemd/system/ibacm.service.d/'];
+ }
+ }
+}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_kexec.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_kexec.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_kexec.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_kexec.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
similarity index 94%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
index 9cf899a..d13058f 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/configure_omnipath.pp
@@ -5,8 +5,9 @@ class env::base::configure_omnipath(){
$opapackages = ['opa-address-resolution', 'opa-fastfabric',
'libopamgt0', 'libopasadb1',
'opa-basic-tools', 'firmware-misc-nonfree']
+ # Note: G5K libfabric1 packages installed in install_openmpi.pp
$rdmapackages = ['qperf', 'libibverbs1', 'librdmacm1', 'libibmad5',
'libibumad3', 'ibverbs-providers',
- 'rdmacm-utils', 'infiniband-diags', 'libfabric1',
'ibverbs-utils']
+ 'rdmacm-utils', 'infiniband-diags', 'ibverbs-utils']
if $env::deb_arch == 'amd64' {
ensure_packages([$opapackages, $rdmapackages], {
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_ndctl_monitor.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_ndctl_monitor.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_ndctl_monitor.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_ndctl_monitor.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_nvme_multipath.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_nvme_multipath.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_nvme_multipath.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/disable_nvme_multipath.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/do_not_clean_tmp.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/do_not_clean_tmp.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/do_not_clean_tmp.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/do_not_clean_tmp.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_cpufreq_with_performance_governor.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_cpufreq_with_performance_governor.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_cpufreq_with_performance_governor.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_cpufreq_with_performance_governor.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_userns.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_userns.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_userns.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/enable_userns.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/increase_ssh_maxstartups.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/increase_ssh_maxstartups.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/increase_ssh_maxstartups.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/increase_ssh_maxstartups.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/install_and_disable_ganglia.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/install_and_disable_ganglia.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/install_and_disable_ganglia.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/install_and_disable_ganglia.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/tcp_tuning_for_10gbe.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/tcp_tuning_for_10gbe.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/tcp_tuning_for_10gbe.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/tcp_tuning_for_10gbe.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/base/unlimited_memlock_for_infiniband.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/unlimited_memlock_for_infiniband.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/base/unlimited_memlock_for_infiniband.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/base/unlimited_memlock_for_infiniband.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/big.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/big.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/big.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
similarity index 77%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
index 3a3b9be..f5dd40f 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_amd_gpu.pp
@@ -6,8 +6,8 @@ class env::big::configure_amd_gpu () {
apt::source {
'repo.radeon.com':
comment => 'Repo for AMD ROCM packages',
- location => 'https://repo.radeon.com/rocm/apt/debian/',
- release => 'xenial',
+ location =>
"https://repo.radeon.com/rocm/apt/${::env::common::software_versions::rocm_version}/",
+ release => 'ubuntu',
repos => 'main',
architecture => 'amd64',
key => {
@@ -28,17 +28,23 @@ class env::big::configure_amd_gpu () {
require => [Apt::Source['repo.radeon.com'],
Exec['apt_update']];
}
+ exec {
+ 'add_rocm_symlink':
+ command => "/bin/ln -s /opt/rocm-*/ /opt/rocm",
+ require => Package['rocm-smi-lib'];
+ }
+
file_line {
'rocm_etc_profile_path':
path => '/etc/profile',
- line => 'export PATH=$PATH:/opt/rocm-4.2.0/bin';
+ line => 'export PATH=$PATH:/opt/rocm/bin';
}
file {
'/usr/local/bin/rocm-smi':
ensure => link,
- target => '/opt/rocm-4.2.0/bin/rocm-smi',
- require => Package['rocm-smi-lib'];
+ target => '/opt/rocm/bin/rocm-smi',
+ require => [Package['rocm-smi-lib'], Exec['add_rocm_symlink']];
'/etc/udev/rules.d/70-amdgpu.rules':
ensure => present,
owner => root,
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_initramfs.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_initramfs.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_initramfs.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_initramfs.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_kvm.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_kvm.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_kvm.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_kvm.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/cuda.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/cuda.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/cuda.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/cuda.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/drivers.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/drivers.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/drivers.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/drivers.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/ganglia.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/ganglia.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/ganglia.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/ganglia.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/modules.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/modules.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/modules.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/modules.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/prometheus.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/prometheus.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/prometheus.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/prometheus.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/services.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/services.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/services.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_nvidia_gpu/services.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_postfix.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_postfix.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_postfix.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_postfix.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_sshfs.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_sshfs.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_sshfs.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/configure_sshfs.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_beegfs.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_beegfs.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_beegfs.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_beegfs.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_g5k_jupyterlab.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_g5k_jupyterlab.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_g5k_jupyterlab.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_g5k_jupyterlab.pp
diff --git
a/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
new file mode 100644
index 0000000..be2a5bd
--- /dev/null
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_openmpi.pp
@@ -0,0 +1,95 @@
+class env::big::install_openmpi () {
+
+ case "${::lsbdistcodename}" {
+
+ "stretch" : {
+ $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
+ $openmpi_deps_packages = [ 'librdmacm1', 'libgfortran3', 'libnuma1',
'blcr-util', 'libibverbs1-dbg', 'libibverbs-dev', 'libpsm2-dev', 'libhfi1-dev',
'libopamgt-dev' ]
+ $openmpi_scibian_version = '2.0.2-2sci9+opa10.7u4'
+
+ ensure_packages($openmpi_deps_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ ensure_packages($openmpi_packages, {
+ ensure => $openmpi_scibian_version,
+ require => Class['apt::update']
+ })
+ }
+
+ "buster" : {
+ $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin' ]
+ $openmpi_deps_packages = [ 'libnuma1', 'libibverbs-dev' ]
+ $openmpi_opa_packages = [ 'libpsm2-dev', 'libopamgt-dev' ]
+
+ ensure_packages($openmpi_deps_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ if $env::deb_arch == 'amd64' {
+ ensure_packages($openmpi_opa_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+ }
+
+ ensure_packages($openmpi_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ # The 'verbs' OFI provider is broken in OpenMPI 3.1.3. We disable it.
+ # See https://intranet.grid5000.fr/bugzilla/show_bug.cgi?id=10918
+ # and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941996
+ # https://github.com/open-mpi/ompi/issues/7035
+ # OpenMPI 4.x is not affected, so this can be removed after buster.
+ # This does not affect OpenMPI when loaded using 'module'
+ file_line { 'disable_verbs_ofi_provider':
+ path => '/etc/openmpi/openmpi-mca-params.conf',
+ line => 'mtl_ofi_provider_exclude = shm,sockets,tcp,udp,rstream,verbs',
+ require => Package['openmpi-bin'];
+ }
+
+ }
+
+ "bullseye" : {
+ $openmpi_packages = [ 'libopenmpi-dev', 'openmpi-bin', 'ucx-utils',
'libfabric-bin' ]
+ $openmpi_deps_packages = [ 'libnuma1', 'libibverbs-dev' ]
+ $openmpi_opa_packages = [ 'libpsm2-dev', 'libopamgt-dev' ]
+
+ ensure_packages($openmpi_deps_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ if $env::deb_arch == 'amd64' {
+ ensure_packages($openmpi_opa_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+ }
+
+ ensure_packages($openmpi_packages, {
+ ensure => present,
+ require => Class['apt::update']
+ })
+
+ # libfabric packages : G5K rebuild with efa provider disabled
+ # See Bug #13260
+ env::common::g5kpackages {
+ 'libfabric1':
+ packages => 'libfabric1';
+ }
+
+ # Debian11 disables many providers by default. We restore UCX and Fabric,
+ # while keeping openib disabled to avoid useless warnings
+ file { '/etc/openmpi/openmpi-mca-params.conf':
+ content => "#Managed by Grid'5000 environments
recipes\nbtl_base_warn_component_unused=0\nbtl = ^openib",
+ require => Package['openmpi-bin'];
+ }
+ }
+ }
+
+}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_prometheus_exporters.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_prometheus_exporters.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_prometheus_exporters.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_prometheus_exporters.pp
diff --git
a/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
new file mode 100644
index 0000000..f94394f
--- /dev/null
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_smartd.pp
@@ -0,0 +1,28 @@
+class env::big::install_smartd {
+
+ if "$::lsbdistcodename" != "stretch" {
+
+ package {
+ 'smartmontools':
+ ensure => installed;
+ }
+
+ file {
+ '/etc/systemd/system/smartd.service.d/':
+ ensure => directory,
+ require => Package['smartmontools'];
+ '/etc/systemd/system/smartd.service.d/override.conf':
+ ensure => present,
+ content => "[Service]\nExecStartPre=mkdir -p /dev/discs",
+ require => File['/etc/systemd/system/smartd.service.d/'];
+ }
+
+ file_line { 'smard.conf':
+ ensure => present,
+ require => Package['smartmontools'],
+ path => '/etc/smartd.conf',
+ line => 'DEVICESCAN -d nvme -d scsi -d ata -d sat -n standby -m root
-M exec /usr/share/smartmontools/smartd-runner',
+ match => '^DEVICESCAN .*';
+ }
+ }
+}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_snmp_tools.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_snmp_tools.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_snmp_tools.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/install_snmp_tools.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/big/prepare_kernel_module_build.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/prepare_kernel_module_build.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/big/prepare_kernel_module_build.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/big/prepare_kernel_module_build.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/common/apt_pinning.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/apt_pinning.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/common/apt_pinning.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/apt_pinning.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/common/g5kpackages.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/g5kpackages.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/common/g5kpackages.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/g5kpackages.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
similarity index 91%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
index 2f968be..36c421a 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/common/software_versions.pp
@@ -2,7 +2,7 @@
class env::common::software_versions {
$g5k_subnets = '1.4.2'
- $g5k_meta_packages = '0.7.45'
+ $g5k_meta_packages = '0.7.46'
$tgz_g5k = '2.0.17'
$g5k_checks = '0.11.2'
$sudo_g5k = '1.11'
@@ -11,6 +11,7 @@ class env::common::software_versions {
$libguestfs_backport_ppc64el = '1:1.40.2-7~bpog5k10+1'
$lmod = '6.6-0.3g5k1'
$g5k_jupyterlab = '0.6'
+ $rocm_version = '4.3.1'
case "$env::deb_arch" {
'amd64': {
@@ -23,7 +24,7 @@ class env::common::software_versions {
$dcgm_exporter = '2.0.0-rc.11'
}
'bullseye': {
- $nvidia_driver = '460.73.01'
+ $nvidia_driver = '460.91.03'
$nvidia_cuda = '11.2.2_460.32.03_linux'
$datacenter_gpu_manager = '1:2.1.4'
$dcgm_exporter = '2.3.0-1'
@@ -44,7 +45,7 @@ class env::common::software_versions {
}
'bullseye': {
$nvidia_driver = '418.197.02'
- $nvidia_user_driver = '460.73.01'
+ $nvidia_user_driver = '460.91.03'
$nvidia_cuda = '11.2.2_460.32.03_linux_ppc64le'
$datacenter_gpu_manager = '1:2.0.15'
$dcgm_exporter = '2.3.0-1'
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/commonpackages.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/commonpackages.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/commonpackages.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/commonpackages.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/init.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/init.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/init.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/init.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/min.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/min.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/min.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/add_image_version_in_etc.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/add_image_version_in_etc.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/add_image_version_in_etc.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/add_image_version_in_etc.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_kernel_and_blacklist_some_modules.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_kernel_and_blacklist_some_modules.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_kernel_and_blacklist_some_modules.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_kernel_and_blacklist_some_modules.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_network_and_install_drivers.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_network_and_install_drivers.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_network_and_install_drivers.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/configure_network_and_install_drivers.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/generate_etc_motd.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/generate_etc_motd.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/generate_etc_motd.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/generate_etc_motd.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_locales.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_locales.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_locales.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_locales.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_ssh.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_ssh.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_ssh.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_and_configure_ssh.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_cpu_microcode.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_cpu_microcode.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_cpu_microcode.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_cpu_microcode.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_metapackage.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_metapackage.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_metapackage.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_metapackage.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_tgz_g5k.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_tgz_g5k.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_tgz_g5k.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/install_tgz_g5k.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/initramfs.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/initramfs.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/initramfs.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/initramfs.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/modules.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/modules.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/modules.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/modules.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/remove_old.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/remove_old.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/remove_old.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/remove_old.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/setup_links.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/setup_links.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/setup_links.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/kernel/setup_links.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_root_password.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_root_password.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_root_password.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_root_password.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_timezone_to_europe_paris.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_timezone_to_europe_paris.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_timezone_to_europe_paris.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/min/set_timezone_to_europe_paris.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/nfs.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_iscsi.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_iscsi.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_iscsi.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_iscsi.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ldap.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ldap.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ldap.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ldap.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_module_path.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_module_path.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_module_path.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_module_path.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ntp.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ntp.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ntp.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/configure_ntp.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_nfs_requirements.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_nfs_requirements.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_nfs_requirements.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_nfs_requirements.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_osirim_requirements.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_osirim_requirements.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_osirim_requirements.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_osirim_requirements.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_storage5k_requirements.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_storage5k_requirements.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_storage5k_requirements.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/nfs/install_storage5k_requirements.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
similarity index 96%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
index 99d3611..1f71a7e 100644
--- a/grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
+++ b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std.pp
@@ -55,4 +55,6 @@ class env::std ( $variant = "big", $parent_parameters = {} ){
if $env::deb_arch == 'arm64' or $env::deb_arch == 'ppc64el' {
class { 'env::std::install_libguestfs_backport': }
}
+ # kameleon
+ class { 'env::std::install_kameleon': }
}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/add_g5kcode_to_path.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kdiskmanagerbackend.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kmanager.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_g5kpmemmanager.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
similarity index 91%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
index d73964d..67b9957 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_oar_client.pp
@@ -11,11 +11,11 @@ class env::std::configure_oar_client {
$oar_repos_release = "stretch-backports_beta"
}
'buster' : {
- $oar_version = "2.5.10~g5k8-1";
+ $oar_version = "2.5.10~g5k10-2";
$oar_repos = "g5k"
}
'bullseye' : {
- $oar_version = "2.5.10~g5k8-1";
+ $oar_version = "2.5.10~g5k10-2";
$oar_repos = "g5k"
}
default : {
@@ -168,13 +168,26 @@ class env::std::configure_oar_client {
mode => '0644',
content => $hiera['oar_authorized_keys'],
require => Package[$oar_packages];
- '/etc/default/oar-node':
+ '/etc/oar/oar-node-service':
ensure => present,
owner => root,
group => root,
- mode => '0644',
- source => 'puppet:///modules/env/std/oar/default_oar-node',
+ mode => '0755',
+ source => 'puppet:///modules/env/std/oar/oar-node-service',
require => Package[$oar_packages];
+ '/etc/systemd/system/oar-node.service.d':
+ ensure => directory,
+ owner => root,
+ group => root,
+ mode => '0755',
+ require => Package[$oar_packages];
+ '/etc/systemd/system/oar-node.service.d/override.conf':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => '0644',
+ source => 'puppet:///modules/env/std/oar/oar-node.service.override',
+ require => [Package[$oar_packages],
File['/etc/systemd/system/oar-node.service.d']];
}
augeas {
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/configure_rsyslog_remote.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/dell/params.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/disable_lvm_pvscan.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/g5k_generator.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
similarity index 68%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
index 871045f..000c9bb 100644
---
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5kchecks.pp
@@ -27,6 +27,18 @@ class env::std::install_g5kchecks {
source => "puppet:///modules/env/std/g5kchecks/g5k-checks.conf",
require => Package["g5k-checks"];
}
+
+ # Use refrepo specific branch for testing
+ if "${::lsbdistcodename}" == "bullseye" {
+ file_line { 'g5k-checks_conf':
+ ensure => present,
+ match => "^(#)?branch:*",
+ path => '/etc/g5k-checks.conf',
+ line => 'branch: debian11_std',
+ replace => true,
+ require => File['/etc/g5k-checks.conf'];
+ }
+ }
}
default: {
err "${operatingsystem} not supported."
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_g5ksubnets.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_hwraid_apt_source.pp
diff --git
a/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_kameleon.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_kameleon.pp
new file mode 100644
index 0000000..6e3be85
--- /dev/null
+++
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_kameleon.pp
@@ -0,0 +1,21 @@
+class env::std::install_kameleon {
+
+ case $operatingsystem {
+ 'Debian': {
+ case "${lsbdistcodename}" {
+ 'buster', 'bullseye': {
+ env::common::g5kpackages {
+ 'kameleon':
+ release => "${lsbdistcodename}";
+ }
+ }
+ default: {
+ err "${lsbdistcodename} not supported."
+ }
+ }
+ }
+ default: {
+ err "${operatingsystem} not supported."
+ }
+ }
+}
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_libguestfs_backport.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_megacli.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/install_sudog5k.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/ipmitool.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/std/nvidia_reset_mig.pp
diff --git a/grid5000/steps/data/setup/puppet/modules/env/manifests/xen.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen.pp
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/manifests/xen.pp
rename to image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/configure_xen.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/configure_xen.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/xen/configure_xen.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/configure_xen.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/install_grub.pp
b/image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/install_grub.pp
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/manifests/xen/install_grub.pp
rename to
image/grid5000/steps/data/setup/puppet/modules/env/manifests/xen/install_grub.pp
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/base/omnipath/scibian.key.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/base/omnipath/scibian.key.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/base/omnipath/scibian.key.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/base/omnipath/scibian.key.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/common/apt_pinning.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/common/apt_pinning.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/common/apt_pinning.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/common/apt_pinning.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/min/motd.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/min/motd.erb
similarity index 100%
rename from grid5000/steps/data/setup/puppet/modules/env/templates/min/motd.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/min/motd.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ldap/common-account.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ldap/common-account.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ldap/common-account.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ldap/common-account.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ntp/ntp.conf.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ntp/ntp.conf.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ntp/ntp.conf.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/nfs/ntp/ntp.conf.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/std/dell/linux.dell.com.key.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/std/dell/linux.dell.com.key.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/std/dell/linux.dell.com.key.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/std/dell/linux.dell.com.key.erb
diff --git
a/grid5000/steps/data/setup/puppet/modules/env/templates/std/hwraid/hwraid.le-vert.net.key.erb
b/image/grid5000/steps/data/setup/puppet/modules/env/templates/std/hwraid/hwraid.le-vert.net.key.erb
similarity index 100%
rename from
grid5000/steps/data/setup/puppet/modules/env/templates/std/hwraid/hwraid.le-vert.net.key.erb
rename to
image/grid5000/steps/data/setup/puppet/modules/env/templates/std/hwraid/hwraid.le-vert.net.key.erb
diff --git a/default/steps/disable_checkpoint.yaml
b/image/grid5000/steps/disable_checkpoint.yaml
similarity index 100%
rename from default/steps/disable_checkpoint.yaml
rename to image/grid5000/steps/disable_checkpoint.yaml
diff --git a/default/steps/enable_checkpoint.yaml
b/image/grid5000/steps/enable_checkpoint.yaml
similarity index 100%
rename from default/steps/enable_checkpoint.yaml
rename to image/grid5000/steps/enable_checkpoint.yaml
diff --git a/default/steps/env/bashrc b/image/grid5000/steps/env/bashrc
similarity index 100%
rename from default/steps/env/bashrc
rename to image/grid5000/steps/env/bashrc
diff --git a/grid5000/steps/env/functions.sh
b/image/grid5000/steps/env/functions.sh
similarity index 100%
rename from grid5000/steps/env/functions.sh
rename to image/grid5000/steps/env/functions.sh
diff --git a/grid5000/steps/export/debian/clean_dhcp_leases.yaml
b/image/grid5000/steps/export/debian/clean_dhcp_leases.yaml
similarity index 100%
rename from grid5000/steps/export/debian/clean_dhcp_leases.yaml
rename to image/grid5000/steps/export/debian/clean_dhcp_leases.yaml
diff --git a/grid5000/steps/export/do_qcow2_finish_works.yaml
b/image/grid5000/steps/export/do_qcow2_finish_works.yaml
similarity index 100%
rename from grid5000/steps/export/do_qcow2_finish_works.yaml
rename to image/grid5000/steps/export/do_qcow2_finish_works.yaml
diff --git a/grid5000/steps/export/export_g5k.yaml
b/image/grid5000/steps/export/export_g5k.yaml
similarity index 100%
rename from grid5000/steps/export/export_g5k.yaml
rename to image/grid5000/steps/export/export_g5k.yaml
diff --git a/default/steps/export/save_appliance_VM.yaml
b/image/grid5000/steps/export/save_appliance_VM.yaml
similarity index 85%
rename from default/steps/export/save_appliance_VM.yaml
rename to image/grid5000/steps/export/save_appliance_VM.yaml
index b064d02..e755113 100644
--- a/default/steps/export/save_appliance_VM.yaml
+++ b/image/grid5000/steps/export/save_appliance_VM.yaml
@@ -8,7 +8,6 @@
- zerofree: true
- save_appliance:
- - check_cmd_local: python2
- exec_local: |
if [ "$${zerofree}" = "true" ]; then
EXPORT_OPTS="--zerofree"
@@ -16,7 +15,7 @@
EXPORT_OPTS=""
fi
- exec_local: |
- python2 $${export_appliance_script} $${image_disk}.$${image_format} \
+ $${export_appliance_script} $${image_disk}.$${image_format} \
-o $${appliance_filename} \
--formats $${appliance_formats} \
--tar-compression-level $${appliance_tar_compression_level} \
diff --git a/default/steps/setup/debian/clean_system.yaml
b/image/grid5000/steps/setup/debian/clean_system.yaml
similarity index 100%
rename from default/steps/setup/debian/clean_system.yaml
rename to image/grid5000/steps/setup/debian/clean_system.yaml
diff --git a/grid5000/steps/setup/debian/clean_unnecessary_packages.yaml
b/image/grid5000/steps/setup/debian/clean_unnecessary_packages.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/clean_unnecessary_packages.yaml
rename to image/grid5000/steps/setup/debian/clean_unnecessary_packages.yaml
diff --git a/grid5000/steps/setup/debian/configure_apt_sources.yaml
b/image/grid5000/steps/setup/debian/configure_apt_sources.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/configure_apt_sources.yaml
rename to image/grid5000/steps/setup/debian/configure_apt_sources.yaml
diff --git a/grid5000/steps/setup/debian/configure_system.yaml
b/image/grid5000/steps/setup/debian/configure_system.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/configure_system.yaml
rename to image/grid5000/steps/setup/debian/configure_system.yaml
diff --git a/grid5000/steps/setup/debian/install_packages.yaml
b/image/grid5000/steps/setup/debian/install_packages.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/install_packages.yaml
rename to image/grid5000/steps/setup/debian/install_packages.yaml
diff --git a/default/steps/setup/debian/minimal_install.yaml
b/image/grid5000/steps/setup/debian/minimal_install.yaml
similarity index 100%
rename from default/steps/setup/debian/minimal_install.yaml
rename to image/grid5000/steps/setup/debian/minimal_install.yaml
diff --git a/grid5000/steps/setup/debian/run_orchestrator.yaml
b/image/grid5000/steps/setup/debian/run_orchestrator.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/run_orchestrator.yaml
rename to image/grid5000/steps/setup/debian/run_orchestrator.yaml
diff --git a/grid5000/steps/setup/debian/setup_orchestrator.yaml
b/image/grid5000/steps/setup/debian/setup_orchestrator.yaml
similarity index 100%
rename from grid5000/steps/setup/debian/setup_orchestrator.yaml
rename to image/grid5000/steps/setup/debian/setup_orchestrator.yaml
diff --git a/notes.txt b/image/notes.txt
similarity index 100%
rename from notes.txt
rename to image/notes.txt
diff --git a/debian11-taler.yaml b/image/taler-debian11.yaml
similarity index 72%
rename from debian11-taler.yaml
rename to image/taler-debian11.yaml
index fd84692..86e5a06 100644
--- a/debian11-taler.yaml
+++ b/image/taler-debian11.yaml
@@ -26,7 +26,7 @@ global:
## Environment image path and compression
# Note: unknown why this is not propagated to the ".dsc" file,
# So we must adjust it manually!
- g5k_tgz_file: http://public.lyon.grid5000.fr/~grothoff/debian10-taler.tar.zst
+ g5k_tgz_file: http://public.lyon.grid5000.fr/~bfhch01/debian10-taler.tar.zst
# g5k_tar_compression: "zstd"
## Environment postinstall path, compression, and script command
# g5k_postinst_path: server:///grid5000/postinstalls/g5k-postinstall.tgz
@@ -51,21 +51,32 @@ setup:
### The setup section is where customizations of the system take place.
## We can request steps from the extended recipe to be executed
- "@base"
- - taler_install
+ - taler_install:
+ - microstep1:
+ - exec_in: |
+ echo "deb https://deb.taler.net/apt/debian bullseye main" >
/etc/apt/sources.list.d/taler.list
+ wget -O - https://taler.net/taler-systems.gpg.key | apt-key add -
+ apt-get update
+ apt-upgrade
+ apt-get install -y nginx postgresql-13 taler-exchange taler-auditor
taler-merchant taler-exchange-offline taler-wallet-cli
+ apt-get install -y git zile
+
## We add steps required by our customization after or before @base. Use
## kameleon dryrun debian10_custom.yaml to see the resulting steps in the
build.
## The following is given as example only, replace with your steps.
- a_customization_step:
- microstep1:
- exec_in: |
- cd /root
- git clone git://git.taler.net/grid5k.git
- cp grid5k/gridboot.service /etc/systemd/system/gridboot.service
- chmod 640 /etc/systemd/system/gridboot.service
- cp grid5k/at-boot.sh /usr/local/bin/at-boot.sh
- chmod +x /usr/local/bin/at-boot.sh
- systemctl daemon-reload
- systemctl enable gridboot
+ cd /root
+ git clone git://git.taler.net/grid5k.git
+ cp grid5k/gridboot.service /etc/systemd/system/gridboot.service
+ chmod 640 /etc/systemd/system/gridboot.service
+ cp grid5k/at-boot.sh /usr/local/bin/at-boot.sh
+ chmod +x /usr/local/bin/at-boot.sh
+ systemctl daemon-reload
+ systemctl enable gridboot
+ systemctl stop nginx postgresql
+ systemctl disable nginx postgresql
- microstep1:
# This breakpoint will stop the build for inspecting the environment
@@ -75,3 +86,4 @@ export:
### The export section takes in charge the export of your customized
Grid'5000
## environment. No modification should be needed here.
- "@base"
+
diff --git a/steps/setup/taler_install.yaml b/steps/setup/taler_install.yaml
deleted file mode 100644
index 2e55b44..0000000
--- a/steps/setup/taler_install.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-- install_taler:
- - exec_in : |
- echo "deb https://deb.taler.net/apt/debian bullseye main" >
/etc/apt/sources.list.d/taler.list
- wget -O - https://taler.net/taler-systems.gpg.key | apt-key add -
- apt-get update
- apt-upgrade
- apt-get install -y nginx postgresql-13 taler-exchange taler-auditor
taler-merchant taler-exchange-offline taler-wallet-cli
- apt-get install -y git zile
diff --git a/steps/setup/taler_install.yaml~ b/steps/setup/taler_install.yaml~
deleted file mode 100644
index 75f58bd..0000000
--- a/steps/setup/taler_install.yaml~
+++ /dev/null
@@ -1,2 +0,0 @@
-- install_ffmpeg:
- - exec_in : apt-get update && apt-get install -y libsodium-dev
\ No newline at end of file
diff --git a/update.sh b/update.sh
index 2e8b0df..a9f8089 100644
--- a/update.sh
+++ b/update.sh
@@ -5,7 +5,18 @@ set -eu
touch /root/at-boot-worked
+# Temporarily checkout to the feature branch
+cd /root/grid5k && git checkout node-setup && git pull && cd
+
# Override default /etc/ with the one from this Git.
cp -r /root/grid5k/etc/* /etc
+HOST=$(hostname)
+
+case "$HOST" in
+ yeti-*.grenoble.*) echo "DB";;
+ graphique-*.nancy.*) echo "EXCH";;
+ chifflet-*.lille) echo "WALLET";;
+esac
+
exit 0
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-grid5k] branch master updated (74d0f38 -> 2554db5), gnunet, 2021/11/18
- [taler-grid5k] 12/141: fix sed command, gnunet, 2021/11/18
- [taler-grid5k] 06/141: add env variable template, gnunet, 2021/11/18
- [taler-grid5k] 08/141: make pq accesible, gnunet, 2021/11/18
- [taler-grid5k] 11/141: fix exch script, gnunet, 2021/11/18
- [taler-grid5k] 09/141: fix overwriting, gnunet, 2021/11/18
- [taler-grid5k] 01/141: add new version of image,
gnunet <=
- [taler-grid5k] 02/141: rename jobs, gnunet, 2021/11/18
- [taler-grid5k] 07/141: update db script, gnunet, 2021/11/18
- [taler-grid5k] 10/141: update bank config, add dns and bank scripts, gnunet, 2021/11/18
- [taler-grid5k] 04/141: add dummy scripts and some etc files, gnunet, 2021/11/18
- [taler-grid5k] 58/141: update wallet script, gnunet, 2021/11/18
- [taler-grid5k] 05/141: update init scripts, gnunet, 2021/11/18
- [taler-grid5k] 43/141: dynamically update grafana datasources, gnunet, 2021/11/18
- [taler-grid5k] 68/141: update clearing of dns, gnunet, 2021/11/18
- [taler-grid5k] 44/141: fix function name, gnunet, 2021/11/18
- [taler-grid5k] 52/141: fix dns entries for wallets, gnunet, 2021/11/18