aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2019-02-20 12:19:07 +0000
committerPeter Mikus <pmikus@cisco.com>2019-02-22 16:05:38 +0000
commit53153e114017d193cdf9b88f21f4eac31bad72b7 (patch)
tree6cbe624d67ec51733928ea4a54a50d613b4b94c5
parent138c1b1f56a2b59afeafb92379e955b9baf95e7a (diff)
CSIT-1437 Create portable host-setup document
- 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>
-rw-r--r--README.md2
-rw-r--r--resources/libraries/bash/function/setup.sh2
-rw-r--r--resources/tools/testbed-setup/README.md160
-rw-r--r--resources/tools/testbed-setup/README.rst246
-rw-r--r--resources/tools/testbed-setup/ansible/group_vars/all.yaml5
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml42
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.16.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.17.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.18.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.20.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.21.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.22.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.24.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.25.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.26.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.28.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.29.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.30.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.36.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.37.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.44.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.45.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.46.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.47.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.48.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.49.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.50.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.51.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.52.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.53.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.54.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.55.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.56.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.57.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.58.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.59.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml (renamed from resources/tools/testbed-setup/ansible/host_vars/10.30.51.60.yaml)0
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts (renamed from resources/tools/testbed-setup/ansible/production)5
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml42
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml6
-rw-r--r--resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts11
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml18
-rw-r--r--resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml51
-rw-r--r--resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml123
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu.yaml11
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml9
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/defaults/main.yaml28
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt63
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml186
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.j234
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.http4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.https4
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/interfaces_virl17
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/nova_os_ip.patch12
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/requirements.txt13
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt.b6427
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt/etc/salt/minion.d/testlocal.conf3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server.sls3
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/configure.sls31
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/files/exports12
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/install.sls5
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_jenkins-in1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_virl1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/ttyS010
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl.pub1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/virl/ifup25
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/virl/ssh_environment1
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/files/virl/virl-bootstrap-wrapper58
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/tasks/02-virl-bootstrap.yaml216
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/tasks/03-virl-post-install.yaml92
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/tasks/04-disk-image.yaml27
-rw-r--r--resources/tools/testbed-setup/ansible/roles/virl/tasks/main.yaml78
-rw-r--r--resources/tools/testbed-setup/ansible/site.yaml3
-rw-r--r--resources/tools/testbed-setup/ansible/virl.yaml10
77 files changed, 533 insertions, 1199 deletions
diff --git a/README.md b/README.md
index f878980dfb..27ae7cb5ee 100644
--- a/README.md
+++ b/README.md
@@ -179,7 +179,7 @@ describing local VPP Device functional testing.
### 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.
diff --git a/resources/libraries/bash/function/setup.sh b/resources/libraries/bash/function/setup.sh
index 0b863aa17a..e481c539b4 100644
--- a/resources/libraries/bash/function/setup.sh
+++ b/resources/libraries/bash/function/setup.sh
@@ -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' \
- --inventory production site.yaml --limit ${HOST} || {
+ --inventory lf_inventory site.yaml --limit ${HOST} || {
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
index b4f376b96e..0000000000
--- a/resources/tools/testbed-setup/README.md
+++ /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
index 0000000000..738dffad49
--- /dev/null
+++ b/resources/tools/testbed-setup/README.rst
@@ -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
index c646e06d24..0000000000
--- a/resources/tools/testbed-setup/ansible/group_vars/all.yaml
+++ /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
index 0000000000..c464ad8da2
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/group_vars/all.yaml
@@ -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 }}'
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.16.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
index 25401e33f3..25401e33f3 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.16.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.16.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.17.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
index ac3f9fa310..ac3f9fa310 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.17.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.17.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.18.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
index e96ed37d89..e96ed37d89 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.18.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.18.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.20.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
index 91eb9fc9ca..91eb9fc9ca 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.20.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.20.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.21.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
index 84a72542e9..84a72542e9 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.21.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.21.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.22.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
index 5d7aaa5bee..5d7aaa5bee 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.22.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.22.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.24.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
index 88e5148dfb..88e5148dfb 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.24.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.24.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.25.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
index 144e449b4a..144e449b4a 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.25.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.25.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.26.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
index d860ef216d..d860ef216d 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.26.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.26.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.28.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
index 11665983fa..11665983fa 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.28.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.28.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.29.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
index 4ab6fd1116..4ab6fd1116 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.29.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.29.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.30.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
index ab5d222188..ab5d222188 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.30.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.30.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.36.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
index e405b8064d..e405b8064d 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.36.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.36.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.37.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
index ece3a752aa..ece3a752aa 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.37.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.37.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.44.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
index bdaeed5407..bdaeed5407 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.44.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.44.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.45.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
index d12c763516..d12c763516 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.45.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.45.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.46.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
index 8e38586f7f..8e38586f7f 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.46.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.46.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.47.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
index a3d05730da..a3d05730da 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.47.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.47.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.48.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
index f6a77e8be3..f6a77e8be3 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.48.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.48.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.49.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
index 9aad58a00b..9aad58a00b 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.49.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.49.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.50.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
index 55b8655e8c..55b8655e8c 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.50.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.50.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.51.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
index 42eeea814d..42eeea814d 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.51.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.51.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.52.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
index 7eb994a8a2..7eb994a8a2 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.52.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.52.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.53.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
index 938bcecd30..938bcecd30 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.53.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.53.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.54.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
index 9a3de32d3d..9a3de32d3d 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.54.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.54.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.55.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
index 2014e01dea..2014e01dea 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.55.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.55.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.56.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
index 1d926f56a9..1d926f56a9 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.56.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.56.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.57.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
index e5bddf33f8..e5bddf33f8 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.57.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.57.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.58.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
index 0e854fdeb0..0e854fdeb0 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.58.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.58.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.59.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
index 4647606980..4647606980 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.59.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.59.yaml
diff --git a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.60.yaml b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
index 27f5b45645..27f5b45645 100644
--- a/resources/tools/testbed-setup/ansible/host_vars/10.30.51.60.yaml
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/host_vars/10.30.51.60.yaml
diff --git a/resources/tools/testbed-setup/ansible/production b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
index 5397d319db..d2d67981b0 100644
--- a/resources/tools/testbed-setup/ansible/production
+++ b/resources/tools/testbed-setup/ansible/inventories/lf_inventory/hosts
@@ -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
-# 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:
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
index 0000000000..8ffac218c3
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/group_vars/all.yaml
@@ -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
index 0000000000..6cefdb4cc3
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/host_vars/1.1.1.1.yaml
@@ -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
index 0000000000..da5d7f1634
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/inventories/sample_inventory/hosts
@@ -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
diff --git a/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
index 38d8188be8..1481536034 100644
--- a/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/common/tasks/main.yaml
@@ -1,6 +1,14 @@
---
# 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'
@@ -14,7 +22,7 @@
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
@@ -44,3 +52,11 @@
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
diff --git a/resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml b/resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml
index ff47ffc656..ae606cd494 100644
--- a/resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/common/tasks/ubuntu.yaml
@@ -15,44 +15,17 @@
tags: copy-apt-sources
when: ansible_machine == 'x86_64'
-- name: Install python-apt
+- name: Install CSIT dependencies
apt:
- name: 'python-apt'
+ name: '{{ item }}'
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
diff --git a/resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml b/resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml
index 824f0926b5..69ca52916e 100644
--- a/resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/sut/tasks/ubuntu.yaml
@@ -1,106 +1,23 @@
---
# 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
diff --git a/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
index 54001a7272..9fa19b5b0f 100644
--- a/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/tg/tasks/main.yaml
@@ -2,5 +2,5 @@
# 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
index 0000000000..acb4f9802e
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu.yaml
@@ -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
index 54a04685e6..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg/tasks/ubuntu_x86_64.yaml
+++ /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
index 3a6f68fb8b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg_sut/defaults/main.yaml
+++ /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 }}"
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config b/resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config
index 2f34cfbaca..2602f93b4f 100644
--- a/resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config
+++ b/resources/tools/testbed-setup/ansible/roles/tg_sut/files/netplan_config
@@ -6,6 +6,7 @@ network:
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:
- addresses: [ 199.204.44.24, 199.204.47.54 ]
+ addresses: {{ dns_servers }}
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt b/resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt
index 11caf5d563..0ce17e2b47 100644
--- a/resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt
+++ b/resources/tools/testbed-setup/ansible/roles/tg_sut/files/requirements.txt
@@ -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
+enum34==1.1.2
+ipaddress==1.0.16
+paramiko==1.16.0
+pexpect==4.6.0
pycrypto==2.6.1
+pykwalify==1.5.0
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
diff --git a/resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml b/resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml
index 8604185aa2..2f75ae545d 100644
--- a/resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml
+++ b/resources/tools/testbed-setup/ansible/roles/tg_sut/tasks/ubuntu.yaml
@@ -1,178 +1,110 @@
---
# file: roles/tg_sut/tasks/ubuntu.yaml
-- name: Install python-dev
+- name: Install CSIT dependencies
apt:
- name: 'python-dev'
+ name: '{{ item }}'
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:
- - "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
- state: "present"
+ state: 'present'
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:
- 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
-- name: Remove Upstart docker config file
+- name: Creates Docker service directory
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:
- 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
+ when: proxy_env is defined and proxy_env.https_proxy is defined
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
-- name: Set specific users to "docker" group
+- name: Set specific users to docker group
user:
- name: "{{ item }}"
- groups: "docker"
+ name: '{{ item }}'
+ groups: 'docker'
append: True
- with_items: "{{ docker_users }}"
+ with_items: '{{ docker_users }}'
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
- state: "present"
+ state: 'present'
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
- install_recommends: False
- cache_valid_time: "{{ apt_cache_time }}"
tags: install-kubernetes
-- name: Install kubelet
+- name: Install Kubernetes
apt:
- name: "kubelet={{ kubernetes_apt_package_name }}"
- state: "present"
+ name: '{{ item }}={{ kubernetes_apt_package_name }}'
+ state: 'present'
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
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
index 26a1bcf372..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.j2
+++ /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
index 0000000000..73ceba3870
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.http
@@ -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
index 0000000000..1c2097eb9d
--- /dev/null
+++ b/resources/tools/testbed-setup/ansible/roles/tg_sut/templates/docker.service.proxy.https
@@ -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
index 25ea35a0c5..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/interfaces_virl
+++ /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
index a943dc9b25..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/nova_os_ip.patch
+++ /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
index 11caf5d563..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/requirements.txt
+++ /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
index 5e76a8583b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt.b64
+++ /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
index fce910cc0b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/etc/salt/minion.d/testlocal.conf
+++ /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
index bf3e47f9b3..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server.sls
+++ /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
index ce362a38b2..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/configure.sls
+++ /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
index 23802be486..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/files/exports
+++ /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
index 0f136346f8..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/salt/srv/salt/ckoester/nfs-server/install.sls
+++ /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
index 1797c2c636..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_jenkins-in
+++ /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
index e0cf48ac10..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/sudoers_virl
+++ /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
index 0ed8550190..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/ttyS0
+++ /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
index b4c3de745b..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl
+++ /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
index 0ef508c8a1..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/id_rsa_virl.pub
+++ /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
index a4a743ac63..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ifup
+++ /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
index 5ec594d181..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/ssh_environment
+++ /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
index dc7ead804d..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/files/virl/virl-bootstrap-wrapper
+++ /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
index 9ffb40caaf..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/tasks/02-virl-bootstrap.yaml
+++ /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
index 58b70c9173..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/tasks/03-virl-post-install.yaml
+++ /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
index 254c05e709..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/tasks/04-disk-image.yaml
+++ /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
index 8bca04e163..0000000000
--- a/resources/tools/testbed-setup/ansible/roles/virl/tasks/main.yaml
+++ /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
diff --git a/resources/tools/testbed-setup/ansible/site.yaml b/resources/tools/testbed-setup/ansible/site.yaml
index 1f59505168..f2f68c6bb7 100644
--- a/resources/tools/testbed-setup/ansible/site.yaml
+++ b/resources/tools/testbed-setup/ansible/site.yaml
@@ -9,6 +9,3 @@
- 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
index 5e57d585a4..0000000000
--- a/resources/tools/testbed-setup/ansible/virl.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
----
-# file: virl.yaml
-
-- hosts: virl
- remote_user: testuser
- become: yes
- become_user: root
- roles:
- - common
- - virl