Add IRQ pinning to ansible host-setup
[csit.git] / resources / tools / testbed-setup / playbooks / 01-host-setup.yaml
index 21cef81..3486df5 100644 (file)
@@ -3,6 +3,8 @@
   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/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
@@ -29,6 +27,8 @@
     apt: name=crudini state=present
   - name: install expect
     apt: name=expect state=present
+  - name: install qemu
+    apt: name=qemu-system-x86 state=present
 - hosts: virl
   remote_user: testuser
   sudo: yes
     copy: src=files/sudoers_virl dest=/etc/sudoers.d/virl owner=root group=root mode=660
   - 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
 - hosts: tg:sut
   remote_user: testuser
   sudo: yes
   tasks:
+  - 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 cpufrequtils
     apt: name=cpufrequtils state=present
   - name: Set cpufrequtils defaults
     copy: src=files/cpufrequtils dest=/etc/default/cpufrequtils owner=root group=root mode=0644
   - name: Disable IRQ load balancing
     copy: src=files/irqbalance dest=/etc/default/irqbalance owner=root group=root mode=0644
+  - name: Pinning of IRQs
+    command: for l in `ls /proc/irq`; do echo 1 | sudo tee /proc/irq/$l/smp_affinity; done
   - 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
 - 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: Disable 80-vpp.conf
+    command: ln -s /dev/null /etc/sysctl.d/80-vpp.conf