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=bc7eb861dbb2e2d5682d319421c6061c4dff365a;hb=ba0d4b44c16a371f9fd8386121995ce81baa668a;hpb=bca7bcede75d4fa3713a2317b87820d4d3439b7b diff --git a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml index bc7eb861db..a9e9989cfe 100644 --- a/resources/tools/testbed-setup/playbooks/01-host-setup.yaml +++ b/resources/tools/testbed-setup/playbooks/01-host-setup.yaml @@ -9,18 +9,14 @@ 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 ttyS0 file - template: src=files/ttyS0 dest=/etc/init/ttyS0.conf owner=root group=root mode=644 - - name: start ttyS0 - service: name=ttyS0 state=started - 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 @@ -29,22 +25,68 @@ 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 qemu (as a workaround) - apt: name=qemu-system-x86 state=present + - 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 + lineinfile: dest=/etc/default/grub regexp=^GRUB_CMDLINE_LINUX= line=GRUB_CMDLINE_LINUX="\"isolcpus={{ isolcpus }} nohz_full={{ isolcpus }} rcu_nocbs={{ isolcpus }} intel_pstate=disable\"" + - name: update grub + command: update-grub + - name: Install python-dev + apt: name=python-dev state=present + - name: Install python-virtualenv + 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 @@ -52,28 +94,80 @@ - name: Disable IRQ load balancing copy: src=files/irqbalance dest=/etc/default/irqbalance owner=root group=root mode=0644 - name: Disable ondemand - shell: update-rc.d ondemand disable - - name: Install 4.2 kernel - apt: name=linux-generic-lts-xenial state=present + service: name=ondemand enabled=no + - name: Install cgroup-support + apt: name=cgroup-bin state=present + - name: Install zlib1g-dev + apt: name=zlib1g-dev state=present + - name: Copy Python requirements file + 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 tasks: - - name: Install zlib1g-dev - apt: name=zlib1g-dev state=present - name: Install unzip apt: name=unzip state=present - - name: pstate parameter - lineinfile: dest=/etc/default/grub regexp=^GRUB_CMDLINE_LINUX= line=GRUB_CMDLINE_LINUX="\"intel_pstate=disable\"" - - name: update grub - command: update-grub - hosts: sut remote_user: testuser sudo: yes tasks: - name: Install dkms apt: name=dkms state=present - - name: isolcpus and pstate parameter - lineinfile: dest=/etc/default/grub regexp=^GRUB_CMDLINE_LINUX= line=GRUB_CMDLINE_LINUX="\"isolcpus={{ isolcpus }} intel_pstate=disable\"" - - name: update grub - command: update-grub + - name: Install pkg-config + apt: name=pkg-config state=present + - name: Install libglib2.0-dev + apt: name=libglib2.0-dev state=present + - name: Install autoconf + 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 + 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