summaryrefslogtreecommitdiffstats
path: root/ansible
diff options
context:
space:
mode:
Diffstat (limited to 'ansible')
-rw-r--r--ansible/roles/application/defaults/main.yml2
-rw-r--r--ansible/roles/application/molecule/default/tests/test_default.py3
-rw-r--r--ansible/roles/application/tasks/install.yml1
-rw-r--r--ansible/roles/certificates/molecule/default/playbook.yml9
-rw-r--r--ansible/roles/certificates/molecule/default/prepare.yml5
-rw-r--r--ansible/roles/dns/.yamllint11
l---------ansible/roles/dns/molecule/default/group_vars1
-rw-r--r--ansible/roles/dns/molecule/default/molecule.yml36
-rw-r--r--ansible/roles/dns/molecule/default/playbook.yml5
-rw-r--r--ansible/roles/dns/molecule/default/prepare.yml10
-rw-r--r--ansible/roles/docker/handlers/main.yml3
-rw-r--r--ansible/roles/docker/molecule/default/molecule.yml6
-rw-r--r--ansible/roles/docker/molecule/default/prepare.yml4
-rw-r--r--ansible/roles/nexus/defaults/main.yml1
-rw-r--r--ansible/roles/nexus/tasks/install.yml2
-rw-r--r--ansible/roles/package-repository/tasks/main.yml1
-rw-r--r--ansible/roles/rancher/molecule/default/cleanup.yml14
-rw-r--r--ansible/roles/rancher/molecule/default/molecule.yml9
-rw-r--r--ansible/roles/rancher/molecule/default/playbook.yml2
-rw-r--r--ansible/roles/rancher/molecule/default/prepare.yml6
-rw-r--r--ansible/roles/rancher/tasks/rancher_agent.yml1
-rw-r--r--ansible/test/play-infrastructure/.yamllint11
-rw-r--r--ansible/test/play-infrastructure/molecule/default/molecule.yml71
-rw-r--r--ansible/test/play-infrastructure/molecule/default/playbook.yml11
-rw-r--r--ansible/test/play-infrastructure/molecule/default/prepare.yml25
-rw-r--r--ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py11
-rw-r--r--ansible/test/play-infrastructure/molecule/default/vars.yml24
-rw-r--r--ansible/test/roles/prepare-common/tasks/main.yml33
l---------ansible/test/roles/prepare-dns/defaults1
-rw-r--r--ansible/test/roles/prepare-dns/tasks/main.yml22
-rw-r--r--ansible/test/roles/prepare-docker-dind/defaults/main.yml3
-rw-r--r--ansible/test/roles/prepare-docker-dind/handlers/main.yml6
-rw-r--r--ansible/test/roles/prepare-docker-dind/tasks/main.yml23
-rw-r--r--ansible/test/roles/prepare-docker-dind/vars/main.yml3
-rw-r--r--ansible/test/roles/prepare-nexus/tasks/main.yml70
-rw-r--r--ansible/test/roles/prepare-nexus/vars/main.yml5
-rw-r--r--ansible/test/roles/prepare-nginx/tasks/main.yml28
-rw-r--r--ansible/test/roles/prepare-package-repository/tasks/main.yml26
-rw-r--r--ansible/test/roles/prepare-package-repository/vars/main.yml12
-rw-r--r--ansible/test/roles/prepare-vncserver/tasks/main.yml21
40 files changed, 469 insertions, 69 deletions
diff --git a/ansible/roles/application/defaults/main.yml b/ansible/roles/application/defaults/main.yml
index dec17601..84fffeca 100644
--- a/ansible/roles/application/defaults/main.yml
+++ b/ansible/roles/application/defaults/main.yml
@@ -1,6 +1,8 @@
---
helm_repository_name: local
helm_repository_url: http://127.0.0.1:8879
+helm_extra_install_options:
+ - { opt: '--timeout 1800'}
# Override file generation for Helm application can be customized by any role
# given by user and found by ansible from roles_path.
# By default override file is generated by 'application-override' role that is
diff --git a/ansible/roles/application/molecule/default/tests/test_default.py b/ansible/roles/application/molecule/default/tests/test_default.py
index 3e0cbb42..5edceff3 100644
--- a/ansible/roles/application/molecule/default/tests/test_default.py
+++ b/ansible/roles/application/molecule/default/tests/test_default.py
@@ -16,7 +16,8 @@ serve
repo list
repo add local http://127.0.0.1:8879
install --name moleculetestapp local/moleculetestapp --namespace \
-moleculetestapp -f /opt/moleculetestapp/override.yaml"""
+moleculetestapp -f /opt/moleculetestapp/override.yaml \
+--timeout 1800"""
assert fc == expected_content
diff --git a/ansible/roles/application/tasks/install.yml b/ansible/roles/application/tasks/install.yml
index cdc7ced0..bdf6e511 100644
--- a/ansible/roles/application/tasks/install.yml
+++ b/ansible/roles/application/tasks/install.yml
@@ -72,6 +72,7 @@
{{ helm_repository_name }}/{{ app_helm_chart_name }}
--namespace {{ app_kubernetes_namespace }}
{{ '' if app_skip_helm_override else '-f ' + app_helm_override_file }}
+ {% for arg in helm_extra_install_options %} {{ arg.opt }} {% endfor %}
changed_when: true # when executed its a changed type of action
register: helm_install
failed_when: helm_install.stderr
diff --git a/ansible/roles/certificates/molecule/default/playbook.yml b/ansible/roles/certificates/molecule/default/playbook.yml
index 5dcd42ee..13583ebb 100644
--- a/ansible/roles/certificates/molecule/default/playbook.yml
+++ b/ansible/roles/certificates/molecule/default/playbook.yml
@@ -1,14 +1,17 @@
---
- name: Infra
hosts: infrastructure
+ handlers:
+ - name: Restart Docker
+ debug: msg="Docker restart called"
roles:
- certificates
- - docker # docker role needed here just because of docker restart handler
- name: Kube
hosts: kubernetes
- roles:
- - docker # docker role needed here just because of docker restart handler
+ handlers:
+ - name: Restart Docker
+ debug: msg="Docker restart called"
tasks:
- include_role:
name: certificates
diff --git a/ansible/roles/certificates/molecule/default/prepare.yml b/ansible/roles/certificates/molecule/default/prepare.yml
deleted file mode 100644
index 8df759c9..00000000
--- a/ansible/roles/certificates/molecule/default/prepare.yml
+++ /dev/null
@@ -1,5 +0,0 @@
----
-- name: Prepare infra
- hosts: all
- roles:
- - prepare-docker
diff --git a/ansible/roles/dns/.yamllint b/ansible/roles/dns/.yamllint
new file mode 100644
index 00000000..ad0be760
--- /dev/null
+++ b/ansible/roles/dns/.yamllint
@@ -0,0 +1,11 @@
+extends: default
+
+rules:
+ braces:
+ max-spaces-inside: 1
+ level: error
+ brackets:
+ max-spaces-inside: 1
+ level: error
+ line-length: disable
+ truthy: disable
diff --git a/ansible/roles/dns/molecule/default/group_vars b/ansible/roles/dns/molecule/default/group_vars
new file mode 120000
index 00000000..e04e088f
--- /dev/null
+++ b/ansible/roles/dns/molecule/default/group_vars
@@ -0,0 +1 @@
+../../../../group_vars/ \ No newline at end of file
diff --git a/ansible/roles/dns/molecule/default/molecule.yml b/ansible/roles/dns/molecule/default/molecule.yml
new file mode 100644
index 00000000..00c63ca9
--- /dev/null
+++ b/ansible/roles/dns/molecule/default/molecule.yml
@@ -0,0 +1,36 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: True
+ privileged: true
+ override_command: False
+ groups:
+ - infrastructure
+ volumes:
+ - /var/lib/docker
+provisioner:
+ name: ansible
+ lint:
+ name: ansible-lint
+ env:
+ ANSIBLE_ROLES_PATH: ../../../../test/roles
+ ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ host_vars:
+ infrastructure-server:
+ cluster_ip: 127.0.0.1
+ group_vars:
+ all:
+ app_name: onap
+ app_data_path: "/opt/{{ app_name }}"
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/roles/dns/molecule/default/playbook.yml b/ansible/roles/dns/molecule/default/playbook.yml
new file mode 100644
index 00000000..8754f8b0
--- /dev/null
+++ b/ansible/roles/dns/molecule/default/playbook.yml
@@ -0,0 +1,5 @@
+---
+- name: Converge
+ hosts: all
+ roles:
+ - role: dns
diff --git a/ansible/roles/dns/molecule/default/prepare.yml b/ansible/roles/dns/molecule/default/prepare.yml
new file mode 100644
index 00000000..f29f089e
--- /dev/null
+++ b/ansible/roles/dns/molecule/default/prepare.yml
@@ -0,0 +1,10 @@
+---
+- name: Get localhost facts
+ hosts: localhost
+
+- name: Setup all hosts for playing dns role
+ hosts: all
+ roles:
+ - prepare-common
+ - prepare-docker-dind
+ - prepare-dns
diff --git a/ansible/roles/docker/handlers/main.yml b/ansible/roles/docker/handlers/main.yml
index 9916a81b..de4a52ac 100644
--- a/ansible/roles/docker/handlers/main.yml
+++ b/ansible/roles/docker/handlers/main.yml
@@ -1,6 +1,3 @@
---
- name: Restart Docker
import_tasks: docker_restart.yml
- when:
- - ansible_env.container is defined
- - ansible_env.container != 'docker'
diff --git a/ansible/roles/docker/molecule/default/molecule.yml b/ansible/roles/docker/molecule/default/molecule.yml
index d1f67d75..1e800ee9 100644
--- a/ansible/roles/docker/molecule/default/molecule.yml
+++ b/ansible/roles/docker/molecule/default/molecule.yml
@@ -13,9 +13,11 @@ platforms:
command: ${MOLECULE_DOCKER_COMMAND:-""}
groups:
- infrastructure
+ networks:
+ - name: docker_install
+ purge_networks: true
volumes:
- - /sys/fs/cgroup:/sys/fs/cgroup:ro
- - /dev:/dev:ro
+ - /var/lib/docker
provisioner:
name: ansible
lint:
diff --git a/ansible/roles/docker/molecule/default/prepare.yml b/ansible/roles/docker/molecule/default/prepare.yml
index 8df759c9..6bdde697 100644
--- a/ansible/roles/docker/molecule/default/prepare.yml
+++ b/ansible/roles/docker/molecule/default/prepare.yml
@@ -2,4 +2,6 @@
- name: Prepare infra
hosts: all
roles:
- - prepare-docker
+ - role: prepare-docker-dind
+ vars:
+ start_docker: false
diff --git a/ansible/roles/nexus/defaults/main.yml b/ansible/roles/nexus/defaults/main.yml
index 92089e9a..8f636979 100644
--- a/ansible/roles/nexus/defaults/main.yml
+++ b/ansible/roles/nexus/defaults/main.yml
@@ -1,4 +1,5 @@
---
+nexus_come_up_wait_retries: 30
# By default prepopulated nexus binary blob used.
populate_nexus: false
# By dafault no additional docker images pushed to nexus at runtime
diff --git a/ansible/roles/nexus/tasks/install.yml b/ansible/roles/nexus/tasks/install.yml
index f8de5e95..c88e5855 100644
--- a/ansible/roles/nexus/tasks/install.yml
+++ b/ansible/roles/nexus/tasks/install.yml
@@ -36,7 +36,7 @@
password: admin123
force_basic_auth: true
method: GET
- retries: 30
+ retries: "{{ nexus_come_up_wait_retries }}"
delay: 10
register: nexus_wait
until: not nexus_wait.failed
diff --git a/ansible/roles/package-repository/tasks/main.yml b/ansible/roles/package-repository/tasks/main.yml
index 599e1052..7dc2e76f 100644
--- a/ansible/roles/package-repository/tasks/main.yml
+++ b/ansible/roles/package-repository/tasks/main.yml
@@ -5,6 +5,7 @@
path: /etc/resolv.conf
state: present
insertbefore: BOF
+ unsafe_writes: true
- name: Disable all OS default repositories
block:
diff --git a/ansible/roles/rancher/molecule/default/cleanup.yml b/ansible/roles/rancher/molecule/default/cleanup.yml
deleted file mode 100644
index d4bf4495..00000000
--- a/ansible/roles/rancher/molecule/default/cleanup.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- name: Cleanup host
- hosts: localhost
- roles:
- - role: cleanup-containers
- vars:
- container_list:
- - rancher-agent
- - rancher-server
- - role: cleanup-rancher
- vars:
- container_list_by_label:
- - { 'label':'io.rancher.project.name', 'value':'healthcheck'}
- - { 'label':'io.rancher.project.name', 'value':'kubernetes'}
diff --git a/ansible/roles/rancher/molecule/default/molecule.yml b/ansible/roles/rancher/molecule/default/molecule.yml
index b21325d4..eb7f8c19 100644
--- a/ansible/roles/rancher/molecule/default/molecule.yml
+++ b/ansible/roles/rancher/molecule/default/molecule.yml
@@ -13,8 +13,7 @@ platforms:
override_command: false
restart_policy: unless-stopped
volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - /var/lib/rancher:/var/lib/rancher:ro
+ - /var/lib/docker
groups:
- infrastructure
networks:
@@ -27,12 +26,14 @@ platforms:
override_command: false
restart_policy: unless-stopped
volumes:
- - /var/run/docker.sock:/var/run/docker.sock
- - /var/lib/rancher:/var/lib/rancher:ro
+ - /var/lib/docker
+ - /var/lib/rancher
+ - /var/lib/kubelet
groups:
- kubernetes
networks:
- name: rancher
+ purge_networks: true
provisioner:
name: ansible
diff --git a/ansible/roles/rancher/molecule/default/playbook.yml b/ansible/roles/rancher/molecule/default/playbook.yml
index e0ef086c..e4a7151e 100644
--- a/ansible/roles/rancher/molecule/default/playbook.yml
+++ b/ansible/roles/rancher/molecule/default/playbook.yml
@@ -2,7 +2,7 @@
- name: Converge rancher master
hosts: infrastructure
roles:
- - prepare-common # molecule specific role needed here to populate cluster_ip
+ - prepare-common
- role: rancher
vars:
mode: server
diff --git a/ansible/roles/rancher/molecule/default/prepare.yml b/ansible/roles/rancher/molecule/default/prepare.yml
index 90159c6c..d70cda43 100644
--- a/ansible/roles/rancher/molecule/default/prepare.yml
+++ b/ansible/roles/rancher/molecule/default/prepare.yml
@@ -1,5 +1,5 @@
---
-- name: Prepare kube nodes
- hosts: kubernetes
+- name: Prepare hosts
+ hosts: all
roles:
- - prepare-docker
+ - prepare-docker-dind
diff --git a/ansible/roles/rancher/tasks/rancher_agent.yml b/ansible/roles/rancher/tasks/rancher_agent.yml
index 091503c7..73d9a642 100644
--- a/ansible/roles/rancher/tasks/rancher_agent.yml
+++ b/ansible/roles/rancher/tasks/rancher_agent.yml
@@ -7,7 +7,6 @@
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/var/lib/rancher:/var/lib/rancher"
- auto_remove: true
privileged: true
vars:
server_hostvars: "{{ hostvars[groups.infrastructure.0] }}"
diff --git a/ansible/test/play-infrastructure/.yamllint b/ansible/test/play-infrastructure/.yamllint
new file mode 100644
index 00000000..ad0be760
--- /dev/null
+++ b/ansible/test/play-infrastructure/.yamllint
@@ -0,0 +1,11 @@
+extends: default
+
+rules:
+ braces:
+ max-spaces-inside: 1
+ level: error
+ brackets:
+ max-spaces-inside: 1
+ level: error
+ line-length: disable
+ truthy: disable
diff --git a/ansible/test/play-infrastructure/molecule/default/molecule.yml b/ansible/test/play-infrastructure/molecule/default/molecule.yml
new file mode 100644
index 00000000..c4b7901a
--- /dev/null
+++ b/ansible/test/play-infrastructure/molecule/default/molecule.yml
@@ -0,0 +1,71 @@
+---
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint:
+ name: yamllint
+platforms:
+ - name: infrastructure-server
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ volumes:
+ - /var/lib/docker
+ - /opt/onap
+ groups:
+ - infrastructure
+ networks:
+ - name: infrastructure-net
+ purge_networks: true
+
+ - name: kubernetes-node-1
+ image: molecule-${PREBUILD_PLATFORM_DISTRO:-centos}:${PREBUILD_DISTRO_VERSION:-centos7.6}
+ pre_build_image: true
+ privileged: true
+ override_command: false
+ restart_policy: unless-stopped
+ volumes:
+ - /var/lib/docker
+ groups:
+ - kubernetes
+ networks:
+ - name: infrastructure-net
+ purge_networks: true
+
+provisioner:
+ name: ansible
+ env:
+ ANSIBLE_ROLES_PATH: ../../../roles:../../../../roles/
+ ANSIBLE_LIBRARY: ../../../../library
+ inventory:
+ links:
+ group_vars: ../../../../group_vars
+ lint:
+ name: ansible-lint
+scenario:
+ name: default
+ test_sequence:
+ - lint
+ - cleanup
+ - destroy
+ - dependency
+ - syntax
+ - create
+ - prepare
+ - converge
+ # - idempotence
+ # --> Action: 'idempotence'
+ # ERROR: Idempotence test failed because of the following tasks:
+ # * [infrastructure-server -> 10.0.2.15] => certificates : Generate an OpenSSL CSR.
+ # * [infrastructure-server -> 10.0.2.15] => certificates : Generate root CA certificate
+ - side_effect
+ - verify
+ - cleanup
+ - destroy
+verifier:
+ name: testinfra
+ lint:
+ name: flake8
diff --git a/ansible/test/play-infrastructure/molecule/default/playbook.yml b/ansible/test/play-infrastructure/molecule/default/playbook.yml
new file mode 100644
index 00000000..26b3c15d
--- /dev/null
+++ b/ansible/test/play-infrastructure/molecule/default/playbook.yml
@@ -0,0 +1,11 @@
+---
+- name: Common setup for all hosts
+ hosts: all
+ tasks:
+ - name: Set cluster_ip variable
+ set_fact:
+ cluster_ip: "{{ ansible_default_ipv4.address }}"
+ - name: Include variables
+ include_vars: vars.yml
+
+- import_playbook: ../../../../infrastructure.yml
diff --git a/ansible/test/play-infrastructure/molecule/default/prepare.yml b/ansible/test/play-infrastructure/molecule/default/prepare.yml
new file mode 100644
index 00000000..86e25b48
--- /dev/null
+++ b/ansible/test/play-infrastructure/molecule/default/prepare.yml
@@ -0,0 +1,25 @@
+---
+- name: Prepare infra
+ hosts: infrastructure
+ roles:
+ - prepare-package-repository
+ - prepare-chrony
+ - prepare-vncserver
+ - prepare-nginx
+ - prepare-nexus
+ - prepare-dns
+ - prepare-firewall
+ vars_files:
+ - vars.yml
+ - ../../../../roles/nginx/defaults/main.yml
+ - ../../../../roles/vncserver/defaults/main.yml
+ - ../../../../roles/nexus/defaults/main.yml
+ - ../../../../roles/dns/defaults/main.yml
+
+- name: Prepare kubernetes
+ hosts: kubernetes
+ roles:
+ - prepare-chrony
+ - prepare-firewall
+ vars_files:
+ - vars.yml
diff --git a/ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py b/ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py
new file mode 100644
index 00000000..c0ce64f2
--- /dev/null
+++ b/ansible/test/play-infrastructure/molecule/default/tests/test_nodes.py
@@ -0,0 +1,11 @@
+import os
+
+import testinfra.utils.ansible_runner
+
+testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
+ os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('kubernetes')
+
+
+def test_registry_access(host):
+ assert host.run(
+ 'docker login -u admin -p admin123 nexus3.onap.org:10001').rc == 0
diff --git a/ansible/test/play-infrastructure/molecule/default/vars.yml b/ansible/test/play-infrastructure/molecule/default/vars.yml
new file mode 100644
index 00000000..e91eadb2
--- /dev/null
+++ b/ansible/test/play-infrastructure/molecule/default/vars.yml
@@ -0,0 +1,24 @@
+---
+vnc_passwd: molecule
+certificates:
+ organization_name: Molecule Testers
+ state_or_province_name: Finland
+ country_name: FI
+ locality_name: Tampere
+app_name: onap
+app_data_path: "/opt/{{ app_name }}"
+
+nexus_come_up_wait_retries: 60
+populate_nexus: true # Different from default, molecule tests also nexus's configure.yml
+
+molecule_test_registry: nexus3.onap.org:10001
+# Different from default i.e. also additional images population is tested with molecule
+runtime_images:
+ busybox:
+ registry: "{{ molecule_test_registry }}"
+ path: "/onap/components/busybox"
+ tag: "latest"
+ aaionap-haproxy:
+ registry: "{{ molecule_test_registry }}"
+ path: "/onap/components/aaionap/haproxy"
+ tag: "1.2.4"
diff --git a/ansible/test/roles/prepare-common/tasks/main.yml b/ansible/test/roles/prepare-common/tasks/main.yml
index 11dcbe71..909d58c9 100644
--- a/ansible/test/roles/prepare-common/tasks/main.yml
+++ b/ansible/test/roles/prepare-common/tasks/main.yml
@@ -1,31 +1,4 @@
---
-- name: Fetch docker host ip
- block:
- - name: Get docker host ip to access host where container running (as dood)
- shell: |
- set -o pipefail
- ip route | awk '/default/ { print $3 }'
- args:
- executable: /bin/bash
- register: ip
- changed_when: false
-
- - name: "set docker host ip {{ ip.stdout }} for cluster_ip"
- set_fact:
- cluster_ip: "{{ ip.stdout }}"
- when: inventory_hostname != 'localhost'
-
-- name: Set fact for localhost OS
- block:
- - name: set localhost fact
- set_fact:
- localhost_ansible_os_family: "{{ hostvars['localhost'].ansible_os_family }}"
-
- - name: debug
- debug:
- var: localhost_ansible_os_family
- when: hostvars['localhost'].ansible_os_family is defined
-
-- name: debug
- debug:
- var: ansible_os_family \ No newline at end of file
+- name: "Set cluster_ip fact"
+ set_fact:
+ cluster_ip: "{{ ansible_default_ipv4.address }}"
diff --git a/ansible/test/roles/prepare-dns/defaults b/ansible/test/roles/prepare-dns/defaults
new file mode 120000
index 00000000..aad47092
--- /dev/null
+++ b/ansible/test/roles/prepare-dns/defaults
@@ -0,0 +1 @@
+../../../roles/dns/defaults \ No newline at end of file
diff --git a/ansible/test/roles/prepare-dns/tasks/main.yml b/ansible/test/roles/prepare-dns/tasks/main.yml
new file mode 100644
index 00000000..7907f868
--- /dev/null
+++ b/ansible/test/roles/prepare-dns/tasks/main.yml
@@ -0,0 +1,22 @@
+---
+- name: "Create needed dirs for dns role"
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: "u+rw,g+wx,o+rwx"
+ recurse: true
+ loop:
+ - "{{ app_data_path }}/cfg"
+ - "{{ infra_images_path }}"
+
+- name: Download and archive dnsmasq docker image for the dns role to use
+ delegate_to: localhost
+ docker_image:
+ name: andyshinn/dnsmasq
+ tag: 2.76
+ archive_path: /tmp/dnsmasq.tar
+
+- name: Copy dnsmasq image to node
+ copy:
+ src: /tmp/dnsmasq.tar
+ dest: "{{ infra_images_path }}/{{ dns_server_image_tar }}"
diff --git a/ansible/test/roles/prepare-docker-dind/defaults/main.yml b/ansible/test/roles/prepare-docker-dind/defaults/main.yml
new file mode 100644
index 00000000..2489014e
--- /dev/null
+++ b/ansible/test/roles/prepare-docker-dind/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+# Variable specifying if we should install docker, or only prepare for it
+start_docker: true
diff --git a/ansible/test/roles/prepare-docker-dind/handlers/main.yml b/ansible/test/roles/prepare-docker-dind/handlers/main.yml
new file mode 100644
index 00000000..cfea7733
--- /dev/null
+++ b/ansible/test/roles/prepare-docker-dind/handlers/main.yml
@@ -0,0 +1,6 @@
+- name: Restart docker
+ service:
+ name: docker
+ enabled: true
+ state: restarted
+ when: start_docker == true
diff --git a/ansible/test/roles/prepare-docker-dind/tasks/main.yml b/ansible/test/roles/prepare-docker-dind/tasks/main.yml
new file mode 100644
index 00000000..3e109e87
--- /dev/null
+++ b/ansible/test/roles/prepare-docker-dind/tasks/main.yml
@@ -0,0 +1,23 @@
+---
+# Needed because host system has all mounts by default to shared, and
+# some things may depend on mounts being shared if we run docker inside
+# test env.
+- name: "Make all mounts shared"
+ command: "mount --make-rshared /"
+ args:
+ warn: false
+
+- name: "Enable docker repository"
+ yum_repository:
+ name: "Docker"
+ description: Docker-ce repository
+ enabled: yes
+ baseurl: "https://download.docker.com/linux/centos/7/$basearch/stable"
+ gpgcheck: yes
+ gpgkey: https://download.docker.com/linux/centos/gpg
+
+- name: "Install docker"
+ package:
+ name: "docker-ce-{{ docker_version }}"
+ state: present
+ notify: Restart docker
diff --git a/ansible/test/roles/prepare-docker-dind/vars/main.yml b/ansible/test/roles/prepare-docker-dind/vars/main.yml
new file mode 100644
index 00000000..950fb921
--- /dev/null
+++ b/ansible/test/roles/prepare-docker-dind/vars/main.yml
@@ -0,0 +1,3 @@
+---
+#The version of docker to install
+docker_version: 18.09.5
diff --git a/ansible/test/roles/prepare-nexus/tasks/main.yml b/ansible/test/roles/prepare-nexus/tasks/main.yml
new file mode 100644
index 00000000..4ef40f5e
--- /dev/null
+++ b/ansible/test/roles/prepare-nexus/tasks/main.yml
@@ -0,0 +1,70 @@
+---
+- name: Add nexus simulation hosts to /etc/hosts
+ lineinfile:
+ regexp: "^{{ ansible_default_ipv4.address | regex_escape() }} {{ etc_hosts | join(' ') | regex_escape() }}$"
+ line: "{{ ansible_default_ipv4.address }} {{ etc_hosts | join(' ') }}"
+ insertafter: EOF
+ path: /etc/hosts
+ unsafe_writes: true
+
+- name: "Create needed dirs for nexus role"
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: "u+rw,g+wx,o+rwx"
+ recurse: true
+ loop:
+ - "{{ app_data_path }}/nexus_data"
+ - "{{ infra_images_path }}"
+ - "{{ aux_data_path }}"
+
+- name: Download and archive nexus docker image for the nexus role to use
+ delegate_to: localhost
+ docker_image:
+ name: "{{ nexus3_image }}"
+ archive_path: /tmp/nexus.tar
+
+- name: Download and tag additional (busybox) docker image for the nexus role to populate into
+ delegate_to: localhost
+ docker_image:
+ name: busybox
+ tag: latest
+ repository: nexus3.onap.org:10001/onap/components/busybox
+
+- name: Save busybox image
+ delegate_to: localhost
+ docker_image:
+ name: nexus3.onap.org:10001/onap/components/busybox
+ tag: latest
+ pull: false
+ archive_path: /tmp/busybox.tar
+
+- name: Download and tag additional (aaionap/haproxy) docker image for the nexus role to populate into nexus
+ delegate_to: localhost
+ docker_image:
+ name: aaionap/haproxy
+ tag: 1.2.4
+ repository: nexus3.onap.org:10001/onap/components/aaionap/haproxy
+
+- name: Save haproxy image
+ delegate_to: localhost
+ docker_image:
+ name: nexus3.onap.org:10001/onap/components/aaionap/haproxy
+ tag: 1.2.4
+ pull: false
+ archive_path: /tmp/haproxy.tar
+
+- name: Copy nexus image to node
+ copy:
+ src: /tmp/nexus.tar
+ dest: "{{ infra_images_path }}/{{ nexus3_image_tar }}"
+
+- name: Copy busybox image to node
+ copy:
+ src: /tmp/busybox.tar
+ dest: "{{ aux_data_path }}/busybox.tar"
+
+- name: Copy haproxy image to node
+ copy:
+ src: /tmp/haproxy.tar
+ dest: "{{ aux_data_path }}/aaionap-haproxy.tar"
diff --git a/ansible/test/roles/prepare-nexus/vars/main.yml b/ansible/test/roles/prepare-nexus/vars/main.yml
new file mode 100644
index 00000000..d2ee3548
--- /dev/null
+++ b/ansible/test/roles/prepare-nexus/vars/main.yml
@@ -0,0 +1,5 @@
+---
+# Hosts to be added to /etc/hosts file.
+etc_hosts:
+ - nexus.infrastructure-server
+ - nexus3.onap.org
diff --git a/ansible/test/roles/prepare-nginx/tasks/main.yml b/ansible/test/roles/prepare-nginx/tasks/main.yml
new file mode 100644
index 00000000..3cd93990
--- /dev/null
+++ b/ansible/test/roles/prepare-nginx/tasks/main.yml
@@ -0,0 +1,28 @@
+---
+- name: "Create needed dirs for nginx role"
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: "u+rw,g+wx,o+rwx"
+ recurse: true
+ loop:
+ - "{{ infra_images_path }}"
+
+- name: Build nginx docker image
+ delegate_to: localhost
+ docker_image:
+ path: ../../../../../build/creating_data/create_nginx_image/
+ name: own_nginx
+ tag: 2.0.0
+
+- name: Archive nginx docker image for the nginx role to use
+ delegate_to: localhost
+ docker_image:
+ name: own_nginx
+ tag: 2.0.0
+ archive_path: /tmp/nginx.tar
+
+- name: Copy nginx image to node
+ copy:
+ src: /tmp/nginx.tar
+ dest: "{{ infra_images_path }}/{{ nginx_server_image_tar }}"
diff --git a/ansible/test/roles/prepare-package-repository/tasks/main.yml b/ansible/test/roles/prepare-package-repository/tasks/main.yml
new file mode 100644
index 00000000..66f81d6d
--- /dev/null
+++ b/ansible/test/roles/prepare-package-repository/tasks/main.yml
@@ -0,0 +1,26 @@
+---
+- name: Add Docker-CE repo
+ yum_repository:
+ name: docker-ce
+ description: Docker-ce YUM repo
+ baseurl: https://download.docker.com/linux/centos/7/x86_64/stable/
+ gpgcheck: true
+ gpgkey: https://download.docker.com/linux/centos/gpg
+
+- name: Install createrepo
+ yum:
+ name: createrepo
+ state: present
+
+- name: "Ensure {{ rhel_pkg_dir }} exists"
+ file:
+ path: "{{ rhel_pkg_dir }}"
+ state: directory
+
+- name: Download rpm packages
+ command: "yumdownloader --destdir={{ rhel_pkg_dir }} --resolve {{ packages | join(' ') }}"
+
+- name: Index repository
+ command: "createrepo {{ rhel_pkg_dir }}"
+ args:
+ creates: "{{ rhel_pkg_dir }}/repodata"
diff --git a/ansible/test/roles/prepare-package-repository/vars/main.yml b/ansible/test/roles/prepare-package-repository/vars/main.yml
new file mode 100644
index 00000000..80944284
--- /dev/null
+++ b/ansible/test/roles/prepare-package-repository/vars/main.yml
@@ -0,0 +1,12 @@
+---
+rhel_pkg_dir: "{{ app_data_path }}/pkg/rhel"
+packages:
+- "docker-ce-18.09.5"
+- container-selinux
+- docker-ce-cli
+- containerd.io
+- python-jsonpointer
+- python-docker-py
+- python-docker-pycreds
+- python-ipaddress
+- python-websocket-client
diff --git a/ansible/test/roles/prepare-vncserver/tasks/main.yml b/ansible/test/roles/prepare-vncserver/tasks/main.yml
new file mode 100644
index 00000000..cb7a5f8a
--- /dev/null
+++ b/ansible/test/roles/prepare-vncserver/tasks/main.yml
@@ -0,0 +1,21 @@
+---
+- name: "Create needed dirs for vncserver role"
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: "u+rw,g+wx,o+rwx"
+ recurse: true
+ loop:
+ - "{{ infra_images_path }}"
+
+- name: Download and archive vncserver docker image for the vncserver role to use
+ delegate_to: localhost
+ docker_image:
+ name: "{{ vnc_server_image }}"
+ state: present
+ archive_path: /tmp/vncserver.tar
+
+- name: Copy vnc server image to node
+ copy:
+ src: /tmp/vncserver.tar
+ dest: "{{ infra_images_path }}/{{ vnc_server_image_tar }}"