--- # file: csit/tasks/main.yml # TODO: Temporarily disabling due to Centos8 not having netplan. # Finding better solution via udev requires some work and testing. #- name: Upload config to rename network interfaces # copy: # src: 'files/99-vppdevice.yaml' # dest: '/etc/netplan/99-vppdevice.yaml' # owner: 'root' # group: 'root' # mode: 0644 #- name: Apply network config changes # command: '/usr/sbin/netplan apply' - name: Centos8 install epel repositories dnf: name: - 'epel-release' when: - ansible_distribution|lower == 'centos' - name: Centos8 enable epel repositories command: 'dnf config-manager --set-enabled PowerTools' when: - ansible_distribution|lower == 'centos' - name: Install required system tools and packages package: name: "{{ csit_packages | join(',') }}" state: 'latest' update_cache: 'yes' - name: Adjust number of hugepages sysctl: name: 'vm.nr_hugepages' value: '512' state: 'present' sysctl_file: '/etc/sysctl.d/90-csit.conf' reload: 'yes' - name: Install docker-ce command: | curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh - name: "Add user for running tests: {{ csit.test_user.name }}" user: name: '{{ csit.test_user.name }}' password: '{{ csit.test_user.password }}' home: '{{ csit.test_user.home }}' shell: '{{ csit.test_user.shell }}' - name: "Allow passwordless sudo for user: {{ csit.test_user.name }}" lineinfile: path: '/etc/sudoers.d/{{ csit.test_user.name }}' line: '{{ csit.test_user.name }} ALL=(ALL) NOPASSWD:ALL' create: 'yes' - name: Add vagrant user to docker group user: name: 'vagrant' groups: - 'docker' - name: Reload groups for current session command: '/usr/bin/newgrp docker' - name: Load required kernel modules modprobe: name: '{{ item }}' state: 'present' with_items: - vfio-pci - name: Enable required kernel modules on boot lineinfile: path: '/etc/modules' line: '{{ item }}' create: 'yes' state: 'present' insertafter: EOF with_items: - vfio-pci - name: Clone CSIT repository become_user: vagrant git: repo: '{{ csit.repository.url }}' dest: '{{ csit.home }}' accept_hostkey: yes version: '{{ csit.repository.version }}' - name: Install and update pip and virtualenv pip: name: - 'virtualenv' state: 'latest' - name: Prepare python virtual environmant for CSIT become_user: vagrant command: '/usr/bin/virtualenv --python=/usr/bin/python3 {{ csit.home }}/env' args: chdir: '{{ csit.home }}' creates: '{{ csit.home }}/env/bin/activate' - name: Install python dependencies (from {{ csit.home }}/requirements.txt) become_user: vagrant shell: | source '{{ csit.home }}/env/bin/activate' && pip3 install --timeout 300 -r '{{ csit.home }}/requirements.txt' args: executable: '/bin/bash' - name: Load csit docker image from local drive if it exists (/vagrant/csit-sut.tar) shell: | if [ -z "$(docker images -q `cat {{ csit.home }}/VPP_DEVICE_IMAGE`)" ] && [ -e /vagrant/csit-sut.tar ]; then docker load -i /vagrant/csit-sut.tar; fi; ignore_errors: yes