flat #cloud-config bootcmd: - ln -s -t /etc/rc.d /etc/rc.local hostname: tg1 manage_etc_hosts: true nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ nfs_server_common: $$NFS_SERVER_COMMON$$ runcmd: - systemctl start getty@ttyS0.service - systemctl start rc-local - touch /tmp/before-sed - sed -i 's/^\s*PasswordAuthentication\s\+no/PasswordAuthentication yes/' /etc/ssh/sshd_config - echo "UseDNS no" >> /etc/ssh/sshd_config - service ssh restart - service sshd restart users: - default - gecos: User configured by VIRL Configuration Engine 0.21.4 lock-passwd: false name: cisco plain-text-passwd: cisco shell: /bin/bash ssh-authorized-keys: - VIRL-USER-SSH-PUBLIC-KEY - VIRL-USER-SSH-PUBLIC-KEY sudo: ALL=(ALL) NOPASSWD:ALL write_files: - path: /etc/init/ttyS0.conf owner: root:root content: | # ttyS0 - getty # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102 permissions: '0644' - path: /etc/systemd/system/dhclient@.service content: | [Unit] Description=Run dhclient on %i interface After=network.target [Service] Type=oneshot ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease RemainAfterExit=yes owner: root:root permissions: '0644' - path: /usr/local/sbin/cloud-instance-name content: | #!/usr/bin/python3.5 import pickle print(pickle.loads(open('/var/lib/cloud/instance/obj.pkl', 'rb').read(), encoding="ACSII").metadata['name']) owner: root:root permissions: '0755' - path: /etc/rc.local owner: root:root permissions: '0755' content: |- #!/bin/sh grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') echo My instance name is $instance_name MAXCOUNT=12 RETRY=5 mkdir -p /scratch mkdir -p /mnt/common echo "Mounting NFS directories" count=0 while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch do sleep 5 count=$[$count+1] done mount -t nfs "${nfs_server_common}" /mnt/common mkdir /scratch/$(hostname) cp /VERSION /scratch/$(hostname)/ exit 0 false #cloud-config bootcmd: - ln -s -t /etc/rc.d /etc/rc.local hostname: sut1 manage_etc_hosts: true nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ nfs_server_common: $$NFS_SERVER_COMMON$$ runcmd: - systemctl start getty@ttyS0.service - systemctl start rc-local - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config - echo "UseDNS no" >> /etc/ssh/sshd_config - service ssh restart - service sshd restart - sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf - sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf - rm -f /etc/sysctl.d/80-vpp.conf users: - default - gecos: User configured by VIRL Configuration Engine 0.21.4 lock-passwd: false name: cisco plain-text-passwd: cisco shell: /bin/bash ssh-authorized-keys: - VIRL-USER-SSH-PUBLIC-KEY - VIRL-USER-SSH-PUBLIC-KEY sudo: ALL=(ALL) NOPASSWD:ALL write_files: - path: /etc/init/ttyS0.conf owner: root:root content: | # ttyS0 - getty # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102 permissions: '0644' - path: /etc/systemd/system/dhclient@.service content: | [Unit] Description=Run dhclient on %i interface After=network.target [Service] Type=oneshot ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease RemainAfterExit=yes owner: root:root permissions: '0644' - path: /usr/local/sbin/cloud-instance-name content: | #!/usr/bin/python3.5 import pickle print(pickle.loads(open('/var/lib/cloud/instance/obj.pkl', 'rb').read(), encoding="ACSII").metadata['name']) owner: root:root permissions: '0755' - path: /etc/rc.local owner: root:root permissions: '0755' content: |- #!/bin/sh grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') echo My instance name is $instance_name MAXCOUNT=12 RETRY=5 mkdir -p /scratch mkdir -p /mnt/common echo "Mounting NFS directories" count=0 while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch do sleep 5 count=$[$count+1] done mount -t nfs "${nfs_server_common}" /mnt/common # Overwrite nested VM image with latest as per NFS if [ -f /mnt/common/nested-vm-current.img ] then rm -f /var/lib/vm/vhost-nested.img cp /mnt/common/nested-vm-current.img /var/lib/vm/vhost-nested.img fi mkdir /scratch/$(hostname) cp /VERSION /scratch/$(hostname)/ cat /var/lib/vm/vhost-nested.img | strings | grep NESTED_VERSION= > /scratch/$(hostname)/NESTED_VERSION exit 0 - path: /etc/sysctl.d/90-csit.conf owner: root:root content: | # Number of 2MB hugepages desired vm.nr_hugepages=1024 # Must be greater than or equal to (2 * vm.nr_hugepages). vm.max_map_count=20000 # All groups allowed to access hugepages vm.hugetlb_shm_group=0 # Shared Memory Max must be greator or equal to the total size of hugepages. # For 2MB pages, TotalHugepageSize = vm.nr_hugepages * 2 * 1024 * 1024 # If the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax) # is greater than the calculated TotalHugepageSize then set this parameter # to current shmmax value. kernel.shmmax=2147483648 #cloud-config bootcmd: - ln -s -t /etc/rc.d /etc/rc.local hostname: sut2 manage_etc_hosts: true nfs_server_scratch: $$NFS_SERVER_SCRATCH$$ nfs_server_common: $$NFS_SERVER_COMMON$$ runcmd: - systemctl start getty@ttyS0.service - systemctl start rc-local - sed -i '/^\s*PasswordAuthentication\s\+no/d' /etc/ssh/sshd_config - echo "UseDNS no" >> /etc/ssh/sshd_config - service ssh restart - service sshd restart - sed -i 's/no-pci//' /opt/cisco/vpe/etc/qn.conf - sed -i 's/1024/1024 decimal-interface-names/g' /opt/cisco/vpe/etc/qn.conf - rm -f /etc/sysctl.d/80-vpp.conf users: - default - gecos: User configured by VIRL Configuration Engine 0.21.4 lock-passwd: false name: cisco plain-text-passwd: cisco shell: /bin/bash ssh-authorized-keys: - VIRL-USER-SSH-PUBLIC-KEY - VIRL-USER-SSH-PUBLIC-KEY sudo: ALL=(ALL) NOPASSWD:ALL write_files: - path: /etc/init/ttyS0.conf owner: root:root content: | # ttyS0 - getty # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc or RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102 permissions: '0644' - path: /etc/systemd/system/dhclient@.service content: | [Unit] Description=Run dhclient on %i interface After=network.target [Service] Type=oneshot ExecStart=/sbin/dhclient %i -pf /var/run/dhclient.%i.pid -lf /var/lib/dhclient/dhclient.%i.lease RemainAfterExit=yes owner: root:root permissions: '0644' - path: /usr/local/sbin/cloud-instance-name content: | #!/usr/bin/python3.5 import pickle print(pickle.loads(open('/var/lib/cloud/instance/obj.pkl', 'rb').read(), encoding="ACSII").metadata['name']) owner: root:root permissions: '0755' - path: /etc/rc.local owner: root:root permissions: '0755' content: |- #!/bin/sh grep -q nfs_server_scratch /var/lib/cloud/instance/user-data.txt || exit 1 grep -q nfs_server_common /var/lib/cloud/instance/user-data.txt || exit 1 nfs_server_scratch=$(grep -E '^nfs_server_scratch:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') nfs_server_common=$(grep -E '^nfs_server_common:' /var/lib/cloud/instance/user-data.txt | awk '{ print $2 }') instance_name=$(/usr/local/sbin/cloud-instance-name | cut -f 3 -d '<' | cut -f 1 -d '>') echo My instance name is $instance_name MAXCOUNT=12 RETRY=5 mkdir -p /scratch mkdir -p /mnt/common echo "Mounting NFS directories" count=0 while [ $count -lt $MAXCOUNT ] && ! mount -t nfs "${nfs_server_scratch}/${instance_name}" /scratch do sleep 5 count=$[$count+1] done mount -t nfs "${nfs_server_common}" /mnt/common # Overwrite nested VM image with latest as per NFS if [ -f /mnt/common/nested-vm-current.img ] then rm -f /var/lib/vm/vhost-nested.img cp /mnt/common/nested-vm-current.img /var/lib/vm/vhost-nested.img fi mkdir /scratch/$(hostname) cp /VERSION /scratch/$(hostname)/ cat /var/lib/vm/vhost-nested.img | strings | grep NESTED_VERSION= > /scratch/$(hostname)/NESTED_VERSION exit 0 - path: /etc/sysctl.d/90-csit.conf owner: root:root content: | # Number of 2MB hugepages desired vm.nr_hugepages=1024 # Must be greater than or equal to (2 * vm.nr_hugepages). vm.max_map_count=20000 # All groups allowed to access hugepages vm.hugetlb_shm_group=0 # Shared Memory Max must be greator or equal to the total size of hugepages. # For 2MB pages, TotalHugepageSize = vm.nr_hugepages * 2 * 1024 * 1024 # If the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax) # is greater than the calculated TotalHugepageSize then set this parameter # to current shmmax value. kernel.shmmax=2147483648