Skip to content
Snippets Groups Projects
Commit f2b0de18 authored by fejao's avatar fejao
Browse files

Merge branch 'Setting_molecule_01' into 'main'

Added molecule tests for 'test' role

See merge request !10
parents 36283add fec7a523
No related branches found
No related tags found
1 merge request!10Added molecule tests for 'test' role
Pipeline #37419 passed
image: python:3.10.15-bullseye
# image: python:3.10.15-bullseye
variables:
AUTHOR: fejao
......@@ -15,12 +15,14 @@ variables:
stages:
- syntax-check
- lint-tests
- molecule
###
### SYNTAX-CHECK
###
syntax-check-test:
syntax-test:
stage: syntax-check
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -29,8 +31,9 @@ syntax-check-test:
- ansible-playbook --syntax-check -i $INVENTORIES_PATH $PLAYBOOK_PATH_FOR_ROLE_TEST
allow_failure: false
syntax-check-dependencies:
syntax-dependencies:
stage: syntax-check
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -39,8 +42,9 @@ syntax-check-dependencies:
- ansible-playbook --syntax-check -i $INVENTORIES_PATH $PLAYBOOK_PATH_FOR_ROLE_DEPENDENCIES
allow_failure: false
syntax-check-clone-repositories:
syntax-clone-repositories:
stage: syntax-check
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -49,8 +53,9 @@ syntax-check-clone-repositories:
- ansible-playbook --syntax-check -i $INVENTORIES_PATH $PLAYBOOK_PATH_FOR_ROLE_CLONE_REPOSITORIES
allow_failure: false
syntax-check-docker-images:
syntax-docker-images:
stage: syntax-check
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -59,8 +64,9 @@ syntax-check-docker-images:
- ansible-playbook --syntax-check -i $INVENTORIES_PATH $PLAYBOOK_PATH_FOR_ROLE_DOCKER_IMAGES
allow_failure: false
syntax-check-docker-containers:
syntax-docker-containers:
stage: syntax-check
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -72,8 +78,9 @@ syntax-check-docker-containers:
###
### LINT-TESTS
###
role-test:
lint-test:
stage: lint-tests
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -82,8 +89,9 @@ role-test:
- ansible-lint $PLAYBOOK_PATH_FOR_ROLE_TEST
allow_failure: false
role-dependencies:
lint-dependencies:
stage: lint-tests
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -92,8 +100,9 @@ role-dependencies:
- ansible-lint $PLAYBOOK_PATH_FOR_ROLE_DEPENDENCIES
allow_failure: false
role-clone-repositories:
lint-clone-repositories:
stage: lint-tests
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -102,8 +111,9 @@ role-clone-repositories:
- ansible-lint $PLAYBOOK_PATH_FOR_ROLE_CLONE_REPOSITORIES
allow_failure: false
role-docker-images:
lint-docker-images:
stage: lint-tests
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -112,8 +122,9 @@ role-docker-images:
- ansible-lint $PLAYBOOK_PATH_FOR_ROLE_DOCKER_IMAGES
allow_failure: false
role-docker-containers:
lint-docker-containers:
stage: lint-tests
image: python:3.10.15-bullseye
before_script:
- apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
- pip3 install -r ci-cd/requirements.txt
......@@ -121,3 +132,41 @@ role-docker-containers:
- echo "Running ansible-lint tests at the role-> 'docker_containers'"
- ansible-lint $PLAYBOOK_PATH_FOR_ROLE_DOCKER_CONTAINERS
allow_failure: false
###
### molecule
###
# molecule-test:
# stage: molecule
# # image: docker:latest
# # image: docker:27.5.1-alpine3.21
# image: docker:27.5.1-dind
# before_script:
# - apk add --no-cache python3 py3-pip
# - rm /usr/lib/python*/EXTERNALLY-MANAGED
# - python3 -m ensurepip
# - pip3 install ansible ansible-lint molecule molecule-docker
# - pip3 install --user "molecule-plugins[docker]"
# script:
# - echo "Running ansible-lint tests at the role-> 'test'"
# - docker ps -a
# - cd roles/test
# - molecule test
# allow_failure: false
# molecule-test:
# stage: molecule
# # image: docker:latest
# image: docker:27.5.1-alpine3.21
# before_script:
# - apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/*
# - pip3 install -r ci-cd/requirements.txt
# - pip3 install --upgrade molecule molecule-docker
# # - python3 -m pip install --user "molecule-plugins[docker]
# - pip3 install --user "molecule-plugins[docker]"
# script:
# - echo "Running ansible-lint tests at the role-> 'test'"
# - cd roles/test
# - molecule test
# allow_failure: false
# test role
This is a ansible-role for testing your installed ansible.
## Requirements
To have ansible installed at your system.
## Role Variables
You should look around where the variables are setted. And figure it out from where the ouput comes
## Dependencies
This role have no dependency from any another role.
## Example Playbook
Here is an example for adding this role for your playbook for **restarting** the **c3infodesk-printer**. containers:
......@@ -27,10 +30,32 @@ And call the playbook as:
ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml
```
## Tests
Here are the tests made at **CI-CD** for this role.
The tests shuold be runned at the root directory from the repository.
### Syntax
```bash
ansible-playbook --syntax-check -i invenvories/hosts ci-cd/01_test.yml
```
### Lint
```bash
ansible-lint ci-cd/01_test.yml
```
### molecule
```bash
cd roles/test
molecule test
```
## License
MIT/BSD
## Author Information
![fejao logo](../../files/from_authors/fejao_logo_circle.png "fejao") [https://chaos.social/@fejao](https://chaos.social/@fejao)
......@@ -2,5 +2,4 @@
# defaults file for test
var_setted_everywhere: "answer from roles/test/defaults/main.yml"
var_setted_only_defaults_main: "MESSAGE FROM roles/test/defaults/main.yml"
---
- name: MOLECULE | Converge
hosts: all
roles:
- role: test
var_setted_only_group_vars: "group_vars_value"
var_setted_everywhere: "group_vars_value"
var_setted_only_host_vars: "host_vars_value"
var_setted_everywhere: "host_vars_value"
---
dependency:
name: galaxy
driver:
name: docker
platforms:
- name: instance
image: geerlingguy/docker-ubuntu2004-ansible:latest
# privileged: true
pre_build_image: true
provisioner:
name: ansible
lint:
name: ansible-lint
inventory:
group_vars:
example_servers_group:
var_setted_only_group_vars: "group_vars_value"
var_setted_everywhere: "group_vars_value"
host_vars:
instance:
var_setted_only_host_vars: "host_vars_value"
var_setted_everywhere: "host_vars_value"
verifier:
name: ansible
###
# lint:
# name: ansible-lint
###
# playbook: verify.yml
###
# Remove the 'playbooks' key and use 'playbooks' directly under 'verifier'
# playbooks:
# verify: verify.yml
###
# lint:
# name: flake8
---
- name: MOLECULE | Test role for debugging variables
hosts: all
tasks:
- name: MOLECULE | TESTS | Test parsed variable setted only at roles/test/defaults/main.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_defaults_main }}"
- name: MOLECULE | TESTS | Test parsed variable setted only at roles/test/vars/main.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_vars_main }}"
- name: MOLECULE | TESTS | Test parsed variable setted only at inventory/group_vars/example_servers_group.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_group_vars }}"
when: var_setted_only_group_vars is defined
- name: MOLECULE | TESTS | Test parsed variable setted only at inventory/host_vars/example_server.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_host_vars }}"
- name: MOLECULE | TESTS | Test parsed variable setted EVERYWHERE -> should come from roles/test/vars/main.yml
ansible.builtin.debug:
msg: "{{ var_setted_everywhere }}"
- name: MOLECULE | TESTS | List the root ('/') folder from the target to a register
ansible.builtin.command:
cmd: ls -hal /
register: ret_list_folder
changed_when: false
- name: MOLECULE | TESTS | Shows output from listing folder
ansible.builtin.debug:
msg: "{{ ret_list_folder }}"
---
# tasks file for test
# - import_tasks: test_task.yml
- name: Test parsed variable setted only at roles/test/defaults/main.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_defaults_main }}"
......@@ -14,6 +12,7 @@
- name: Test parsed variable setted only at inventory/group_vars/example_servers_group.yml
ansible.builtin.debug:
msg: "{{ var_setted_only_group_vars }}"
when: var_setted_only_group_vars is defined
- name: Test parsed variable setted only at inventory/host_vars/example_server.yml
ansible.builtin.debug:
......@@ -27,7 +26,7 @@
ansible.builtin.command:
cmd: ls -hal /
register: ret_list_folder
changed_when: ret_list_folder.rc != 0
changed_when: false
- name: Shows output from listing folder
ansible.builtin.debug:
......
......@@ -2,5 +2,4 @@
# vars file for test
var_setted_everywhere: "MESSAGE EVERYWHERE FROM roles/test/vars/main.yml"
var_setted_only_vars_main: "MESSAGE FROM roles/test/vars/main.yml"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment