X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Ftestbed-setup%2Fplaybooks%2F01-host-setup.yaml;h=a9e9989cfe9b5e7434777d139de318c9d9a2a06a;hp=7158ce2428d7ab508f8b2bb6f0dc5ae7a4f2ecbc;hb=ba0d4b44c16a371f9fd8386121995ce81baa668a;hpb=a7568a2eabf0872d25260c14ec084cb3d5ffb0f3 diff --git a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml index 7158ce2428..a9e9989cfe 100644 --- a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml +++ b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml @@ -3,22 +3,20 @@ remote_user: testuser sudo: yes tasks: - - name: install python-apt - raw: apt-get update && apt-get install python-apt -y -q - name: copy sudoers file copy: src=files/sudoers dest=/etc/sudoers.d/testuser owner=root group=root mode=660 - name: copy hosts file template: src=files/hosts dest=/etc/hosts owner=root group=root mode=644 - name: copy hostname file template: src=files/hostname dest=/etc/hostname owner=root group=root mode=644 - - name: interfaces file - template: src=files/interfaces dest=/etc/network/interfaces owner=root group=root mode=644 - name: copy grub file template: src=files/grub dest=/etc/default/grub owner=root group=root mode=644 - name: update grub command: update-grub - name: copy apt sources file template: src=files/apt-sources.list dest=/etc/apt/sources.list + - name: install python-apt + raw: apt-get update && apt-get install python-apt -y -q - name: update repositories apt: update_cache=yes - name: install git @@ -27,22 +25,54 @@ apt: name=crudini state=present - name: install expect apt: name=expect state=present + - name: install socat + apt: name=socat state=present - name: install qemu apt: name=qemu-system-x86 state=present + - name: Install packages to allow apt to use a repository over HTTPS + apt: name=apt-transport-https state=present - hosts: virl remote_user: testuser sudo: yes tasks: + - name: interfaces file + template: src=files/interfaces_virl dest=/etc/network/interfaces owner=root group=root mode=644 - name: Add VIRL user user: name=virl shell=/bin/bash comment="VIRL user" password="$6$mJPlK5FKLar6$xxXPP0LRhC7T1yhHtym18Z3nKZweTtfTxzi1WpvVHJ0U/Em1UWcHqfMhRApFp0rsY9jHRuL6FfeFbKPN..uDK." - name: Add VIRL user to sudoers copy: src=files/sudoers_virl dest=/etc/sudoers.d/virl owner=root group=root mode=660 + - name: Add post up for additional address + copy: src=files/ifup dest=/etc/network/if-up.d/virl owner=root group=root mode=755 - name: Set VIRL user authorized key authorized_key: user=virl key="{{ lookup('file', '/home/testuser/.ssh/id_rsa.pub') }}" + - name: install bridge-utils + apt: name=bridge-utils state=present + - name: Old interface naming + command: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules + - name: update init for old interface naming + command: update-initramfs -u + - 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" + - 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" + - 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" + - 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 '{}' \\;" - hosts: tg:sut remote_user: testuser sudo: yes tasks: + - name: interfaces file + template: src=files/interfaces_physical dest=/etc/network/interfaces owner=root group=root mode=644 - name: copy sysctl file template: src=files/90-csit dest=/etc/sysctl.d/90-csit.conf owner=root group=root mode=644 - name: isolcpus and pstate parameter @@ -55,6 +85,8 @@ apt: name=python-virtualenv state=present - name: Install python pip apt: name=python-pip state=present + - name: Install libpcap-dev + apt: name=libpcap-dev state=present - name: Install cpufrequtils apt: name=cpufrequtils state=present - name: Set cpufrequtils defaults @@ -71,6 +103,21 @@ copy: src=files/requirements.txt dest=/tmp/requirements.txt - name: Install PIP requirements pip: requirements=/tmp/requirements.txt + - name: IRQ pinning + lineinfile: + dest: /etc/rc.local + insertbefore: '^exit 0' + line: 'for l in `ls /proc/irq`; do echo 1 | sudo tee /proc/irq/$l/smp_affinity; done' + - name: RCU pinning + lineinfile: + dest: /etc/rc.local + insertbefore: '^exit 0' + line: 'for i in `pgrep rcu[^c]` ; do sudo taskset -pc 0 $i ; done' + - name: CPU writeback mask + lineinfile: + dest: /etc/rc.local + insertbefore: '^exit 0' + line: 'echo 1 | sudo tee /sys/bus/workqueue/devices/writeback/cpumask' - hosts: tg remote_user: testuser sudo: yes @@ -91,5 +138,36 @@ apt: name=autoconf state=present - name: Install libtool apt: name=libtool state=present + - name: Install screen + apt: name=screen state=present + - name: Install lxc + apt: name=lxc state=present - name: Disable 80-vpp.conf - command: ln -s /dev/null /etc/sysctl.d/80-vpp.conf + file: + src: /dev/null + dest: /etc/sysctl.d/80-vpp.conf + state: link + - name: Install java + apt: name=openjdk-8-jdk state=present + - name: Add Docker's official GPG key + apt_key: + url: "https://download.docker.com/linux/ubuntu/gpg" + state: present + - name: Add Docker's stable repository + apt_repository: + repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable + state: present + - name: Install Docker CE + apt: name=docker-ce state=present + - name: Add Kubernetes's official GPG key + apt_key: + url: "https://packages.cloud.google.com/apt/doc/apt-key.gpg" + state: present + - name: Add Kubernetes's stable repository + apt_repository: + repo: deb http://apt.kubernetes.io/ kubernetes-xenial main + state: present + - name: Install Kubernetes kubelet + apt: name=kubelet state=present + - name: Install Kubernetes kubeadm + apt: name=kubeadm state=present