CSIT-1437 Create portable host-setup document 21/17721/5
authorPeter Mikus <pmikus@cisco.com>
Wed, 20 Feb 2019 12:19:07 +0000 (12:19 +0000)
committerPeter Mikus <pmikus@cisco.com>
Fri, 22 Feb 2019 16:05:38 +0000 (16:05 +0000)
- Ansible simplified and optimalized
- Porting global variables into single file
- Rework the README.md
- Tested outside LF environemnt

Change-Id: I124cffa5c4510edf365e8b558da0c8c498f55d50
Signed-off-by: Peter Mikus <pmikus@cisco.com>
77 files changed:
README.md
resources/libraries/bash/function/setup.sh
resources/tools/testbed-setup/README.md [deleted file]
resources/tools/testbed-setup/README.rst [new file with mode: 0644]
resources/tools/testbed-setup/ansible/group_vars/all.yaml [deleted file]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml [new file with mode: 0644]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.16.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.17.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.18.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.20.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.21.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.22.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.24.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.25.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.26.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.28.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.29.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.30.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.36.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.37.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.44.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.45.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.46.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.47.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.48.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.49.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.50.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.51.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.52.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.53.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.54.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.55.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.56.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.57.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.58.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.59.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml [moved from resources/tools/testbed-setup/ansible/host_vars/10.30.51.60.yaml with 100% similarity]
resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts [moved from resources/tools/testbed-setup/ansible/production with 87% similarity]
resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml [new file with mode: 0644]
resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml [new file with mode: 0644]
resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml
resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml
resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu.yaml [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml [deleted file]
resources/tools/testbed-setup/ansible/roles/tg_sut/defaults/main.yaml [deleted file]
resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config
resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt
resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml
resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.j2 [deleted file]
resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.http [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.https [new file with mode: 0644]
resources/tools/testbed-setup/ansible/roles/virl/files/interfaces_virl [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/nova_os_ip.patch [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/requirements.txt [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt.b64 [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt/etc/salt/minion.d/testlocal.conf [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server.sls [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/configure.sls [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/files/exports [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/install.sls [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_jenkins-in [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_virl [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/ttyS0 [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl.pub [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/virl/ifup [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/virl/ssh_environment [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/files/virl/virl-bootstrap-wrapper [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/tasks/02-virl-bootstrap.yaml [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/tasks/03-virl-post-install.yaml [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/tasks/04-disk-image.yaml [deleted file]
resources/tools/testbed-setup/ansible/roles/virl/tasks/main.yaml [deleted file]
resources/tools/testbed-setup/ansible/site.yaml
resources/tools/testbed-setup/ansible/virl.yaml [deleted file]

index f878980..27ae7cb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -179,7 +179,7 @@ describing local VPP Device functional testing.
 
 ### Physical Testbed
 
 
 ### Physical Testbed
 
-[Physical testbed preparation](resources/tools/testbed-setup/README.md)
+[Physical testbed preparation](resources/tools/testbed-setup/README.rst)
 documentation is describing PXE and Ansible setup process. All the software
 requirements for running Performance Teste are part of Ansible playbooks.
 
 documentation is describing PXE and Ansible setup process. All the software
 requirements for running Performance Teste are part of Ansible playbooks.
 
index 0b863aa..e481c53 100644 (file)
@@ -27,7 +27,7 @@ function ansible_host () {
     pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!"
     ssh-copy-id -o StrictHostKeyChecking=no testuser@"${HOST}"
     ansible-playbook --vault-id vault_pass --extra-vars '@vault.yml' \
     pushd "${TOOLS_DIR}"/testbed-setup/ansible || die "Pushd failed!"
     ssh-copy-id -o StrictHostKeyChecking=no testuser@"${HOST}"
     ansible-playbook --vault-id vault_pass --extra-vars '@vault.yml' \
-        --inventory production site.yaml --limit ${HOST} || {
+        --inventory lf_inventory site.yaml --limit ${HOST} || {
         die "Failed to ansible host!"
     }
     popd || die "Popd failed!"
         die "Failed to ansible host!"
     }
     popd || die "Popd failed!"
diff --git a/resources/tools/testbed-setup/README.md b/resources/tools/testbed-setup/README.md
deleted file mode 100644 (file)
index b4f376b..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# Testbed Setup
-
-## Introduction
-
-This directoctory contains the *high-level* process to set up a hardware
-machine as a CSIT testbed, either for use as a physical testbed host or
-as a VIRL server.
-
-Code in this directory is NOT executed as part of a regular CSIT test case
-but is stored here merely for archiving and documentation purposes.
-
-
-## Setting up a hardware host
-
-Documentation below is just bullet points and assumes and understanding
-of PXE boot and ansible.
-
-This process is specific for LF lab, and both examples given here as
-well as associated code, are based on the assumption that they are run
-in LF environment. If run elsewhere, changes will be required to IP addresses
-and other parameters.
-
-The process below assumes that there is a host used for boostrapping (referred
-to as "PXE boostrap server" below), and that the directory containig this README
-is available on the PXE bootstrap server in ~testuser/host-setup.
-
-### Prepare the PXE bootstrap server when there is no http server AMD64
-
-  - `sudo apt-get install isc-dhcp-server tftpd-hpa nginx-light ansible`
-  - edit dhcpd.conf and place it to /etc/dhcp/
-  - `sudo cp dhcpd.cfg /etc/dhcp/`
-  - `sudo service isc-dhcp-server restart`
-  - `cd ~testuser/host-setup`
-  - `sudo mkdir /mnt/cdrom`
-  - Ubuntu Bionic
-    - `wget 'http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04-server-amd64.iso'`
-    - `sudo mount -o loop ubuntu-18.04-server-amd64.iso /mnt/cdrom/`
-  - `sudo cp -r /mnt/cdrom/install/netboot/* /var/lib/tftpboot/`
-  - figure out where nginx will look for files on the filesystem when
-    responding to HTTP requests. The configuration is in one of the
-    files in /etc/nginx/conf.d/, /etc/nginx/sites-enabled/ or in
-    /etc/nginx/nginx.conf under section server/root. Save the path to WWW_ROOT
-  - `sudo mkdir -p ${WWW_ROOT}/download/ubuntu`
-  - `sudo cp -r /mnt/cdrom/* ${WWW_ROOT}/download/ubuntu/`
-  - `sudo cp /mnt/cdrom/ubuntu/isolinux/ldlinux.c32 /var/lib/tftpboot`
-  - `sudo cp /mnt/cdrom/ubuntu/isolinux/libcom32.c32 /var/lib/tftpboot`
-  - `sudo cp /mnt/cdrom/ubuntu/isolinux/libutil.c32 /var/lib/tftpboot`
-  - `sudo cp /mnt/cdrom/ubuntu/isolinux/chain.c32 /var/lib/tftpboot`
-  - `sudo umount /mnt/cdrom`
-  - edit ks.cfg and replace IP address with that of your PXE bootstrap server and subdir in /var/www (in this case /download)
-  - `sudo cp ks.cfg ${WWW_ROOT}/download/ks.cfg`
-  - edit boot-screens_txt.cfg and replace IP address with that of your PXE bootstrap server and subdir in /var/www (in this case /download)
-  - `sudo cp boot-screens_txt.cfg /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg`
-  - `sudo cp syslinux.cfg /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/syslinux.cfg`
-
-### New testbed host - manual preparation
-
-- set CIMC address
-- set CIMC username, password and hostname
-- set IPMI address
-- set IPMI username, password and hostname
-
-### Bootstrap the host
-
-Convenient way to re-stage host via script:
-
-  `sudo ./bootstrap_setup_testbed.sh <linux_ip> <mgmt_ip> <username> <pass>`
-
-Optional: CIMC - From PXE boostrap server
-
-  - Initialize args.ip: Power-Off, reset BIOS defaults, Enable console redir, get LOM MAC addr
-  - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -i`
-  - Adjust BIOS settings
-  - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -s '<biosVfIntelHyperThreadingTech rn="Intel-HyperThreading-Tech" vpIntelHyperThreadingTech="disabled" />' -s '<biosVfEnhancedIntelSpeedStepTech rn="Enhanced-Intel-SpeedStep-Tech" vpEnhancedIntelSpeedStepTech="disabled" />' -s '<biosVfIntelTurboBoostTech rn="Intel-Turbo-Boost-Tech" vpIntelTurboBoostTech="disabled" />'`
-  - Add MAC address to DHCP (/etc/dhcp/dhcpd.conf)
-  - If RAID is not created in CIMC. Create RAID array. Reboot.
-      - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d --wipe`
-      - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -r -rl 1 -rs <disk size> -rd '[1,2]'`
-        Alternatively, create the RAID array manually.
-  - Reboot server with boot from PXE (restart immediately)
-  - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -pxe`
-  - Set the next boot from HDD (without restart) Execute while Ubuntu install is running.
-  - `./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -hdd`
-
-Optional: IPMI - From PXE boostrap server
-
-    - Get MAC address of LAN0
-    - `ipmitool -U ADMIN -H $HOST_ADDRESS raw 0x30 0x21 | tail -c 18`
-    - Add MAC address to DHCP (/etc/dhcp/dhcpd.conf)
-    - Reboot into PXE for next boot only
-    - `ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN chassis bootdev pxe`
-    - `ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN power reset`
-    - For live watching SOL (Serial-over-LAN console)
-    - `ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN sol activate`
-    - `ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN sol deactivate`
-
-When installation is finished:
-
-  - Copy ssh keys for no pass access: `ssh-copy-id 10.30.51.x`
-  - Clone CSIT actual repo: `git clone https://gerrit.fd.io/r/csit`
-  - Go to ansible directory: `cd csit/resources/tools/testbed-setup/ansible`
-  - Edit production file and uncomment servers that are supposed to be
-    installed.
-  - Run ansible on selected hosts:
-    `ansible-playbook --vault-id vault_pass --extra-vars '@vault.yml' --inventory production site.yaml`
-
-For non-VIRL hosts, stop here.
-
-### VIRL installation
-
-After the host has rebooted:
-
-  - `ansible-playbook 02-virl-bootstrap.yaml`
-  - ssh to host
-      - `sudo -s`
-      - `cd virl-bootstrap`
-      - `./virl-bootstrap-wrapper`
-
-        This command will error out when run the first time, as the VIRL host is not yet licensed.
-
-        Make sure we contact all three VIRL SALT masters:
-
-      - `for a in 1 2 4 ; do sudo salt-call --master us-${a}.virl.info test.ping ; done`
-
-      - Contact the VIRL team, provide the hostname and domain (linuxfoundation.org), and ask them
-        to accept the key
-
-      - After the key has been accepted, verify that connectivity with the SALT master is now OK:
-
-        `for a in 1 2 4 ; do sudo salt-call --master us-${a}.virl.info test.ping ; done`
-
-      - `./virl-bootstrap-wrapper`
-      - `reboot`
-
-After reboot, ssh to host again
-  - as VIRL user, NOT AS ROOT:
-     - `vinstall all`
-     - `sudo reboot`
-
-After reboot, ssh to host again
-  - as VIRL user:
-      - `sudo salt-call state.sls virl.routervms.all`
-      - `sudo salt-call state.sls virl.vmm.vmmall`
-
-Back on the PXE bootstrap server:
-
-  - obtain the current server disk image and place it into
-    `files/virl-server-image/` as `server.qcow2`
-
-    TO-DO: Need to find a place to store this image
-
-  - `ansible-playbook 03-virl-post-install.yaml`
-
-  - Run the following command ONLY ONCE. Otherwise it will create
-    duplicates of the VIRL disk image:
-
-    `ansible-playbook 04-disk-image.yaml`
-
-The VIRL host should now be operational. Test, and when ready, create a
-~jenkins-in/status file with the appropriate status.
diff --git a/resources/tools/testbed-setup/README.rst b/resources/tools/testbed-setup/README.rst
new file mode 100644 (file)
index 0000000..738dffa
--- /dev/null
@@ -0,0 +1,246 @@
+Testbed Setup
+=============
+
+Introduction
+------------
+
+This directory contains the *high-level* process to set up a hardware machine
+as a CSIT testbed, either for use as a physical performance testbed host or as
+a vpp_device host.
+
+Code in this directory is NOT executed as part of a regular CSIT test case
+but is stored here for ad-hoc installation of HW, archiving and documentation
+purposes.
+
+Setting up a hardware host
+--------------------------
+
+Documentation below is step by step tutorial and assumes an understanding of PXE
+boot and Ansible and managing physical hardware via CIMC or IPMI.
+
+This process is not specific for LF lab, but associated files and code, is based
+on the assumption that it runs in LF environment. If run elsewhere, changes
+will be required in following files:
+
+#. Inventory directory: `ansible/inventories/sample_inventory/`
+#. Inventory files: `ansible/inventories/sample_inventory/hosts`
+#. Kickseed file: `pxe/ks.cfg`
+#. DHCPD file: `pxe/dhcpd.conf`
+#. Bootscreen file: `boot-screens_txt.cfg`
+
+The process below assumes that there is a host used for bootstrapping (referred
+to as "PXE bootstrap server" below).
+
+Prepare the PXE bootstrap server when there is no http server AMD64
+```````````````````````````````````````````````````````````````````
+
+#. Clone the csit repo:
+
+   .. code-block:: bash
+
+      git clone https://gerrit.fd.io/r/csit
+      cd csit/resources/tools/testbed-setup/pxe
+
+#. Setup prerequisities (isc-dhcp-server tftpd-hpa nginx-light ansible):
+
+   .. code-block:: bash
+
+      sudo apt-get install isc-dhcp-server tftpd-hpa nginx-light ansible
+
+#. Edit dhcpd.cfg:
+
+   .. code-block:: bash
+
+      sudo cp dhcpd.cfg /etc/dhcp/
+      sudo service isc-dhcp-server restart
+      sudo mkdir /mnt/cdrom
+
+#. Download Ubuntu 18.04 LTS - X86_64:
+
+   .. code-block:: bash
+
+      wget http://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ubuntu-18.04-server-amd64.iso
+      sudo mount -o loop ubuntu-18.04-server-amd64.iso /mnt/cdrom/
+      sudo cp -r /mnt/cdrom/install/netboot/* /var/lib/tftpboot/
+
+      # Figure out root folder for NGINX webserver. The configuration is in one
+      # of the files in /etc/nginx/conf.d/, /etc/nginx/sites-enabled/ or in
+      # /etc/nginx/nginx.conf under section server/root. Save the path to
+      # variable WWW_ROOT.
+      sudo mkdir -p ${WWW_ROOT}/download/ubuntu
+      sudo cp -r /mnt/cdrom/* ${WWW_ROOT}/download/ubuntu/
+      sudo cp /mnt/cdrom/ubuntu/isolinux/ldlinux.c32 /var/lib/tftpboot
+      sudo cp /mnt/cdrom/ubuntu/isolinux/libcom32.c32 /var/lib/tftpboot
+      sudo cp /mnt/cdrom/ubuntu/isolinux/libutil.c32 /var/lib/tftpboot
+      sudo cp /mnt/cdrom/ubuntu/isolinux/chain.c32 /var/lib/tftpboot
+      sudo umount /mnt/cdrom
+
+#. Edit ks.cfg and replace IP address of PXE bootstrap server and subdir in
+   `/var/www` (in this case `/var/www/download`):
+
+   .. code-block:: bash
+
+      sudo cp ks.cfg ${WWW_ROOT}/download/ks.cfg
+
+#. Edit boot-screens_txt.cfg and replace IP address of PXE bootstrap server and
+   subdir in `/var/www` (in this case `/var/www/download`):
+
+   .. code-block:: bash
+
+      sudo cp boot-screens_txt.cfg /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/txt.cfg
+      sudo cp syslinux.cfg /var/lib/tftpboot/ubuntu-installer/amd64/boot-screens/syslinux.cfg
+
+New testbed host - manual preparation
+`````````````````````````````````````
+
+Set CIMC/IPMI address, username, password and hostname an BIOS.
+
+Bootstrap the host
+``````````````````
+
+Convenient way to re-stage host via script:
+
+.. code-block:: bash
+
+   sudo ./bootstrap_setup_testbed.sh <linux_ip> <mgmt_ip> <username> <pass>
+
+Optional: CIMC - From PXE boostrap server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Initialize args.ip: Power-Off, reset BIOS defaults, Enable console redir, get
+   LOM MAC addr:
+
+   .. code-block:: bash
+
+     ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -i
+
+#. Adjust BIOS settings:
+
+   .. code-block:: bash
+
+      ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -s '<biosVfIntelHyperThreadingTech rn="Intel-HyperThreading-Tech" vpIntelHyperThreadingTech="disabled" />' -s '<biosVfEnhancedIntelSpeedStepTech rn="Enhanced-Intel-SpeedStep-Tech" vpEnhancedIntelSpeedStepTech="disabled" />' -s '<biosVfIntelTurboBoostTech rn="Intel-Turbo-Boost-Tech" vpIntelTurboBoostTech="disabled" />'
+
+#. If RAID is not created in CIMC. Create RAID array. Reboot:
+
+   .. code-block:: bash
+
+      ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d --wipe
+      ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -r -rl 1 -rs <disk size> -rd '[1,2]'
+
+#. Reboot server with boot from PXE (restart immediately):
+
+   .. code-block:: bash
+
+      ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -pxe
+
+#. Set the next boot from HDD (without restart). Execute while Ubuntu install
+   is running:
+
+   .. code-block:: bash
+
+      ./cimc.py -u admin -p Cisco1234 $CIMC_ADDRESS -d -hdd
+
+Optional: IPMI - From PXE boostrap server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#. Get MAC address of LAN0:
+
+   .. code-block:: bash
+
+      ipmitool -U ADMIN -H $HOST_ADDRESS raw 0x30 0x21 | tail -c 18
+
+#. Reboot into PXE for next boot only:
+
+   .. code-block:: bash
+
+      ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN chassis bootdev pxe
+      ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN power reset
+
+#. For live watching SOL (Serial-over-LAN console):
+
+   .. code-block:: bash
+
+      ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN sol activate
+      ipmitool -I lanplus -H $HOST_ADDRESS -U ADMIN sol deactivate
+
+Ansible machine
+~~~~~~~~~~~~~~~
+
+Prerequisities for running Ansible
+..................................
+
+- Ansible can run on any machine that has direct SSH connectivity to target
+  machines that will be provisioned (does not need to be PXE server).
+- User `testuser` with password `Csit1234` is created with home folder
+  initialized on all target machines that will be provisioned.
+- SSH keys for no pass access are copied to all target machines that will be
+  provisioned: `ssh-copy-id x.x.x.x`.
+- Inventory directory is created with same or similar content as
+  `inventories/lf_inventory` in `inventories/` directory (`sample_inventory`
+  can be used).
+- Group variables in `ansible/inventories/<inventory>/group_vars/all.yaml` are
+  adjusted per environment. Special attention to `proxy_env` variable.
+- Host variables in `ansible/inventories/<inventory>/host_vars/x.x.x.x.yaml` are
+  defined.
+
+Ansible structure
+.................
+
+Ansible is defining roles `TG` (Traffic Generator), `SUT` (System Under Test),
+`VPP_DEVICE` (vpp_device host for functional testing).
+
+Each Host has corresponding Ansible role mapped and is applied only if Host
+with that role is present in inventory file. As a part of optimization the role
+`common` contains Ansible tasks applied for all Hosts.
+
+.. note::
+
+   You may see `[WARNING]: Could not match supplied host pattern, ignoring:
+   <role>` in case you have not define hosts for that particular role.
+
+Ansible structure is described below:
+
+.. code-block:: bash
+
+   .
+   â”œâ”€â”€ inventories                     # Contains all inventories.
+   â”‚   â”œâ”€â”€ sample_inventory            # Sample, free for edits outside of LF.
+   â”‚   â”‚   â”œâ”€â”€ group_vars              # Variables applied for all hosts.
+   â”‚   â”‚   â”‚   â””── all.yaml
+   â”‚   â”‚   â”œâ”€â”€ hosts                   # Inventory list with sample hosts.
+   â”‚   â”‚   â””── host_vars               # Variables applied for single host only.
+   â”‚   â”‚       â””── 1.1.1.1.yaml        # Sample host with IP 1.1.1.1
+   â”‚   â””── lf_inventory                # Linux Foundation inventory.
+   â”‚       â”œâ”€â”€ group_vars
+   â”‚       â”‚   â””── all.yaml
+   â”‚       â”œâ”€â”€ hosts
+   â”‚       â””── host_vars
+   â”œâ”€â”€ roles                           # CSIT roles.
+   â”‚   â”œâ”€â”€ common                      # Role applied for all hosts.
+   â”‚   â”œâ”€â”€ sut                         # Role applied for all SUTs only.
+   â”‚   â”œâ”€â”€ tg                          # Role applied for all TGs only.
+   â”‚   â”œâ”€â”€ tg_sut                      # Role applied for TGs and SUTs only.
+   â”‚   â””── vpp_device                  # Role applied for vpp_device only.
+   â”œâ”€â”€ site.yaml                       # Main playbook.
+   â”œâ”€â”€ sut.yaml                        # SUT playbook.
+   â”œâ”€â”€ tg.yaml                         # TG playbook.
+   â”œâ”€â”€ vault_pass                      # Main password for vualt.
+   â”œâ”€â”€ vault.yml                       # Ansible vualt storage.
+   â””── vpp_device.yaml                 # vpp_device playbook.
+
+Running Ansible
+...............
+
+#. Go to ansible directory: `cd csit/resources/tools/testbed-setup/ansible`
+#. Run ansible on selected hosts:
+   `ansible-playbook --vault-id vault_pass --extra-vars '@vault.yml' --inventory <inventory_file> site.yaml --limit x.x.x.x`
+
+.. note::
+
+   In case you want to provision only particular role. You can use tags: `tg`,
+   `sut`, `vpp_device`.
+
+Reboot hosts
+------------
+
+Manually reboot hosts after Ansible provisioning succeeded.
diff --git a/resources/tools/testbed-setup/ansible/group_vars/all.yaml b/resources/tools/testbed-setup/ansible/group_vars/all.yaml
deleted file mode 100644 (file)
index c646e06..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
----
-# file: group_vars/all.yaml
-
-ansible_python_interpreter: "/usr/bin/python2.7"
-ansible_become_pass: '{{ inventory_sudo_pass }}'
diff --git a/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml
new file mode 100644 (file)
index 0000000..c464ad8
--- /dev/null
@@ -0,0 +1,42 @@
+---
+# file: group_vars/all.yaml
+
+# General settings
+ansible_python_interpreter: '/usr/bin/python2.7'
+ansible_become_pass: '{{ inventory_sudo_pass }}'
+# Domain is used in /etc/hosts file on target machine.
+domain: 'linuxfoundation.org'
+# DNS is used in /etc/netplan/01-netcfg.yaml
+dns_servers: "[ 199.204.44.24, 199.204.47.54 ]"
+
+# Proxy settings: Uncomment and fill the proper values. These variables will be
+# set globally by writing into /etc/environment file on target machine.
+#proxy_env:
+#  http_proxy: http://proxy.com:80
+#  HTTP_PROXY: http://proxy.com:80
+#  https_proxy: http://proxy.com:80
+#  HTTPS_PROXY: http://proxy.com:80
+#  ftp_proxy: http://proxy.com:80
+#  FTP_PROXY: http://proxy.com:80
+#  no_proxy: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
+#  NO_PROXY: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
+
+# Docker settings.
+docker_edition: 'ce'
+docker_channel: 'edge'
+docker_version: '18.05.0'
+docker_users: ['testuser']
+docker_repository: 'deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_channel }}'
+docker_apt_package_name: '{{ docker_version }}~{{ docker_edition }}~3-0~{{ ansible_distribution | lower }}'
+docker_daemon_environment_http:
+  - 'HTTP_PROXY={{ proxy_env.http_proxy }}'
+  - 'NO_PROXY={{ proxy_env.no_proxy }}'
+docker_daemon_environment_https:
+  - 'HTTPS_PROXY={{ proxy_env.https_proxy }}'
+  - 'NO_PROXY={{ proxy_env.no_proxy }}'
+
+# Kubernetes settings.
+kubernetes_channel: 'main'
+kubernetes_version: '1.11.0-00'
+kubernetes_repository: 'deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_channel }}'
+kubernetes_apt_package_name: '{{ kubernetes_version }}'
@@ -15,11 +15,6 @@ all:
             10.30.51.22: null #t2-sut2
             10.30.51.25: null #t3-sut1
             10.30.51.26: null #t3-sut2
             10.30.51.22: null #t2-sut2
             10.30.51.25: null #t3-sut1
             10.30.51.26: null #t3-sut2
-#        virl: # WARNING, DO NOT ENABLE VIRL UNLESS YOU KNOW WHAT YOU ARE DOING
-#          hosts:
-#            10.30.51.28: null #t4-virl1
-#            10.30.51.29: null #t4-virl2
-#            10.30.51.30: null #t4-virl3
     skylake:
       children:
         tg:
     skylake:
       children:
         tg:
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml
new file mode 100644 (file)
index 0000000..8ffac21
--- /dev/null
@@ -0,0 +1,42 @@
+---
+# file: group_vars/all.yaml
+
+# General settings
+ansible_python_interpreter: '/usr/bin/python2.7'
+ansible_become_pass: '{{ inventory_sudo_pass }}'
+# Domain is used in /etc/hosts file on target machine.
+domain: 'linuxfoundation.org'
+# DNS is used in /etc/netplan/01-netcfg.yaml on target machine.
+dns_servers: "[ 199.204.44.24, 199.204.47.54 ]"
+
+# Proxy settings: Uncomment and fill the proper values. These variables will be
+# set globally by writing into /etc/environment file on target machine.
+#proxy_env:
+#  http_proxy: http://proxy.com:80
+#  HTTP_PROXY: http://proxy.com:80
+#  https_proxy: http://proxy.com:80
+#  HTTPS_PROXY: http://proxy.com:80
+#  ftp_proxy: http://proxy.com:80
+#  FTP_PROXY: http://proxy.com:80
+#  no_proxy: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
+#  NO_PROXY: localhost,127.0.0.1,{{ ansible_default_ipv4.address }}
+
+# Docker settings.
+docker_edition: 'ce'
+docker_channel: 'edge'
+docker_version: '18.05.0'
+docker_users: ['testuser']
+docker_repository: 'deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_channel }}'
+docker_apt_package_name: '{{ docker_version }}~{{ docker_edition }}~3-0~{{ ansible_distribution | lower }}'
+docker_daemon_environment_http:
+  - 'HTTP_PROXY={{ proxy_env.http_proxy }}'
+  - 'NO_PROXY={{ proxy_env.no_proxy }}'
+docker_daemon_environment_https:
+  - 'HTTPS_PROXY={{ proxy_env.https_proxy }}'
+  - 'NO_PROXY={{ proxy_env.no_proxy }}'
+
+# Kubernetes settings.
+kubernetes_channel: 'main'
+kubernetes_version: '1.11.0-00'
+kubernetes_repository: 'deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_channel }}'
+kubernetes_apt_package_name: '{{ kubernetes_version }}'
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
new file mode 100644 (file)
index 0000000..6cefdb4
--- /dev/null
@@ -0,0 +1,6 @@
+---
+# file: host_vars/x.x.x.x.yaml
+
+hostname: "t1-tg1"
+isolcpus: "1-17,19-35"
+cfs_cpus: "0,18"
diff --git a/resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts
new file mode 100644 (file)
index 0000000..da5d7f1
--- /dev/null
@@ -0,0 +1,11 @@
+all:
+  children:
+    skylake: # Architecture: (options) skylake, haswell, taishan...
+      children:
+        tg:
+          hosts:
+            1.1.1.1: null #t1-tg
+        sut:
+          hosts:
+            2.2.2.2: null #t1-sut1
+            3.3.3.3: null #t1-sut2
index 38d8188..1481536 100644 (file)
@@ -1,6 +1,14 @@
 ---
 # file: roles/common/tasks/main.yaml
 
 ---
 # file: roles/common/tasks/main.yaml
 
+- name: Add permanent proxy settings
+  lineinfile:
+    path: "/etc/environment"
+    state: "present"
+    line: "{{ item.key }}={{ item.value }}"
+  with_dict: "{{ proxy_env }}"
+  when: proxy_env is defined
+
 - name: Ubuntu specific
   import_tasks: ubuntu.yaml
   when: ansible_distribution|lower == 'ubuntu'
 - name: Ubuntu specific
   import_tasks: ubuntu.yaml
   when: ansible_distribution|lower == 'ubuntu'
@@ -14,7 +22,7 @@
   lineinfile:
     path: '/etc/hosts'
     regexp: '^{{ ansible_default_ipv4.address }}.+$'
   lineinfile:
     path: '/etc/hosts'
     regexp: '^{{ ansible_default_ipv4.address }}.+$'
-    line: '{{ ansible_default_ipv4.address }} {{ hostname }}.linuxfoundation.org'
+    line: '{{ ansible_default_ipv4.address }} {{ hostname }}.{{ domain }}'
   tags: set-hostname
 
 - name: Set sudoers admin
   tags: set-hostname
 
 - name: Set sudoers admin
    mode: '644'
   notify: ['Update GRUB']
   tags: copy-grub
    mode: '644'
   notify: ['Update GRUB']
   tags: copy-grub
+
+- name: Add permanent proxy settings
+  lineinfile:
+    path: "/etc/environment"
+    state: "present"
+    line: "{{ item.key }}={{ item.value }}"
+  with_dict: "{{ proxy_env }}"
+  when: proxy_env is defined
index ff47ffc..ae606cd 100644 (file)
   tags: copy-apt-sources
   when: ansible_machine == 'x86_64'
 
   tags: copy-apt-sources
   when: ansible_machine == 'x86_64'
 
-- name: Install python-apt
+- name: Install CSIT dependencies
   apt:
   apt:
-    name: 'python-apt'
+    name: '{{ item }}'
     state: 'present'
     state: 'present'
-    update_cache: True
-  tags: install-python-apt
-
-- name: Install git
-  apt:
-    name: 'git'
-    state: 'present'
-    update_cache: True
-  tags: install-git
-
-- name: Install crudini
-  apt:
-    name: 'crudini'
-    state: 'present'
-    update_cache: True
-  tags: install-crudini
-
-- name: Install expect
-  apt:
-    name: 'expect'
-    state: 'present'
-    update_cache: True
-  tags: install-expect
-
-- name: Install socat
-  apt:
-    name: 'socat'
-    state: 'present'
-    update_cache: True
-  tags: install-socat
-
-- name: Install qemu
-  apt:
-    name: 'qemu-system'
-    state: 'present'
-    update_cache: True
-  tags: install-qemu
+    install_recommends: False
+  with_items:
+    - 'python-apt'
+    - 'python-setuptools'
+    - 'git'
+    - 'crudini'
+    - 'expect'
+    - 'socat'
+    - 'qemu-system'
+  tags: install-csit-dependencies
index 824f092..69ca529 100644 (file)
 ---
 # file: roles/sut/tasks/ubuntu.yaml
 
 ---
 # file: roles/sut/tasks/ubuntu.yaml
 
-- name: Install DKMS
-  apt:
-    name: 'dkms'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-dkms
-
-- name: Install pkg-config
-  apt:
-    name: 'pkg-config'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-pkg-config
-
-- name: Install libglib2.0-dev
-  apt:
-    name: 'libglib2.0-dev'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-libglib2.0-dev
-
-- name: Install autoconf
-  apt:
-    name: 'autoconf'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-autoconf
-
-- name: Install libtool
-  apt:
-    name: 'libtool'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-libtool
-
-- name: Install screen
-  apt:
-    name: 'screen'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-screen
-
-- name: Install libmbedcrypto1
-  apt:
-    name: 'libmbedcrypto1'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-libmbedcrypto1
-
-- name: Install libmbedtls10
-  apt:
-    name: 'libmbedtls10'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-libmbedtls10
-
-- name: Install libmbedx509-0
-  apt:
-    name: 'libmbedx509-0'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-libmbedx509-0
-
-- name: Install lxc
-  apt:
-    name: 'lxc'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-lxc
-
-- name: Install java
-  apt:
-    name: 'openjdk-8-jdk'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-java
-
-- name: Install Pixman (Qemu-dep)
-  apt:
-    name: 'libpixman-1-dev'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-pixman
-
-- name: Install python-cffi
-  apt:
-    name: 'python-cffi'
-    state: 'present'
-    update_cache: True
-  become: yes
-  tags: install-python-cffi
+- name: Install CSIT dependencies
+  apt:
+    name: '{{ item }}'
+    state: 'present'
+    install_recommends: False
+  with_items:
+    - 'dkms'
+    - 'pkg-config'
+    - 'libglib2.0-dev'
+    - 'autoconf'
+    - 'libtool'
+    - 'screen'
+    - 'libmbedcrypto1'
+    - 'libmbedtls10'
+    - 'libmbedx509-0'
+    - 'lxc'
+    - 'openjdk-8-jdk'
+    - 'libpixman-1-dev'
+    - 'python-cffi'
+  tags: install-csit-dependencies
index 54001a7..9fa19b5 100644 (file)
@@ -2,5 +2,5 @@
 # file: roles/tg/tasks/main.yaml
 
 - name: Ubuntu specific
 # file: roles/tg/tasks/main.yaml
 
 - name: Ubuntu specific
-  import_tasks: ubuntu_x86_64.yaml
-  when: ansible_distribution|lower == 'ubuntu' and ansible_machine == 'x86_64'
+  import_tasks: ubuntu.yaml
+  when: ansible_distribution|lower == 'ubuntu'
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu.yaml b/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu.yaml
new file mode 100644 (file)
index 0000000..acb4f98
--- /dev/null
@@ -0,0 +1,11 @@
+---
+# file: roles/tg/tasks/ubuntu.yaml
+
+- name: Install CSIT dependencies
+  apt:
+    name: '{{ item }}'
+    state: 'present'
+    install_recommends: False
+  with_items:
+    - 'unzip'
+  tags: install-csit-dependencies
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml b/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml
deleted file mode 100644 (file)
index 54a0468..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# file: roles/tg/tasks/ubuntu_x86_64.yaml
-
-- name: Install Unzip
-  apt:
-    name: 'unzip'
-    state: 'present'
-    update_cache: True
-  tags: install-unzip
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/tg_sut/defaults/main.yaml
deleted file mode 100644 (file)
index 3a6f68f..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
----
-docker_edition: "ce"
-docker_channel: "edge"
-
-docker_version: "18.05.0"
-docker_install_docker_compose: True
-docker_compose_version: "1.21.0"
-
-docker_users: ['testuser']
-
-docker_daemon_options: []
-# Can be used to set environment variables for the Docker daemon, such as:
-# docker_daemon_environment:
-#   - "HTTP_PROXY=http://proxy.example.com:3128/"
-#   - "HTTPS_PROXY=http://proxy.example.com:3128/"
-#   - "NO_PROXY=localhost,127.0.0.1"
-docker_daemon_environment: []
-
-docker_repository: "deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_channel }}"
-docker_apt_package_name: "{{ docker_version }}~{{ docker_edition }}~3-0~{{ ansible_distribution | lower }}"
-
-apt_cache_time: 86400
-
-kubernetes_channel: "main"
-kubernetes_version: "1.11.0-00"
-
-kubernetes_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_channel }}"
-kubernetes_apt_package_name: "{{ kubernetes_version }}"
index 2f34cfb..2602f93 100644 (file)
@@ -6,6 +6,7 @@ network:
   ethernets:
     {{ ansible_default_ipv4["interface"] }}:
       addresses: [ {{ (ansible_default_ipv4.address + '/' + ansible_default_ipv4.netmask) | ipaddr('host/prefix') }} ]
   ethernets:
     {{ ansible_default_ipv4["interface"] }}:
       addresses: [ {{ (ansible_default_ipv4.address + '/' + ansible_default_ipv4.netmask) | ipaddr('host/prefix') }} ]
+      dhcp4: false
       gateway4: {{ ansible_default_ipv4["gateway"] }}
       nameservers:
       gateway4: {{ ansible_default_ipv4["gateway"] }}
       nameservers:
-        addresses: [ 199.204.44.24, 199.204.47.54 ]
+        addresses: {{ dns_servers }}
index 11caf5d..0ce17e2 100644 (file)
@@ -1,13 +1,56 @@
-robotframework==2.9.2
-paramiko==1.16.0
-scp==0.10.2
-ipaddress==1.0.16
-interruptingcow==0.6
-PyYAML==3.11
-pykwalify==1.5.0
-scapy==2.3.1
-enum34==1.1.2
-requests==2.9.1
+# DISCLAIMER: BEFORE EDITING THIS FILE!
+#
+# This file has two closely related consequences.
+# The common part is that this file defines
+# the content of virtual Python environment
+# used when Robot tests are running.
+# The difference is in which machine the environment is created on.
+# For the Jenkins executor machines,
+# editing this file has no surprising consequences.
+#
+# But the environment is also being created
+# on virtual machines created by VIRL, which do have specific restrictions.
+# Complete package and setting snapshot (for both VIRL and Physical Testbed),
+# with network being limited in case of VIRL to local only.
+# This implies pip currently being set to site-packages only
+# for both VIRL and Physical Testbed.
+# So if the "virl image" applied on the machine
+# does not reflect the edits, some installations might fail.
+# Even if the failure may not directly impact execution,
+# this leads into inconsistency between installed environment
+# and the code base which may lead into fatal error or uncaught exceptions.
+#
+# The "virl image" is built from files such as
+# resources/tools/disk-image-builder/ubuntu/lists/ubuntu-16.04.1_2017-10-21_2.0/pip-requirements.txt
+# but the build is not automated,
+# the new "virl image" has to be built and applied manually
+# before your edit can pass.
+# This also means, incompatible virl images
+# would make existing tests fail until your edit is merged.
+#
+# TODO: Automate the virtualenv download and distribution
+#   on all types of testbeds prior the test execution.
+# TODO: Figure out a way to verify edits to this file automatically.
+
+# TODO: Split into directly needed packages and their dependencies.
+docopt==0.6.2  # for pykwalify
 ecdsa==0.13
 ecdsa==0.13
+enum34==1.1.2
+ipaddress==1.0.16
+paramiko==1.16.0
+pexpect==4.6.0
 pycrypto==2.6.1
 pycrypto==2.6.1
+pykwalify==1.5.0
 pypcap==1.1.5
 pypcap==1.1.5
+python-dateutil==2.4.2  # for pykwalify
+PyYAML==3.11
+requests==2.9.1
+robotframework==2.9.2
+scapy==2.3.1
+scp==0.10.2
+six==1.12.0  # for python-dateutil
+
+# The following is only there for PLRsearch.
+dill==0.2.8.2
+numpy==1.14.5
+scipy==1.1.0
index 8604185..2f75ae5 100644 (file)
 ---
 # file: roles/tg_sut/tasks/ubuntu.yaml
 
 ---
 # file: roles/tg_sut/tasks/ubuntu.yaml
 
-- name: Install python-dev
+- name: Install CSIT dependencies
   apt:
   apt:
-    name: 'python-dev'
+    name: '{{ item }}'
     state: 'present'
     state: 'present'
-    update_cache: True
-  tags: install-python-dev
-
-- name: Install python-virtualenv
-  apt:
-    name: 'python-virtualenv'
-    state: 'present'
-    update_cache: True
-  tags: install-python-virtualenv
-
-- name: Install python pip
-  apt:
-    name: 'python-pip'
-    state: 'present'
-    update_cache: True
-  tags: install-python-pip
-
-- name: Install libpcap-dev
-  apt:
-    name: 'libpcap-dev'
-    state: 'present'
-    update_cache: True
-  tags: install-libpcap-dev
-
-- name: Install cpufrequtils
-  apt:
-    name: 'cpufrequtils'
-    state: 'present'
-    update_cache: True
-  tags: install-cpufrequtils
-
-- name: Install cgroup-support
-  apt:
-    name: 'cgroup-bin'
-    state: 'present'
-    update_cache: True
-  tags: install-cgroup-support
-
-- name: Install zlib1g-dev
-  apt:
-    name: 'zlib1g-dev'
-    state: 'present'
-    update_cache: True
-  tags: install-zlib1g-dev
-
-- name: Install libnuma-dev
-  apt:
-    name: 'libnuma-dev'
-    state: 'present'
-    update_cache: True
-  tags: install-libnuma-dev
-
-- name: Install Docker and role dependencies
-  apt:
-    name: "{{ item }}"
-    state: "present"
     install_recommends: False
   with_items:
     install_recommends: False
   with_items:
-    - "apt-transport-https"
-    - "ca-certificates"
-    - "software-properties-common"
-    - "cron"
-  tags: install-docker
-
-- name: Install Docker APT GPG key
+    - 'python-dev'
+    - 'python-virtualenv'
+    - 'python-pip'
+    - 'libpcap-dev'
+    - 'cpufrequtils'
+    - 'cgroup-bin'
+    - 'zlib1g-dev'
+    - 'apt-transport-https'
+    - 'ca-certificates'
+    - 'software-properties-common'
+    - 'cron'
+    - 'libnuma-dev'
+  tags: install-csit-dependencies
+
+- name: Add an Apt signing key, for docker-ce repository
   apt_key:
     url: https://download.docker.com/linux/ubuntu/gpg
   apt_key:
     url: https://download.docker.com/linux/ubuntu/gpg
-    state: "present"
+    state: 'present'
   tags: install-docker
 
 - name: Install Docker APT repository
   apt_repository:
   tags: install-docker
 
 - name: Install Docker APT repository
   apt_repository:
-    repo: "{{ docker_repository }}"
-    state: "present"
+    repo: '{{ docker_repository }}'
+    state: 'present'
     update_cache: True
   tags: install-docker
 
 - name: Install Docker
   apt:
     update_cache: True
   tags: install-docker
 
 - name: Install Docker
   apt:
-    name: "docker-{{ docker_edition }}={{ docker_apt_package_name }}"
-    state: "present"
-    update_cache: True
-    install_recommends: False
-    cache_valid_time: "{{ apt_cache_time }}"
+    name: 'docker-{{ docker_edition }}={{ docker_apt_package_name }}'
+    state: 'present'
   tags: install-docker
 
   tags: install-docker
 
-- name: Remove Upstart docker config file
+- name: Creates Docker service directory
   file:
   file:
-    path: "/etc/default/docker"
-    state: "absent"
-  tags: docker
+    path: '/etc/systemd/system/docker.service.d'
+    state: 'directory'
 
 
-- name: Ensure systemd directory exists
-  file:
-    path: "/etc/systemd/system"
-    state: "directory"
-    owner: "root"
-    group: "root"
-    mode: "0755"
-  tags: ensure-docker
+- name: Setup Docker http proxy
+  template:
+    src: 'templates/docker.service.proxy.http'
+    dest: '/etc/systemd/system/docker.service.d/http-proxy.conf'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
+  register: docker_register_systemd_service
+  when: proxy_env is defined and proxy_env.http_proxy is defined
+  tags: copy-docker
 
 
-- name: Copy systemd docker unit file
+- name: Setup Docker https proxy
   template:
   template:
-    src: "templates/docker.service.j2"
-    dest: "/etc/systemd/system/docker.service"
-    owner: "root"
-    group: "root"
-    mode: "0644"
+    src: 'templates/docker.service.proxy.https'
+    dest: '/etc/systemd/system/docker.service.d/https-proxy.conf'
+    owner: 'root'
+    group: 'root'
+    mode: '0644'
   register: docker_register_systemd_service
   register: docker_register_systemd_service
+  when: proxy_env is defined and proxy_env.https_proxy is defined
   tags: copy-docker
 
 - name: Reload systemd daemon
   tags: copy-docker
 
 - name: Reload systemd daemon
-  command: "systemctl daemon-reload"
-  notify: ["Restart Docker"]
+  command: 'systemctl daemon-reload'
+  notify: ['Restart Docker']
   when: (docker_register_systemd_service and
          docker_register_systemd_service is changed)
   tags: restart-docker
 
   when: (docker_register_systemd_service and
          docker_register_systemd_service is changed)
   tags: restart-docker
 
-- name: Set specific users to "docker" group
+- name: Set specific users to docker group
   user:
   user:
-    name: "{{ item }}"
-    groups: "docker"
+    name: '{{ item }}'
+    groups: 'docker'
     append: True
     append: True
-  with_items: "{{ docker_users }}"
+  with_items: '{{ docker_users }}'
   when: docker_users
   tags: set-docker
 
   when: docker_users
   tags: set-docker
 
-- name: Install kubernetes APT GPG key
+- name: Add an Apt signing key, for Kubernetes repository
   apt_key:
     url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
   apt_key:
     url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
-    state: "present"
+    state: 'present'
   tags: install-kubernetes
 
 - name: Install kubernetes APT repository
   apt_repository:
   tags: install-kubernetes
 
 - name: Install kubernetes APT repository
   apt_repository:
-    repo: "{{ kubernetes_repository }}"
-    state: "present"
-    update_cache: True
-  tags: install-kubernetes
-
-- name: Install kubeadm
-  apt:
-    name: "kubeadm={{ kubernetes_apt_package_name }}"
-    state: "present"
-    force: yes
-    update_cache: True
-    install_recommends: False
-    cache_valid_time: "{{ apt_cache_time }}"
-  tags: install-kubernetes
-
-- name: Install kubectl
-  apt:
-    name: "kubectl={{ kubernetes_apt_package_name }}"
-    state: "present"
-    force: yes
+    repo: '{{ kubernetes_repository }}'
+    state: 'present'
     update_cache: True
     update_cache: True
-    install_recommends: False
-    cache_valid_time: "{{ apt_cache_time }}"
   tags: install-kubernetes
 
   tags: install-kubernetes
 
-- name: Install kubelet
+- name: Install Kubernetes
   apt:
   apt:
-    name: "kubelet={{ kubernetes_apt_package_name }}"
-    state: "present"
+    name: '{{ item }}={{ kubernetes_apt_package_name }}'
+    state: 'present'
     force: yes
     force: yes
-    update_cache: True
-    install_recommends: False
-    cache_valid_time: "{{ apt_cache_time }}"
+  with_items:
+    - 'kubeadm'
+    - 'kubectl'
+    - 'kubelet'
   tags: install-kubernetes
 
 - name: Apply kubelet parameter
   tags: install-kubernetes
 
 - name: Apply kubelet parameter
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.j2 b/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.j2
deleted file mode 100644 (file)
index 26a1bcf..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-# {{ ansible_managed }}
-
-[Unit]
-Description=Docker Application Container Engine
-Documentation=https://docs.docker.com
-After=network-online.target docker.socket
-Requires=docker.socket
-
-[Service]
-Type=notify
-# the default is not to use systemd for cgroups because the delegate issues still
-# exists and systemd currently does not support the cgroup feature set required
-# for containers run by docker
-{% if docker_daemon_environment %}
-Environment="{{ docker_daemon_environment | join('" "') }}"
-{% endif %}
-ExecStart=/usr/bin/dockerd {{ docker_daemon_options | join(" ") }}
-ExecReload=/bin/kill -s HUP $MAINPID
-# Having non-zero Limit*s causes performance problems due to accounting overhead
-# in the kernel. We recommend using cgroups to do container-local accounting.
-LimitNOFILE=infinity
-LimitNPROC=infinity
-LimitCORE=infinity
-# Uncomment TasksMax if your systemd version supports it.
-# Only systemd 226 and above support this version.
-TasksMax=infinity
-TimeoutStartSec=0
-# set delegate yes so that systemd does not reset the cgroups of docker containers
-Delegate=yes
-# kill only the docker process, not all processes in the cgroup
-KillMode=process
-
-[Install]
-WantedBy=multi-user.target
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.http b/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.http
new file mode 100644 (file)
index 0000000..73ceba3
--- /dev/null
@@ -0,0 +1,4 @@
+# {{ ansible_managed }}
+
+[Service]
+Environment="{{ docker_daemon_environment_http | join('" "') }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.https b/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.https
new file mode 100644 (file)
index 0000000..1c2097e
--- /dev/null
@@ -0,0 +1,4 @@
+# {{ ansible_managed }}
+
+[Service]
+Environment="{{ docker_daemon_environment_https | join('" "') }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/interfaces_virl b/resources/tools/testbed-setup/ansible/roles/virl/files/interfaces_virl
deleted file mode 100644 (file)
index 25ea35a..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file describes the network interfaces available on your system
-# and how to activate them. For more information, see interfaces(5).
-
-# The loopback network interface
-auto lo
-iface lo inet loopback
-
-# The primary network interface
-auto br1
-iface br1 inet static
-    address {{ ansible_default_ipv4["address"] }}
-    netmask {{ ansible_default_ipv4["netmask"] }}
-    gateway {{ ansible_default_ipv4["gateway"] }}
-    dns-nameservers 199.204.44.24 199.204.47.54
-    bridge_maxwait 0
-    bridge_ports eth0 eth4
-    bridge_stp off
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/nova_os_ip.patch b/resources/tools/testbed-setup/ansible/roles/virl/files/nova_os_ip.patch
deleted file mode 100644 (file)
index a943dc9..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- api/metadata/base.py.old   2017-04-26 12:38:52.522991596 +0000
-+++ api/metadata/base.py       2017-04-26 10:06:46.396450566 +0000
-@@ -493,7 +493,7 @@
-                 path = 'openstack/%s/%s' % (version, VD_JSON_NAME)
-                 yield (path, self.lookup(path))
-
--            if self._check_version(LIBERTY, version, ALL_OPENSTACK_VERSIONS):
-+            if False and self._check_version(LIBERTY, version, ALL_OPENSTACK_VERSIONS):
-                 path = 'openstack/%s/%s' % (version, NW_JSON_NAME)
-                 yield (path, self.lookup(path))
-
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/requirements.txt b/resources/tools/testbed-setup/ansible/roles/virl/files/requirements.txt
deleted file mode 100644 (file)
index 11caf5d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-robotframework==2.9.2
-paramiko==1.16.0
-scp==0.10.2
-ipaddress==1.0.16
-interruptingcow==0.6
-PyYAML==3.11
-pykwalify==1.5.0
-scapy==2.3.1
-enum34==1.1.2
-requests==2.9.1
-ecdsa==0.13
-pycrypto==2.6.1
-pypcap==1.1.5
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt.b64 b/resources/tools/testbed-setup/ansible/roles/virl/files/salt.b64
deleted file mode 100644 (file)
index 5e76a85..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-H4sIAF7JK1cAA+1a32/bNhD2a/RXcMmDkyGy9VuDsQwDhhUoNuxhHfbSFQYj0TZrSVRJyklQ9H/f
-UZZsGbUj27HVduOXBzvkmUfyuzveURI4kcPeeWEBwtBXn3boW83PGj3bCS3P9v3QcnuW7YJAD/ln
-nleJQkjMEeolLMIJjlOabZdr6/9GIRT/gi/OaQOH8O+HgeI/8GzNfxdY8S/OFwgO598LLE/z3wU2
-+Y/mjAhJ+GkNoeTf34d/LwwskLPB/V3NfxfYwX82EaYgfEH4QCTihToUwYFl7eTfBrJr/l0X+Hds
-R/FvnWSFLfif80+zKCliMjIQMlFN/6BBP81gg5JkZ3/EsgmdFpwYX3opGkdgh//HmUix+HAC5++1
-+7/lr+O/4zng/5YfeNr/u8B2/6/p1879X0fr+X+CVHD//M9XH8r/IRHU+V8XaOd/FQOOPgza4n/o
-N/j3FP+uHdo6/ncBxbQK/hOakEFMOYkk40+qRR0IBdjACHHGZNUw5azIN1pSBqcHAvc2DDXWUEQc
-y2h2gjHtMAyrQTlrG29BebI5XqOlOUcioyF5zBmX63WnOMNTEo82xAPPq/6XJM0TLKHtPc3e46pV
-sIJH0HapPGc03Oo7anRRq7s0DOgaL7vGvMgymk2VTtVCIzJoNCkFGU5heDXanPCMJNWghlHkMcxm
-3FhFlMbq15u/XPZPBDI53nl+t/t/VQC8IBUs/d/zdtd/QbjK/3xL5X9OoOK/9v/z4zPzQhXfypby
-+bSu/9beIeY0H4MgnTyN0F+8IFU7JxNOxGyEXuFEkBYb/tLL1qjQ7v/LGPYSHeUZ/1z9t87/LNsK
-1P2PH+j7v06wL//VYXOUjpb4D1lf2OBfxX/XcXT93wmu0EZGhOSMIBxFRAgEib/kLEEJFRJNGC9z
-JfEE9pEK9DCj0Qyl+AndkyrTILFxdXEhGfrj1RsUJZRkUgwQekNqAXHt3wyMK+MK/fqIIaUi5agg
-vXAQzuLymzuC7tIgZywlAi0xY0Kqo8S+5g+34imLbjM2FsW95ISMoxmJ5jcrGeeasx0yW3V7K41g
-9F6lEE2FGM75vU9XGieCxnfWbcSZEGkmt42+Hqae/efDbJtUM3G++PgRKV98289pkmA+mBLZf3fd
-V+nsKHHGGZEPjM/7t5XUlGM4omupDYG+HToDOxjYA2voeH10c4M+fVITgTmobHssPhRYzLbs5X5z
-cFon4TRm4Zx2Fm7bTrhbdsI9dA51+XFx8b0yq1bxL+3OB+P5+9/TPAc85Pmf44Xq/sfS5383aOH/
-5Zc/vfb7Hyewa/4D2/JU/ed7vj7/u0B5+tOMymHzzv9MNyO1VS1TyqbCS6PtHqSS/vYi7NeNFv9/
-efHXO6T+g/iv3v9zbNvT8b8T7MV/01OP0NFW/4V2UPPvh56t6j/f0vVfJ7hCC5qOBIEKT94VudoM
-iaS4cxCRIyMmUJXQXFKWocu/X//5ex2GLw1cyBlUUJe/YA4Wk6HflpaDfqxt6OeIioiBzaQ/QXRf
-DgzDQHBPyIIk6K3jev476GD5Zvt3yw6DE5Hjh8wwyCOJ0LAQfCjuaVZbIzJj9I9R12sm3rNoGU/h
-vHrAT621S0NwXUhBYlJVDy/R3V44NSXXBdRR2t19V75NcF04bddtZsxUhbdYfgXKWLKA70JyGkmT
-8RhMwjSBttikGVjFBEdECZPHiORy3XaXMGjNaWyqkHM3lGk+VPM369gDXSCgItBSYmMWy6uqu+f2
-YULBTscql1gK79iFLWL9HwblX//z1e+hVxCYc9yueJvcM5pjlsKv71hO1P18NC/D0xHJURn2VQ54
-+tCyQnn+H/j+t+Xo878LrPj/ut7/Lus/zf/5sck/rA6O+kF8hve/D+I/cAJL898FdvAvIYUrV3xs
-zt9E2/N/y6uf/7hh4Dtl/aff/+4GKpcq77TL90jQPRZkee+CTLSuC/Wti4aGhoaGhoaGhoaGhoaG
-hoaGhoaGhsa3hH8BeOCWxQBQAAA=
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/etc/salt/minion.d/testlocal.conf b/resources/tools/testbed-setup/ansible/roles/virl/files/salt/etc/salt/minion.d/testlocal.conf
deleted file mode 100644 (file)
index fce910c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-file_roots:
-   base:
-     - /srv/salt/
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server.sls b/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server.sls
deleted file mode 100644 (file)
index bf3e47f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-include:
-  - ckoester.nfs-server.install
-  - ckoester.nfs-server.configure
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/configure.sls b/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/configure.sls
deleted file mode 100644 (file)
index ce362a3..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/nfs:
-  file.directory:
-    - user: root
-    - group: root
-    - mode: 755
-
-/nfs/scratch:
-  file.directory:
-    - user: root
-    - group: root
-    - mode: 1777
-
-/nfs/ro:
-  file.directory:
-    - user: virl
-    - group: virl
-    - mode: 755
-
-/etc/exports:
-  file.managed:
-    - mode: 644
-    - template: jinja
-    - source: "salt://ckoester/nfs-server/files/exports"
-
-nfs_server_running:
-  service.running:
-    - name: nfs-kernel-server
-
-update_exports:
-  cmd.run:
-    - name: exportfs -ra
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/files/exports b/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/files/exports
deleted file mode 100644 (file)
index 23802be..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# /etc/exports: the access control list for filesystems which may be exported
-#              to NFS clients.  See exports(5).
-#
-# Example for NFSv2 and NFSv3:
-# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
-#
-# Example for NFSv4:
-# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
-# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
-#
-/nfs/scratch   {{ salt['pillar.get']('virl:l2_network', salt['grains.get']('l2_network', '172.16.1.0/24' )) }}(rw,no_root_squash,no_subtree_check) {{ salt['pillar.get']('virl:l2_network2', salt['grains.get']('l2_network2', '172.16.2.0/24' )) }}(rw,no_root_squash,no_subtree_check) {{ salt['pillar.get']('virl:l3_network', salt['grains.get']('l3_network', '172.16.3.0/24' )) }}(rw,no_root_squash,no_subtree_check)
-/nfs/ro                *(ro,no_root_squash,no_subtree_check)
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/install.sls b/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/install.sls
deleted file mode 100644 (file)
index 0f13634..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-nfs-kernel-server install:
-  pkg.installed:
-    - skip_verify: True
-    - refresh: False
-    - name: nfs-kernel-server
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_jenkins-in b/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_jenkins-in
deleted file mode 100644 (file)
index 1797c2c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-jenkins-in ALL=(root) NOPASSWD: /bin/rm -fr /scratch/*, /bin/rm -fr /nfs/scratch/*
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_virl b/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_virl
deleted file mode 100644 (file)
index e0cf48a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-virl ALL=(root) NOPASSWD:ALL
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/ttyS0 b/resources/tools/testbed-setup/ansible/roles/virl/files/ttyS0
deleted file mode 100644 (file)
index 0ed8550..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# 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 RUNLEVEL=[12345]
-stop on runlevel [!12345]
-
-respawn
-exec /sbin/getty -L 115200 ttyS0 vt102
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl b/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl
deleted file mode 100644 (file)
index b4c3de7..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
-v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
-vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
-4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
-1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
-8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
-0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
-EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
-0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
-MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
-p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
-79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
-OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
-GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
-bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
-8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
-f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
-UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
-+m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
-D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
-sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
-g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
-qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
-EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
-BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
------END RSA PRIVATE KEY-----
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl.pub b/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl.pub
deleted file mode 100644 (file)
index 0ef508c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBQOVOnNIenAtCi1k4VLgCBw80RYKc/UAHaFYWa8j7wpqH+Bu/yu5lT1GqE+znq3IrPFuG82RjhVsfkXUaKUdm7eYurMzgp+CEyZp4wSM7VPsFhh2+4F9O8iW6WN9Da8CWdisPCf4KXEmTzWbSkOC+ssRfipVWHawaHtQSRjLmvzYM1rbhWPM8HUn9zxr3M/wWhlSFgjMXgUu9EyNQAOlsxeAkywalpkubP3lqnQSi3u9vUJzUu8X3uLIEKu0g5IpEoDnRmEsaMwqY7CdhT5w/nvXy1umugNWLpUk6jvN65fJ60yzxgGX2RZuVYb0Go/2Ny0W+yaLkbuFeCrVjy74P virl@tb4-virl
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ifup b/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ifup
deleted file mode 100644 (file)
index a4a743a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#! /bin/sh
-# Reload the OpenSSH server when an interface comes up, to allow it to start
-# listening on new addresses.
-
-set -e
-
-# Don't bother to restart sshd when lo is configured.
-if [ "$IFACE" = lo ]; then
-       exit 0
-fi
-
-# Only run from ifup.
-if [ "$MODE" != start ]; then
-       exit 0
-fi
-
-if [ "$IFACE" = br1 ]; then
-       /sbin/ip route delete default
-       /sbin/ip route add default via 10.30.51.1
-       /sbin/ifconfig br1:0 {{ virl_l2_ip }} netmask 255.255.255.0
-       exit 0
-fi
-
-
-exit 0
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ssh_environment b/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ssh_environment
deleted file mode 100644 (file)
index 5ec594d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-PATH=/home/jenkins-in/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/virl-bootstrap-wrapper b/resources/tools/testbed-setup/ansible/roles/virl/files/virl/virl-bootstrap-wrapper
deleted file mode 100644 (file)
index dc7ead8..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/expect
-
-if ![ string equal $::env(USER) "root"] {
-  puts "Please re-run this script as root."
-  exit 1
-}
-
-log_file /tmp/virl-bootstrap.log
-set timeout 3600
-
-spawn  ./virl-bootstrap.py
-expect "Which step are you on"
-send "1\r"
-
-expect "Salt master"
-send "vsm-md.virl.info\r"
-
-expect "Which step are you on"
-send "2\r"
-
-expect "Salt id"
-send "{{ hostname }}\r"
-expect "Salt domain name"
-send "linuxfoundation.org\r"
-
-expect "Which step are you on"
-send "3\r"
-
-expect "System hostname"
-send "{{ hostname }}\r"
-expect "System Domain name"
-send "linuxfoundation.org\r"
-
-expect "Which step are you on"
-send "4\r"
-
-puts "*******************STEP 6*************************************************************************************************************************************************"
-expect "Which step are you on"
-send "6\r"
-expect "Salt installed"
-
-puts "*******************STEP 8*************************************************************************************************************************************************"
-expect "Which step are you on"
-send "8\r"
-
-expect "True"
-
-puts "*******************STEP 9*************************************************************************************************************************************************"
-expect "Which step are you on"
-send "9\r"
-
-expect "Failed:     0"
-
-puts "*******************STEP 11*************************************************************************************************************************************************"
-expect "Which step are you on"
-send "11\r"
-
-expect eof
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/tasks/02-virl-bootstrap.yaml b/resources/tools/testbed-setup/ansible/roles/virl/tasks/02-virl-bootstrap.yaml
deleted file mode 100644 (file)
index 9ffb40c..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
----
-  - name: install virl-bootstrap
-    git:
-        repo: 'https://github.com/VIRL-Open/virl-bootstrap.git'
-        dest: /home/virl/virl-bootstrap
-        version: xenial
-    become_user: virl
-  - name: copy vsetting file to /etc
-    shell: /usr/bin/install -m 666 /home/virl/virl-bootstrap/vsettings.ini /etc/virl.ini
-    become: yes
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT hostname {{ hostname }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT domain_name linuxfoundation.org
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT using_dhcp_on_the_public_port False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT public_port dummy3
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT Static_IP 10.30.49.28
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT public_network 10.30.49.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT public_netmask {{ ansible_default_ipv4["netmask"] }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT public_gateway 10.30.49.1
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT proxy False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT ntp_server pool.ntp.org
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT first_nameserver 199.204.44.24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT second_nameserver 199.204.47.54
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT salt_master vsm-md.virl.info
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT salt_id {{ hostname }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT salt_domain linuxfoundation.org
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT salt_masterless false
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_port {{ virl_public_port }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_network {{ virl_l2_network }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_mask 255.255.255.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_network_gateway {{ virl_l2_gateway }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_start_address {{ virl_l2_start }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_end_address {{ virl_l2_end }}
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_address {{ ansible_default_ipv4["address"] }}/24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT first_flat_nameserver 199.204.44.24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT second_flat_nameserver 199.204.47.54
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_port2_enabled True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_port2 dummy0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_network2 172.16.2.0/24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_mask2 255.255.255.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_network_gateway2 172.16.2.1
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_start_address2 172.16.2.50
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_end_address2 172.16.2.253
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l2_address2 172.16.2.254/24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT first_flat2_nameserver 199.204.44.24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT second_flat2_nameserver 199.204.47.54
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_port dummy1
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_network 172.16.3.0/24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_mask 255.255.255.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_network_gateway 172.16.3.1
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_floating_start_address 172.16.3.50
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_floating_end_address 172.16.3.253
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT l3_address 172.16.3.254/24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT first_snat_nameserver 199.204.44.24
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT second_snat_nameserver 199.204.47.54
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT ramdisk True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT ank 19401
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT ank_live 19402
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT virl_webservices 19399
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT virl_user_management 19400
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT virl_apache_port 80
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT virl_webmux 19403
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT Start_of_serial_port_range 17000
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT End_of_serial_port_range 18000
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT serial_port 19406
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vnc_port 19407
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT location_region US
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vnc False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT guest_account True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT user_list tb4-virl:Cisco1234
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT uwmadmin_password Cisco1234
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT password password
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT mysql_password password
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT keystone_service_token fkgjhsdflkjh
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT enable_cinder True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT cinder_file True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT cinder_size 20000
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT cinder_location /var/lib/cinder/cinder-volumes.lvm
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT dummy_int True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT this_node_is_the_controller True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_controller_hostname controller
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_controller_IP 172.16.10.250
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_port dummy2
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_IP 172.16.10.250
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_network 172.16.10.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_netmask 255.255.255.0
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT internalnet_gateway 172.16.10.1
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT iosv True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT csr1000v True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT iosxrv432 False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT iosxrv52 False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT iosxrv True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT nxosv True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vpagent True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT iosvl2 True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT asav True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT lxc_server True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT lxc_iperf True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT lxc_routem True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT lxc_ostinato True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT server True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vmm_mac True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vmm_win32 True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vmm_win64 True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT vmm_linux True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT virl_clients True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT ram_overcommit 2
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT web_editor True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT mitaka True
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT kilo False
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT libvirt_cpu_mode host-passthrough
-    become_user: virl
-  - command: crudini --inplace --set /etc/virl.ini DEFAULT neutron_bridge_flooding True
-    become_user: virl
-  - name: copy vinstall bootstrap wrapper script
-    template: src=files/virl/virl-bootstrap-wrapper dest=/home/virl/virl-bootstrap/virl-bootstrap-wrapper owner=virl group=virl mode=775
-    become_user: virl
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/tasks/03-virl-post-install.yaml b/resources/tools/testbed-setup/ansible/roles/virl/tasks/03-virl-post-install.yaml
deleted file mode 100644 (file)
index 58b70c9..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
----
-  - name: Add jenkins-in user
-    user: name=jenkins-in shell=/bin/bash comment="Jenkins user"
-  - name: Add jenkins-in user to sudoers
-    copy: src=files/sudoers_jenkins-in dest=/etc/sudoers.d/jenkins-in owner=root group=root mode=660
-  - name: Set Jenkins user authorized key
-    authorized_key: user=jenkins-in key="{{ lookup('file', '/home/testuser/.ssh/id_rsa.pub') }}"
-  - name: copy salt states for dnsmasq and nfs
-    synchronize: src=files/salt/ dest=/
-  - name: install NFS salt
-    shell: salt-call --local state.sls ckoester.nfs-server
-  - name: NFS symlink
-    shell: ln -s /nfs/scratch /scratch
-    args:
-      creates: /scratch
-  - name: Upate Nova CPU mode
-    ini_file: dest=/etc/nova/nova.conf section=libvirt option=cpu_mode value=host-passthrough
-  - name: Restart nova-compute service
-    service: name=nova-compute state=restarted
-  - name: Change listen interface in NTP settings
-    lineinfile: dest=/etc/ntp.conf state=present regexp='^interface listen 172.16.*' line='interface listen {{ ansible_default_ipv4["address"] }}'
-  - name: Restart NTP service
-    service: name=ntp state=restarted
-  - name: Permit SSH user environment
-    lineinfile: dest=/etc/ssh/sshd_config state=present regexp='PermitUserEnvironment.*' line='PermitUserEnvironment yes'
-  - name: Restart SSH daemon
-    service: name=ssh state=restarted
-  - name: clone csit git repository
-    git: repo=https://gerrit.fd.io/r/csit
-         dest=/home/jenkins-in/git/csit
-    become: jenkins-in
-  - name: Link testcase-infra directory
-    command: ln -sf /home/jenkins-in/git/csit/resources/tools/virl /home/jenkins-in/testcase-infra
-    args:
-      creates: /home/jenkins-in/testcase-infra
-    become: jenkins-in
-  - name: Create bin directory
-    file: path=/home/jenkins-in/bin state=directory mode=0755
-    become: jenkins-in
-  - name: Link start-testcase executable
-    command: ln -sf /home/jenkins-in/testcase-infra/bin/start-testcase /home/jenkins-in/bin/start-testcase
-    args:
-      creates: /home/jenkins-in/bin/start-testcase
-    become: jenkins-in
-  - name: Link stop-testcase executable
-    command: ln -sf /home/jenkins-in/testcase-infra/bin/stop-testcase /home/jenkins-in/bin/stop-testcase
-    args:
-      creates: /home/jenkins-in/bin/stop-testcase
-    become: jenkins-in
-  - name: Link start-testcase-DMM executable
-    command: ln -sf /home/jenkins-in/testcase-infra/bin/start-testcase-DMM /home/jenkins-in/bin/start-testcase-DMM
-    args:
-      creates: /home/jenkins-in/bin/start-testcase-DMM
-    become: jenkins-in
-  - name: Link kill-idle-testcases executable
-    command: ln -sf /home/jenkins-in/testcase-infra/bin/kill-idle-testcases /home/jenkins-in/bin/kill-idle-testcases
-    args:
-      creates: /home/jenkins-in/bin/kill-idle-testcases
-    become: jenkins-in
-  - name: Copy SSH private key
-    copy: src=files/virl/id_rsa_virl dest=/home/jenkins-in/.ssh/id_rsa_virl mode=600
-    become: jenkins-in
-  - name: Copy SSH public key
-    copy: src=files/virl/id_rsa_virl.pub dest=/home/jenkins-in/.ssh/id_rsa_virl.pub mode=644
-    become: jenkins-in
-  - name: Copy SSH environment
-    copy: src=files/virl/ssh_environment dest=/home/jenkins-in/.ssh/environment mode=644
-    become: jenkins-in
-  - name: Add ~/bin to path
-    lineinfile: dest=/home/jenkins-in/.bashrc state=present line='PATH=${HOME}/bin:$PATH'
-    become: jenkins-in
-  - name: Update own IP address in start script
-    shell: sed -i /home/jenkins-in/testcase-infra/bin/start-testcase -e 's/10.30.51.28/{{ ansible_default_ipv4["address"] }}/'
-    become: jenkins-in
-  - name: Add authorized key
-    lineinfile: dest=/home/jenkins-in/.ssh/authorized_keys line='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD4gderzsZyoxHULjuvPHoJuKnkaGrykqtuoqs/k1/jUdxitPoY5eX2cVYqww7MiUif7zLsiXbt5mHtyxAYCluDxAuIcy1xgSZY3MpmmSqDie4A/FdVfCUqCcpf3TZKsRP0an1MNrKIe0JFZV+uU889IDRQRdboGMs3+4cn5b9fOutpv71qwFVrTm9PZbqfQonrrN8Jp4Mz3XaZDpK22xwDAWhYOZ0eV6CJWquUgbYAHE6/HHMvd0zeJKaWZCXO/1tOGOj6cjgoViHqbnCtmYCjmv/ir0IglzbUdWdOqQY5YkhnPonveV48lVKrmBipqgbDezAUQD8wOQ7HttpYpKgt jenkins-in@tb4-virl'
-    become: jenkins-in
-# All of the below will fail if VIRL user/project already exist
-  - name: Create VIRL project
-    shell: virl_uwm_client project-edit --name tb4-virl --enabled True  -i 400 -r 1024000 -c 500
-    ignore_errors: true
-    become: virl
-#  - name: Delete VIRL project user
-#    shell: virl_uwm_client user-delete --name tb4-virl
-#    ignore_errors: true
-#  - name: Recreate VIRL project user
-#    shell: virl_uwm_client user-create --name tb4-virl --role admin --project tb4-virl --set-password Cisco1234
-#    ignore_errors: true
-  - name: Create VPP flavor
-    shell: virl_uwm_client flavor-create --name vPP --ram 4096 --vcpus 2 --disk 0
-    ignore_errors: true
-    become: virl
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/tasks/04-disk-image.yaml b/resources/tools/testbed-setup/ansible/roles/virl/tasks/04-disk-image.yaml
deleted file mode 100644 (file)
index 254c05e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
----
-  - name: Create server image directory
-    file: path=/home/virl/virl-server-image state=directory mode=0755
-    become: virl
-  - name: Copy UBUNTU server image
-    copy: src=/home/virl/virl-server-image/packer-csit-ubuntu-16.04.1_2017-10-21_2.0-qemu dest=/home/virl/virl-server-image/packer-csit-ubuntu-16.04.1_2017-10-21_2.0-qemu owner=virl group=virl mode=644
-    become: virl
-  - name: Copy CENTOS server image
-    copy: src=/home/virl/virl-server-image/packer-csit-centos-7.3-1611_2017-02-23_1.4-qemu dest=/home/virl/virl-server-image/packer-csit-centos-7.3-1611_2017-02-23_1.4-qemu owner=virl group=virl mode=644
-    become: virl
-  - name: Import UBUNTU server image into glance
-    shell: virl_uwm_client image-create --subtype server --version csit-ubuntu-16.04.1_2017-10-21_2.0 --image-on-server /home/virl/virl-server-image/packer-csit-ubuntu-16.04.1_2017-10-21_2.0-qemu
-    become: virl
-  - name: Import CENTOS server image into glance
-    shell: virl_uwm_client image-create --subtype server --version csit-centos-7.3-1611_2017-02-23_1.4 --image-on-server /home/virl/virl-server-image/packer-csit-centos-7.3-1611_2017-02-23_1.4-qemu
-    become: virl
-  - name: Create common directory
-    file: path=/nfs/common state=directory mode=0755
-  - name: Create Nested VM directory
-    file: path=/nfs/common/nested-vm state=directory mode=0755
-  - name: Copy Nested VM image
-    copy: src=/home/virl/virl-server-image/csit-nested-1.6.img dest=/nfs/common/nested-vm/csit-nested-1.6.img owner=virl group=virl mode=644
-  - name: NFS symlink
-    file:
-        src: /nfs/common/nested-vm-current.img.disabled
-        dest: /nfs/common/nested-vm/csit-nested-1.6.img
-        state: link
diff --git a/resources/tools/testbed-setup/ansible/roles/virl/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/virl/tasks/main.yaml
deleted file mode 100644 (file)
index 8bca04e..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
----
-- name: Interfaces file
-  template:
-    src: "files/interfaces_virl"
-    dest: "/etc/network/interfaces owner=root group=root mode=644"
-  tags: interfaces
-
-- name: Add VIRL user
-  user:
-    name: virl
-    shell: "/bin/bash"
-    comment: "VIRL user"
-    password: "$6$mJPlK5FKLar6$xxXPP0LRhC7T1yhHtym18Z3nKZweTtfTxzi1WpvVHJ0U/Em1UWcHqfMhRApFp0rsY9jHRuL6FfeFbKPN..uDK."
-  tags: users
-
-- name: Add VIRL user to sudoers
-  copy:
-    src: "files/sudoers_virl"
-    dest: "/etc/sudoers.d/virl owner=root group=root mode=660"
-  tags: sudoers
-
-- name: Add post up for additional address
-  copy:
-    src: "files/ifup"
-    dest: "/etc/network/if-up.d/virl owner=root group=root mode=755"
-  tags: interfaces
-
-- name: Set VIRL user authorized key
-  authorized_key:
-    user: virl
-    key: "{{ lookup('file', '/home/testuser/.ssh/id_rsa.pub') }}"
-  tags: users
-
-- name: Install bridge-utils
-  apt:
-    name: "bridge-utils"
-    state: "present"
-  tags: apt-install-bridge-utils
-
-- name: Old interface naming
-  command: "ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules"
-  tags: interfaces
-
-- name: Update init for old interface naming
-  command: "update-initramfs -u"
-  tags: interfaces
-
-- name: QEMU log garbage collector
-  cron:
-    minute: "0"
-    hour: "0"
-    name: "QEMU log garbage collector"
-    job: "find /var/log/libvirt/qemu -type f -mtime +14 -name 'instance*.log' -delete"
-  tags: cron
-
-- name: VPP deb package garbage collector
-  cron:
-    minute: "0"
-    hour: "0"
-    name: "VPP deb package garbage collector"
-    job: "find /tmp -type f -atime +14 -name '*.deb' -delete"
-  tags: cron
-
-- name: VPP rpm package garbage collector
-  cron:
-    minute: "0"
-    hour: "0"
-    name: "VPP rpm package garbage collector"
-    job: "find /tmp -type f -atime +14 -name '*.rpm' -delete"
-  tags: cron
-
-- name: NFS scratch dir garbage collector
-  cron:
-    minute: "0"
-    hour: "0"
-    name: "NFS scratch dir garbage collector"
-    job: "find /nfs/scratch/ -type d -mtime +1 -name 'session-*' -exec rm -r '{}' \\;"
-  tags: cron
index 1f59505..f2f68c6 100644 (file)
@@ -9,6 +9,3 @@
 
 - import_playbook: vpp_device.yaml
   tags: vpp-device
 
 - import_playbook: vpp_device.yaml
   tags: vpp-device
-
-#- import_playbook: virl.yaml
-#  tags: virl
diff --git a/resources/tools/testbed-setup/ansible/virl.yaml b/resources/tools/testbed-setup/ansible/virl.yaml
deleted file mode 100644 (file)
index 5e57d58..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file: virl.yaml
-
-- hosts: virl
-  remote_user: testuser
-  become: yes
-  become_user: root
-  roles:
-    - common
-    - virl