roles:
- role: cobbler
tags: cobbler
+ - role: docker
+ tags: docker
# 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:
- version: '1.11.0-00'
- repository: 'deb http://apt.kubernetes.io/ kubernetes-xenial main'
-
# TRex settings.
trex:
target_dir: '/opt'
--- /dev/null
+# Version options.
+docker_edition: 'ce'
+docker_version: '19.03.3'
+docker_apt_package: '5:{{ docker_version }}~3-0~{{ ansible_distribution | lower }}-{{ ansible_distribution_release }}'
+docker_apt_package_state: present
+
+# Service options.
+docker_service_state: started
+docker_service_enabled: true
+docker_restart_handler_state: restarted
+
+# Used only for Debian/Ubuntu. Switch 'stable' to 'edge' if needed.
+docker_apt_release_channel: 'edge'
+docker_apt_repository: 'deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}'
+docker_apt_repository_state: present
+
+# A list of users who will be added to the docker group.
+docker_users:
+ - 'testuser'
+
+# Proxy settings.
+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 }}'
--- /dev/null
+---
+# file roles/docker/handlers/main.yaml
+
+- name: Restart Docker
+ service:
+ name: 'docker'
+ state: '{{ docker_restart_handler_state }}'
+ tags: restart-docker
--- /dev/null
+---
+# file: roles/docker/tasks/main.yaml
+
+- name: Docker - Install distribution - release - machine prerequisites
+ include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
+ tags: install-docker
+
+- name: Docker - Create Service Directory
+ file:
+ path: '/etc/systemd/system/docker.service.d'
+ state: 'directory'
+ tags: install-docker
+
+- name: Docker - Setup 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'
+ when: >
+ proxy_env is defined and
+ proxy_env.http_proxy is defined
+ tags: install-docker
+
+- name: Docker - Setup HTTPS Proxy
+ template:
+ src: 'templates/docker.service.proxy.https'
+ dest: '/etc/systemd/system/docker.service.d/https-proxy.conf'
+ owner: 'root'
+ group: 'root'
+ mode: '0644'
+ when: >
+ proxy_env is defined and
+ proxy_env.https_proxy is defined
+ tags: install-docker
+
+- name: Docker - Reload systemd daemon and restart service
+ command: 'systemctl daemon-reload'
+ notify:
+ - 'Restart Docker'
+ when: >
+ proxy_env is defined and
+ proxy_env.http_proxy is defined
+ tags: install-docker
+
+- name: Docker - Set specific users to docker group
+ user:
+ name: '{{ item }}'
+ groups: 'docker'
+ append: True
+ with_items: '{{ docker_users }}'
+ when: docker_users
+ tags: install-docker
--- /dev/null
+---
+# file: roles/docker/tasks/ubuntu_bionic.yaml
+
+- name: Docker repository - Dependencies
+ apt:
+ name:
+ - 'apt-transport-https'
+ - 'ca-certificates'
+ - 'software-properties-common'
+ state: 'present'
+ cache_valid_time: 3600
+ install_recommends: False
+ tags: install-docker
+
+- name: Docker repository - Add an Apt signing key
+ apt_key:
+ url: 'https://download.docker.com/linux/ubuntu/gpg'
+ state: 'present'
+ tags: install-docker
+
+- name: Docker repository - Install APT repository
+ apt_repository:
+ repo: '{{ docker_apt_repository }}'
+ state: '{{ docker_apt_repository_state }}'
+ update_cache: True
+ tags: install-docker
+
+- name: Install Docker
+ apt:
+ name: 'docker-{{ docker_edition }}={{ docker_apt_package }}'
+ state: '{{ docker_apt_package_state }}'
+ force: True
+ tags: install-docker
--- /dev/null
+# Version options.
+kubernetes_version: '1.11.0-00'
+kubernetes_apt_package_state: present
+
+# Service options.
+kubernetes_service_state: started
+kubernetes_service_enabled: true
+kubernetes_restart_handler_state: restarted
+
+# APT options.
+kubernetes_apt_repository: 'deb http://apt.kubernetes.io/ kubernetes-xenial main'
+kubernetes_apt_repository_state: present
--- /dev/null
+---
+# file: roles/kubernetes/tasks/main.yaml
+
+- name: Kubernetes - Install distribution - release - machine prerequisites
+ include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
+ tags: install-kubernetes
+
+- name: Kubernetes - Apply kubelet parameter
+ lineinfile:
+ path: '/etc/default/kubelet'
+ state: 'present'
+ regexp: '^KUBELET_EXTRA_ARGS=*'
+ line: 'KUBELET_EXTRA_ARGS=--feature-gates HugePages=false'
+ tags: install-kubernetes
--- /dev/null
+---
+# file: roles/kubernetes/tasks/ubuntu_bionic.yaml
+
+- name: Kubernetes repository - Dependencies
+ apt:
+ name:
+ - 'apt-transport-https'
+ - 'ca-certificates'
+ - 'software-properties-common'
+ state: 'present'
+ cache_valid_time: 3600
+ install_recommends: False
+ tags: install-kubernetes
+
+- name: Kubernetes repository - Add an Apt signing key
+ apt_key:
+ url: 'https://packages.cloud.google.com/apt/doc/apt-key.gpg'
+ state: 'present'
+ tags: install-kubernetes
+
+- name: Kubernetes repository - Install APT repository
+ apt_repository:
+ repo: '{{ kubernetes_apt_repository }}'
+ state: '{{ kubernetes_apt_repository_state }}'
+ update_cache: True
+ tags: install-kubernetes
+
+- name: Kubernetes - Install
+ apt:
+ name:
+ - 'kubernetes-cni=0.6.0-00'
+ - 'kubeadm={{ kubernetes_version }}'
+ - 'kubectl={{ kubernetes_version }}'
+ - 'kubelet={{ kubernetes_version }}'
+ state: '{{ kubernetes_apt_package_state }}'
+ force: True
+ tags: install-kubernetes
---
-# file roles/tg_sut/handlers/main.yaml
-
-- name: Restart Docker
- service:
- name: 'docker'
- state: 'restarted'
- tags: restart-docker
+# file roles/performance_tuning/handlers/main.yaml
- name: Reboot server
reboot:
---
-# file: roles/tg_sut/tasks/aarch64.yaml
+# file: roles/performance_tuning/tasks/aarch64.yaml
- name: Configure {{ ansible_machine }} kernel parameters
lineinfile:
---
-# file: roles/tg_sut/tasks/main.yaml
+# file: roles/performance_tuning/tasks/main.yaml
- name: Install distribution - release - machine prerequisites
include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags: [ install-csit-dependencies, install-docker, install-kubernetes ]
+ tags: install-csit-dependencies
- name: Machine specifics
include_tasks: '{{ ansible_machine }}.yaml'
---
-# file: roles/tg_sut/tasks/turbo_boost.yaml
+# file: roles/performance_tuning/tasks/turbo_boost.yaml
- name: Turbo boost - Install msr-tools
apt:
--- /dev/null
+---
+# file: roles/performance_tuning/tasks/ubuntu_bionic.yaml
+
+- name: Install CSIT dependencies
+ apt:
+ name:
+ - 'cpufrequtils'
+ state: 'present'
+ cache_valid_time: 3600
+ install_recommends: False
+ tags: install-csit-dependencies
---
-# file: roles/tg_sut/tasks/x86_64.yaml
+# file: roles/performance_tuning/tasks/x86_64.yaml
- name: Configure {{ ansible_machine }} kernel parameters
lineinfile:
- name: Install CSIT dependencies
apt:
name:
- - 'cpufrequtils'
- 'gdb'
- 'libglib2.0-dev'
- 'libmbedcrypto1'
+++ /dev/null
----
-# file: roles/tg_sut/tasks/ubuntu_bionic.yaml
-
-- name: Install CSIT dependencies
- apt:
- name:
- - 'apt-transport-https'
- - 'ca-certificates'
- - 'software-properties-common'
- state: 'present'
- cache_valid_time: 3600
- install_recommends: False
- 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'
- tags: install-docker
-
-- name: Install Docker APT repository
- apt_repository:
- 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'
- force: yes
- tags: install-docker
-
-- name: Creates Docker service directory
- file:
- path: '/etc/systemd/system/docker.service.d'
- state: 'directory'
- tags: install-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: install-docker
-
-- name: Setup Docker https proxy
- template:
- 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: install-docker
-
-- name: Reload systemd daemon
- command: 'systemctl daemon-reload'
- notify: ['Restart Docker']
- when: (docker_register_systemd_service and
- docker_register_systemd_service is changed)
- tags: install-docker
-
-- name: Set specific users to docker group
- user:
- name: '{{ item }}'
- groups: 'docker'
- append: True
- with_items: '{{ docker_users }}'
- when: docker_users
- tags: install-docker
-
-- name: Add an Apt signing key, for Kubernetes repository
- apt_key:
- url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
- 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 Kubernetes
- apt:
- name:
- - 'kubernetes-cni=0.6.0-00'
- - 'kubeadm={{ kubernetes.version }}'
- - 'kubectl={{ kubernetes.version }}'
- - 'kubelet={{ kubernetes.version }}'
- state: 'present'
- force: yes
- tags: install-kubernetes
-
-- name: Apply kubelet parameter
- lineinfile:
- path: '/etc/default/kubelet'
- state: 'present'
- regexp: '^KUBELET_EXTRA_ARGS=*'
- line: 'KUBELET_EXTRA_ARGS=--feature-gates HugePages=false'
- tags: install-kubernetes
tags: common
- role: sut
tags: sut
- - role: tg_sut
- tags: tg_sut
+ - role: docker
+ tags: docker
+ - role: kubernetes
+ tags: kubernetes
+ - role: performance_tuning
+ tags: performance_tuning
- role: calibration
tags: calibration
tags: common
- role: tg
tags: tg
- - role: tg_sut
- tags: tg_sut
+ - role: docker
+ tags: docker
+ - role: performance_tuning
+ tags: performance_tuning
- role: calibration
tags: calibration
roles:
- role: common
tags: common
+ - role: docker
+ tags: docker
- role: vpp_device
tags: vpp_device