cloud-hypervisor/test_data/cloud-init/ubuntu/user-data
Rob Bradford f17f4079b4 test_data: Use bash TCP support instead of netcat for boot check
This means that the guest image does not need to have netcat installed
making it easier to use unmodified images.

See https://www.gnu.org/software/bash/manual/html_node/Redirections.html

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-12 23:04:42 +01:00

77 lines
2.6 KiB
Plaintext

#cloud-config
users:
- name: cloud
passwd: $6$7125787751a8d18a$sHwGySomUA1PawiNFWVCKYQN.Ec.Wzz0JtPPL1MvzFrkwmop2dq7.4CYf03A5oemPQ4pOFCCrtCelvFBEle/K.
sudo: ALL=(ALL) NOPASSWD:ALL
lock_passwd: False
inactive: False
shell: /bin/bash
ssh_pwauth: True
runcmd:
- [ systemctl, daemon-reload]
- [ systemctl, enable, notify-booted.service]
- [ systemctl, start, --no-block, notify-booted.service ]
write_files:
-
path: /etc/systemd/system/vfio.service
permissions: 0644
content: |
[Unit]
Description=VFIO test systemd service
[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/cloud-hypervisor-vfio.sh
[Install]
WantedBy=multi-user.target
-
path: /usr/bin/cloud-hypervisor-vfio.sh
permissions: 0755
content: |
#!/bin/bash
mount /dev/vdc /mnt
bash -c "echo 1af4 1042 > /sys/bus/pci/drivers/vfio-pci/new_id"
bash -c "echo 0000:00:05.0 > /sys/bus/pci/devices/0000\:00\:05.0/driver/unbind"
bash -c "echo 0000:00:05.0 > /sys/bus/pci/drivers/vfio-pci/bind"
bash -c "echo 1af4 1041 > /sys/bus/pci/drivers/vfio-pci/new_id"
bash -c "echo 0000:00:07.0 > /sys/bus/pci/devices/0000\:00\:07.0/driver/unbind"
bash -c "echo 0000:00:07.0 > /sys/bus/pci/drivers/vfio-pci/bind"
bash -c "echo 0000:00:08.0 > /sys/bus/pci/devices/0000\:00\:08.0/driver/unbind"
bash -c "echo 0000:00:08.0 > /sys/bus/pci/drivers/vfio-pci/bind"
# 1G ram requires 512 pages
echo 512 | sudo tee /proc/sys/vm/nr_hugepages
sudo chmod a+rwX /dev/hugepages
/mnt/cloud-hypervisor --kernel /mnt/vmlinux --cmdline "console=hvc0 reboot=k panic=1 nomodules root=/dev/vda1 VFIOTAG" --disk path=/mnt/focal-server-cloudimg-amd64-custom-20210609-0.raw path=/mnt/cloudinit.img --cpus boot=1 --memory size=512M,hotplug_size=1G,hugepages=on --device path=/sys/bus/pci/devices/0000:00:05.0/ path=/sys/bus/pci/devices/0000:00:07.0/ path=/sys/bus/pci/devices/0000:00:08.0/ --api-socket /tmp/ch_api.sock
-
path: /etc/systemd/system/notify-booted.service
permissions: 0644
content: |
[Unit]
Description=Notify the tcp listener on the host that the guest is booted
After=sshd.service
[Service]
Type=simple
ExecStart=/usr/bin/cloud-hypervisor-notify-booted.sh
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
-
path: /usr/bin/cloud-hypervisor-notify-booted.sh
permissions: 0755
content: |
#!/bin/bash
set -e
echo -n "@DEFAULT_TCP_LISTENER_MESSAGE" > /dev/tcp/@HOST_IP/@TCP_LISTENER_PORT