From 9d378548cc86028c55baf17260d32d0055603b78 Mon Sep 17 00:00:00 2001 From: Carsten Koester Date: Wed, 25 May 2016 05:58:29 -0400 Subject: CSIT-111: Add Packer based framework to auto-generate disk images Change-Id: Ia18ea34a6288aec0f12f176f4cc264d0f215d1fd Signed-off-by: Carsten Koester --- resources/tools/virl/bin/start-testcase | 23 +- resources/tools/virl/bin/stop-testcase | 2 +- .../tools/virl/topologies/double-ring-nested.virl | 25 +- .../tools/virl/topologies/simple-ring-nested.virl | 297 --------------------- .../tools/virl/topologies/simple-ring-nested.yaml | 59 ---- resources/tools/virl/topologies/simple-ring.virl | 297 --------------------- resources/tools/virl/topologies/simple-ring.yaml | 59 ---- 7 files changed, 40 insertions(+), 722 deletions(-) delete mode 100644 resources/tools/virl/topologies/simple-ring-nested.virl delete mode 100644 resources/tools/virl/topologies/simple-ring-nested.yaml delete mode 100644 resources/tools/virl/topologies/simple-ring.virl delete mode 100644 resources/tools/virl/topologies/simple-ring.yaml (limited to 'resources/tools/virl') diff --git a/resources/tools/virl/bin/start-testcase b/resources/tools/virl/bin/start-testcase index b46f5add27..10028e6516 100755 --- a/resources/tools/virl/bin/start-testcase +++ b/resources/tools/virl/bin/start-testcase @@ -24,6 +24,7 @@ import tempfile import shutil import time import paramiko +import netifaces # # Helper function to indent a text string @@ -39,6 +40,14 @@ def indent(lines, amount, fillchar=' '): # functions. # def main(): + # + # Get our default interface IP address. This will become the default + # value for the "NFS Server IP" option. + # + gws = netifaces.gateways() + addrs = netifaces.ifaddresses(gws['default'][netifaces.AF_INET][1]) + default_addr = addrs[netifaces.AF_INET][0]['addr'] + # # Verify CLI parameters and try to download our VPP image into a temporary # file first @@ -53,11 +62,9 @@ def main(): parser.add_argument("-k", "--keep", help="Keep (do not delete) the " + "simulation in case of error", action='store_true') parser.add_argument("-v", "--verbosity", action="count", default=0) - # FIXME: THe default value for the following line should not be a hardcoded - # address. We should determine it dynamically (e.g. IP address of first - # interface or whichever interface is tied to the flat network) - parser.add_argument("-nip", "--nfs-server-ip", help="NFS server (our) IP", - default="10.30.51.28") + parser.add_argument("-nip", "--nfs-server-ip", help="NFS server (our) IP " + + "default is derived from routing table: " + + "{}".format(default_addr), default=default_addr) parser.add_argument("-ns", "--nfs-scratch-directory", help="Server location for NFS scratch diretory", default="/nfs/scratch") @@ -66,7 +73,7 @@ def main(): "directory", default="/nfs/common") parser.add_argument("-wc", "--wait-count", help="number of intervals to wait for simulation to " + - "be ready", type=int, default=12) + "be ready", type=int, default=24) parser.add_argument("-wt", "--wait-time", help="length of a single interval to wait for " + "simulation to be ready", type=int, default=5) @@ -83,6 +90,9 @@ def main(): default="/home/jenkins-in/.ssh/id_rsa_virl") parser.add_argument("-spu", "--ssh-pubkey", help="SSH public keyfile", default="/home/jenkins-in/.ssh/id_rsa_virl.pub") + parser.add_argument("-r", "--release", help="VM disk image/release " + + "(ex. \"csit-ubuntu-14.04.4_2016-05-25_1.0\")", + default="csit-ubuntu-14.04.4_2016-05-25_1.0") parser.add_argument("--topology-directory", help="Topology directory", default="/home/jenkins-in/testcase-infra/topologies") @@ -134,6 +144,7 @@ def main(): args.nfs_server_ip+":"+args.nfs_scratch_directory) line = line.replace("$$NFS_SERVER_COMMON$$", \ args.nfs_server_ip+":"+args.nfs_common_directory) + line = line.replace("$$VM_IMAGE$$", "server-"+args.release) new_file.write(line) os.close(temp_handle) diff --git a/resources/tools/virl/bin/stop-testcase b/resources/tools/virl/bin/stop-testcase index dbbb53e30f..1175fcf2b5 100755 --- a/resources/tools/virl/bin/stop-testcase +++ b/resources/tools/virl/bin/stop-testcase @@ -21,4 +21,4 @@ NFS_SCRATCH_SERVERDIR="/nfs/scratch" # Our own (NFS s TESTCASE=$1 virl_std_client -u $VIRL_USER -p $VIRL_PASSWORD simengine-stop --session-id $TESTCASE -rm -fr ${NFS_SCRATCH_SERVERDIR}/${TESTCASE} +sudo rm -fr ${NFS_SCRATCH_SERVERDIR}/${TESTCASE} diff --git a/resources/tools/virl/topologies/double-ring-nested.virl b/resources/tools/virl/topologies/double-ring-nested.virl index 9018cb529f..4dd5885281 100644 --- a/resources/tools/virl/topologies/double-ring-nested.virl +++ b/resources/tools/virl/topologies/double-ring-nested.virl @@ -3,7 +3,7 @@ flat - + #cloud-config bootcmd: @@ -91,6 +91,7 @@ write_files: mount -t nfs "${nfs_server_common}" /mnt/common mkdir /scratch/$(hostname) + cp /VERSION /scratch/$(hostname)/ exit 0 @@ -103,7 +104,7 @@ write_files: - + #cloud-config bootcmd: @@ -191,7 +192,16 @@ write_files: 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 @@ -201,7 +211,7 @@ write_files: - + #cloud-config bootcmd: @@ -289,7 +299,16 @@ write_files: 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 diff --git a/resources/tools/virl/topologies/simple-ring-nested.virl b/resources/tools/virl/topologies/simple-ring-nested.virl deleted file mode 100644 index b2768f2205..0000000000 --- a/resources/tools/virl/topologies/simple-ring-nested.virl +++ /dev/null @@ -1,297 +0,0 @@ - - - - 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: -- start ttyS0 -- 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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - 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: -- start ttyS0 -- 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 -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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - exit 0 - - - - - - - - #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: -- start ttyS0 -- 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 -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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - exit 0 - - - - - - - - - diff --git a/resources/tools/virl/topologies/simple-ring-nested.yaml b/resources/tools/virl/topologies/simple-ring-nested.yaml deleted file mode 100644 index 094adf3988..0000000000 --- a/resources/tools/virl/topologies/simple-ring-nested.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -metadata: - version: 0.1 - schema: - - resources/topology_schemas/3_node_topology.sch.yaml - - resources/topology_schemas/topology.sch.yaml - tags: [hw, 3-node] - -nodes: - TG: - type: TG - host: "{topology[tg1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[tg1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link1 - driver: virtio-pci - port5: - mac_address: "{topology[tg1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link2 - driver: virtio-pci - DUT1: - type: DUT - host: "{topology[sut1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[sut1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link3 - port1: - mac_address: "{topology[sut1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link1 - DUT2: - type: DUT - host: "{topology[sut2][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port1: - mac_address: "{topology[sut2][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link2 - port3: - mac_address: "{topology[sut2][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link3 diff --git a/resources/tools/virl/topologies/simple-ring.virl b/resources/tools/virl/topologies/simple-ring.virl deleted file mode 100644 index 82973aa745..0000000000 --- a/resources/tools/virl/topologies/simple-ring.virl +++ /dev/null @@ -1,297 +0,0 @@ - - - - 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: -- start ttyS0 -- 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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - 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: -- start ttyS0 -- 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 -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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - exit 0 - - - - - - - - #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: -- start ttyS0 -- 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 -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/python - import pickle - print pickle.loads(open('/var/lib/cloud/instance/obj.pkl').read()).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) - - exit 0 - - - - - - - - - diff --git a/resources/tools/virl/topologies/simple-ring.yaml b/resources/tools/virl/topologies/simple-ring.yaml deleted file mode 100644 index 094adf3988..0000000000 --- a/resources/tools/virl/topologies/simple-ring.yaml +++ /dev/null @@ -1,59 +0,0 @@ ---- -metadata: - version: 0.1 - schema: - - resources/topology_schemas/3_node_topology.sch.yaml - - resources/topology_schemas/topology.sch.yaml - tags: [hw, 3-node] - -nodes: - TG: - type: TG - host: "{topology[tg1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[tg1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link1 - driver: virtio-pci - port5: - mac_address: "{topology[tg1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link2 - driver: virtio-pci - DUT1: - type: DUT - host: "{topology[sut1][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port3: - mac_address: "{topology[sut1][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link3 - port1: - mac_address: "{topology[sut1][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link1 - DUT2: - type: DUT - host: "{topology[sut2][nic-management][ip-addr]}" - port: 22 - username: cisco - priv_key: | -{priv_key} - interfaces: - port1: - mac_address: "{topology[sut2][nic-0][hw-addr]}" - pci_address: "0000:00:04.0" - link: link2 - port3: - mac_address: "{topology[sut2][nic-1][hw-addr]}" - pci_address: "0000:00:05.0" - link: link3 -- cgit 1.2.3-korg