diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7111d1b8e6d7a52bfb2b7d249cdb98df35a1938f..fdf05019197e8b473d25e84079d2b3f98c8c73d3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,5 @@ +--- + # image: python:3.10.15-bullseye ### @@ -7,246 +9,31 @@ variables: AUTHOR: fejao IMAGE_NAME_SYNTAX: python:3.10.15-bullseye IMAGE_NAME_LINT: python:3.10.15-bullseye + IMAGE_NAME_MOLECULE: python:3.10.15-bullseye # IMAGE_NAME_MOLECULE: geerlingguy/docker-ubuntu2204-ansible:latest - IMAGE_NAME_MOLECULE: docker:dind + ### PATHS INVENTORIES_PATH: "inventories/hosts" - PLAYBOOK_PATH_FOR_ROLE_TEST: "ci-cd/01_test.yml" - PLAYBOOK_PATH_FOR_ROLE_DEPENDENCIES: "ci-cd/02_dependencies.yml" - PLAYBOOK_PATH_FOR_ROLE_CLONE_REPOSITORIES: "ci-cd/03_clone_repositories.yml" - PLAYBOOK_PATH_FOR_ROLE_DOCKER_IMAGES: "ci-cd/04_docker_images.yml" - PLAYBOOK_PATH_FOR_ROLE_DOCKER_CONTAINERS: "ci-cd/05_docker_containers.yml" - PLAYBOOK_PATH_FOR_ROLE_OH_MY_BASH: "ci-cd/06_oh_my_bash.yml" + PATH_PLAYBOOK_FOR_ROLE_TEST: "ci-cd/playbooks/01_test.yml" + PATH_PLAYBOOK_FOR_ROLE_DEPENDENCIES: "ci-cd/playbooks/02_dependencies.yml" + PATH_PLAYBOOK_FOR_ROLE_CLONE_REPOSITORIES: "ci-cd/playbooks/03_clone_repositories.yml" + PATH_PLAYBOOK_FOR_ROLE_DOCKER_IMAGES: "ci-cd/playbooks/04_docker_images.yml" + PATH_PLAYBOOK_FOR_ROLE_DOCKER_CONTAINERS: "ci-cd/playbooks/05_docker_containers.yml" + PATH_PLAYBOOK_FOR_ROLE_OH_MY_BASH: "ci-cd/playbooks/06_oh_my_bash.yml" ### ### STAGES ### stages: - - syntax-check + - before-role-trigger + - syntax-checks - lint-tests - molecule ### -### SCRIPTS -### -.before_syntax_n_lint: &before_syntax_n_lint - - 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 - ### Correct the permissions on the build environment directory. - ### See https://github.com/ansible/ansible/pull/42142/files - - chmod 700 /builds/fejao/c3infodesk-deployment - -.run_syntax_check: &run_syntax_check - - ansible-playbook --syntax-check -i $INVENTORIES_PATH $ROLE_PATH - -.run_lint: &run_lint - - ansible-lint $ROLE_PATH - -### -### STAGE-SYNTAX-CHECK -### -syntax-test: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_TEST - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'test'" - - *run_syntax_check - allow_failure: false - -syntax-dependencies: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DEPENDENCIES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'dependencies'" - - *run_syntax_check - allow_failure: false - -syntax-clone-repositories: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_CLONE_REPOSITORIES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'clone_repositories'" - - *run_syntax_check - allow_failure: false - -syntax-docker-images: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DOCKER_IMAGES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'docker_images'" - - *run_syntax_check - allow_failure: false - -syntax-docker-containers: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DOCKER_CONTAINERS - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'docker_containers'" - - *run_syntax_check - allow_failure: false - -syntax-oh-my-bash: - stage: syntax-check - image: $IMAGE_NAME_SYNTAX - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_OH_MY_BASH - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-playbook --syntax-check tests at the role-> 'docker_containers'" - - *run_syntax_check - allow_failure: false - +### TEMPLATES ### -### STAGE-LINT-TESTS -### -lint-test: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_TEST - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'test'" - - *run_lint - allow_failure: false - -lint-dependencies: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DEPENDENCIES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'dependencies'" - - *run_lint - allow_failure: false - -lint-clone-repositories: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_CLONE_REPOSITORIES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'clone_repositories'" - - *run_lint - allow_failure: false - -lint-docker-images: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DOCKER_IMAGES - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'docker_images'" - - *run_lint - allow_failure: false - -lint-docker-containers: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_DOCKER_CONTAINERS - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'docker_containers'" - - *run_lint - allow_failure: false - -lint-oh-my-bash: - stage: lint-tests - image: $IMAGE_NAME_LINT - variables: - ROLE_PATH: $PLAYBOOK_PATH_FOR_ROLE_OH_MY_BASH - before_script: - - *before_syntax_n_lint - script: - - echo "Running ansible-lint tests at the role-> 'docker_containers'" - - *run_lint - allow_failure: false - - -### -### STAGE-MOLECULE --> At the moment, running DIND (docker in docker) at this instance is disable :( -### -# molecule-test: -# stage: molecule -# image: $IMAGE_NAME_MOLECULE -# ### AVAILABLE TAGS -# # https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html#machine-types-available-for-linux---x86-64 -# tags: -# - saas-linux-small-amd64 -# # 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 molecule 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 -# # image: docker:27.5.1-dind -# # image: geerlingguy/docker-ubuntu2204-ansible:latest -# image: $IMAGE_NAME_MOLECULE -# 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 +include: + # - local: ci-cd/templates/trigger-pipeline.yml + - local: ci-cd/templates/syntax-checks.yml + - local: ci-cd/templates/lint-tests.yml + - local: ci-cd/templates/molecule.yml diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000000000000000000000000000000000..bff688b1b1694d5dbac3335b2453aaa4de564a3f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "roles/c3infodesk-deployment-role-test"] + path = roles/c3infodesk-deployment-role-test + url = git@git.cccv.de:fejao/c3infodesk-deployment-role-test.git diff --git a/ci-cd/01_test.yml b/ci-cd/playbooks/01_test.yml similarity index 66% rename from ci-cd/01_test.yml rename to ci-cd/playbooks/01_test.yml index eb8a83f2b53520967da4ad4d6647bf459d2b5043..dc440872a410a85fb42523ce5d82ace55500e4b7 100644 --- a/ci-cd/01_test.yml +++ b/ci-cd/playbooks/01_test.yml @@ -5,4 +5,5 @@ hosts: - example_servers_group roles: - - roles/test + # - roles/test + - roles/c3infodesk-deployment-role-test diff --git a/ci-cd/02_dependencies.yml b/ci-cd/playbooks/02_dependencies.yml similarity index 100% rename from ci-cd/02_dependencies.yml rename to ci-cd/playbooks/02_dependencies.yml diff --git a/ci-cd/03_clone_repositories.yml b/ci-cd/playbooks/03_clone_repositories.yml similarity index 100% rename from ci-cd/03_clone_repositories.yml rename to ci-cd/playbooks/03_clone_repositories.yml diff --git a/ci-cd/04_docker_images.yml b/ci-cd/playbooks/04_docker_images.yml similarity index 100% rename from ci-cd/04_docker_images.yml rename to ci-cd/playbooks/04_docker_images.yml diff --git a/ci-cd/05_docker_containers.yml b/ci-cd/playbooks/05_docker_containers.yml similarity index 100% rename from ci-cd/05_docker_containers.yml rename to ci-cd/playbooks/05_docker_containers.yml diff --git a/ci-cd/06_oh_my_bash.yml b/ci-cd/playbooks/06_oh_my_bash.yml similarity index 100% rename from ci-cd/06_oh_my_bash.yml rename to ci-cd/playbooks/06_oh_my_bash.yml diff --git a/ci-cd/python_requirements/requirements_syntax_n_lint.txt b/ci-cd/python_requirements/requirements_syntax_n_lint.txt new file mode 100644 index 0000000000000000000000000000000000000000..ca7d738c7225846160dd2238bacbd291c4a99427 --- /dev/null +++ b/ci-cd/python_requirements/requirements_syntax_n_lint.txt @@ -0,0 +1,8 @@ +yamllint +ansible +ansible-dev-tools +ansible-lint +### MOLECULE +# python3 -m pip install --user "molecule-plugins[docker]" +# molecule +# ansible-core diff --git a/ci-cd/requirements.txt b/ci-cd/requirements.txt deleted file mode 100644 index a42d9c6727a963012e95f3c0bdcb413731890e97..0000000000000000000000000000000000000000 --- a/ci-cd/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -ansible -ansible-dev-tools -ansible-lint diff --git a/ci-cd/scripts/syntax_n_lint.yml b/ci-cd/scripts/syntax_n_lint.yml new file mode 100644 index 0000000000000000000000000000000000000000..c934cf732de6803c0017e9d47e885717f659c297 --- /dev/null +++ b/ci-cd/scripts/syntax_n_lint.yml @@ -0,0 +1,31 @@ +--- + +variables: + INVENTORIES_PATH: "inventories/hosts" + REQUIREMENTS_PATH: "ci-cd/python_requirements/requirements_syntax_n_lint.txt" + ENV_DIR_PATH: "/builds/fejao/c3infodesk-deployment" + +### +### SCRIPTS +### +.before_script_syntax_n_lint: + before_script: + - echo "Running before_script for 'before_script_syntax_n_lint'" + - apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/* + - pip3 install -r $REQUIREMENTS_PATH + ########### + # ### Correct the permissions on the build environment directory. + # ### See https://github.com/ansible/ansible/pull/42142/files + - chmod 700 $ENV_DIR_PATH + +.script_syntax_check_main: + extends: .before_script_syntax_n_lint + script: + - echo "Running script for 'script_syntax_check_main'" + - ansible-playbook --syntax-check -i $INVENTORIES_PATH $PLAYBOOK_PATH + +.run_lint: + extends: .before_script_syntax_n_lint + script: + - echo "Running script for 'run_lint'" + - ansible-lint $PLAYBOOK_PATH diff --git a/ci-cd/templates/lint-tests.yml b/ci-cd/templates/lint-tests.yml new file mode 100644 index 0000000000000000000000000000000000000000..7449c23b1b5e8b54e1139274f6f6a259b7147fc2 --- /dev/null +++ b/ci-cd/templates/lint-tests.yml @@ -0,0 +1,77 @@ +--- + +### +### VARIABLES +### +variables: + AUTHOR: fejao + +### +### INCLUDE +### +include: + - local: /ci-cd/scripts/syntax_n_lint.yml + +### +### STAGE-LINT-TESTS +### +lint-test: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_TEST + # only: + # changes: + # - roles/c3infodesk-deployment-role-test + +lint-dependencies: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DEPENDENCIES + # only: + # changes: + # - roles/c3infodesk-deployment-role-dependencies + +lint-clone-repositories: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_CLONE_REPOSITORIES + # only: + # changes: + # - roles/c3infodesk-deployment-role-clone-repositories + +lint-docker-images: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DOCKER_IMAGES + # only: + # changes: + # - roles/c3infodesk-deployment-role-docker-containers + +lint-docker-containers: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DOCKER_CONTAINERS + # only: + # changes: + # - roles/c3infodesk-deployment-role-docker-containers + +lint-oh-my-bash: + stage: lint-tests + image: $IMAGE_NAME_LINT + extends: .run_lint + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_OH_MY_BASH + # only: + # changes: + # - roles/c3infodesk-deployment-role-oh-my-bash + diff --git a/ci-cd/templates/molecule.yml b/ci-cd/templates/molecule.yml new file mode 100644 index 0000000000000000000000000000000000000000..1a311e0e0c8f8616dced084f9cfcc693f844f02b --- /dev/null +++ b/ci-cd/templates/molecule.yml @@ -0,0 +1,72 @@ +--- + +### +### VARIABLES +### +variables: + AUTHOR: fejao + +molecule-not-enabled: + stage: molecule + image: $IMAGE_NAME_MOLECULE + script: + - echo "This can't be done before enable DIND at the instance" + +### +### STAGE-MOLECULE --> At the moment, running DIND (docker in docker) at this instance is disable :( +### +# molecule-test: +# stage: molecule +# image: $IMAGE_NAME_MOLECULE +# ### AVAILABLE TAGS +# # https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html#machine-types-available-for-linux---x86-64 +# tags: +# - saas-linux-small-amd64 +# # 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 molecule 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 +# # image: docker:27.5.1-dind +# # image: geerlingguy/docker-ubuntu2204-ansible:latest +# image: $IMAGE_NAME_MOLECULE +# 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 diff --git a/ci-cd/templates/syntax-checks.yml b/ci-cd/templates/syntax-checks.yml new file mode 100644 index 0000000000000000000000000000000000000000..04ffeb7152b20b197069dba32c8e134292e2b239 --- /dev/null +++ b/ci-cd/templates/syntax-checks.yml @@ -0,0 +1,78 @@ +--- + +### +### VARIABLES +### +variables: + AUTHOR: fejao + +### +### INCLUDE +### +include: + - local: /ci-cd/scripts/syntax_n_lint.yml + +### +### STAGE-SYNTAX-CHECKS +### +syntax-test: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_TEST + # only: + # changes: + # - roles/c3infodesk-deployment-role-test + # refs: + # - main + +syntax-dependencies: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DEPENDENCIES + # only: + # changes: + # - roles/c3infodesk-deployment-role-dependencies + +syntax-clone-repositories: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_CLONE_REPOSITORIES + # only: + # changes: + # - roles/c3infodesk-deployment-role-clone-repositories + +syntax-docker-images: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DOCKER_IMAGES + # only: + # changes: + # - roles/c3infodesk-deployment-role-docker-images + +syntax-docker-containers: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_DOCKER_CONTAINERS + # only: + # changes: + # - roles/c3infodesk-deployment-role-docker-containers + +syntax-oh-my-bash: + stage: syntax-checks + image: $IMAGE_NAME_SYNTAX + extends: .script_syntax_check_main + variables: + PLAYBOOK_PATH: $PATH_PLAYBOOK_FOR_ROLE_OH_MY_BASH + # only: + # changes: + # - roles/c3infodesk-deployment-role-oh-my-bash diff --git a/ci-cd/templates/trigger-pipeline.yml b/ci-cd/templates/trigger-pipeline.yml new file mode 100644 index 0000000000000000000000000000000000000000..80458f266a0bba2b49c512b86bb3d05ddd6cb235 --- /dev/null +++ b/ci-cd/templates/trigger-pipeline.yml @@ -0,0 +1,24 @@ +--- + +### +### VARIABLES +### +variables: + AUTHOR: fejao + +trigger-pipeline: + stage: before-role-trigger + # trigger: + # include: <ChildFolder>/.gitlab-ci.yml + # trigger: + # # include: roles/c3infodesk-deployment-role-test/.gitlab-ci.yml + # include: /builds/fejao/c3infodesk-deployment/roles/c3infodesk-deployment-role-test/.gitlab-ci.yml + + script: + - echo "Triggering tests for the 'test' role" + - pwd + # /builds/fejao/c3infodesk-deployment + - ls -la + - ls -la roles + - ls -la roles/c3infodesk-deployment-role-test + - ls -la roles/c3infodesk-deployment-role-test/.gitlab-ci.yml diff --git a/roles/c3infodesk-deployment-role-test b/roles/c3infodesk-deployment-role-test new file mode 160000 index 0000000000000000000000000000000000000000..ddc45d25c366878dd3f92136c54d4852562342c6 --- /dev/null +++ b/roles/c3infodesk-deployment-role-test @@ -0,0 +1 @@ +Subproject commit ddc45d25c366878dd3f92136c54d4852562342c6 diff --git a/roles/test/README.md b/roles/test/README.md deleted file mode 100644 index f2cf0d1f36d975c5f7004360698ea6c43b2556d7..0000000000000000000000000000000000000000 --- a/roles/test/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# 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: - -```yaml -- hosts: - - example_servers_group - roles: - - test -``` - -And call the playbook as: - -```bash -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 playbooks/examples/example_01_test.yml -``` - -### Lint -```bash -ansible-lint ci-cd/01_test.yml -``` - -### molecule -```bash -cd roles/test -molecule test -``` - -## License - -MIT/BSD - - -## Author Information - - [https://chaos.social/@fejao](https://chaos.social/@fejao) diff --git a/roles/test/defaults/main.yml b/roles/test/defaults/main.yml deleted file mode 100644 index 9c8dd30304fe755907bd1212c4e6fdf95123a598..0000000000000000000000000000000000000000 --- a/roles/test/defaults/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# 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" diff --git a/roles/test/molecule/default/converge.yml b/roles/test/molecule/default/converge.yml deleted file mode 100644 index 9aa3642de5e0a1415d40f98002b3bfd5b58f609b..0000000000000000000000000000000000000000 --- a/roles/test/molecule/default/converge.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: MOLECULE | Converge - hosts: all - tasks: - - name: MOLECULE | CONVERGE | Call the 'test' role. - ansible.builtin.include_role: - name: test diff --git a/roles/test/molecule/default/molecule.yml b/roles/test/molecule/default/molecule.yml deleted file mode 100644 index 7b5a4dc16f44f5b72043ced31ba71db9a993b3b8..0000000000000000000000000000000000000000 --- a/roles/test/molecule/default/molecule.yml +++ /dev/null @@ -1,66 +0,0 @@ ---- -dependency: - name: galaxy -driver: - name: docker -platforms: - - name: instance - image: geerlingguy/docker-ubuntu2004-ansible:latest - # privileged: true - pre_build_image: true -provisioner: - name: ansible - inventory: - ### - ### VARS used from the role - ### - 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" -lint: | - ansible-lint --exclude molecule/default/ -scenario: - name: default - create_sequence: - - dependency - - create - - prepare - check_sequence: - - dependency - - cleanup - - destroy - - create - - prepare - - converge - - check - - destroy - converge_sequence: - - dependency - - create - - prepare - - converge - destroy_sequence: - - dependency - - cleanup - - destroy - test_sequence: - # - lint - # - dependency - # - cleanup - - destroy - - syntax - - create - # - prepare - - converge - - verify - - idempotence - # - side_effect - # - cleanup - - destroy -verifier: - name: ansible diff --git a/roles/test/molecule/default/verify.yml b/roles/test/molecule/default/verify.yml deleted file mode 100644 index 5dd983f895031ab4e81f60a08876814d24a46e63..0000000000000000000000000000000000000000 --- a/roles/test/molecule/default/verify.yml +++ /dev/null @@ -1,59 +0,0 @@ ---- -- name: VERIFY | Test role for debugging variables - hosts: all - pre_tasks: - - name: MOLECULE | VERIFY | PRE-TASKS | Adding variables from -> ../../../../inventories/group_vars - ansible.builtin.include_vars: - dir: ../../../../inventories/group_vars - extensions: - - 'yml' - - - name: MOLECULE | VERIFY | PRE-TASKS | Adding variables from -> ../../../../inventories/host_vars - ansible.builtin.include_vars: - dir: ../../../../inventories/host_vars - extensions: - - 'yml' - - - name: MOLECULE | VERIFY | PRE-TASKS | Adding variables from -> ../../defaults - ansible.builtin.include_vars: - dir: ../../defaults - extensions: - - 'yml' - - - name: MOLECULE | VERIFY | PRE-TASKS | Adding variables from -> ../../vars - ansible.builtin.include_vars: - dir: ../../vars - extensions: - - 'yml' - - tasks: - - name: MOLECULE | VERIFY | Test parsed variable setted only at roles/test/defaults/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_only_defaults_main }}" - - - name: MOLECULE | VERIFY | Test parsed variable setted only at roles/test/vars/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_only_vars_main }}" - - - name: MOLECULE | VERIFY | 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 | VERIFY | Test parsed variable setted only at inventory/host_vars/example_server.yml - ansible.builtin.debug: - msg: "{{ var_setted_only_host_vars }}" - - - name: MOLECULE | VERIFY | Test parsed variable setted EVERYWHERE -> should come from roles/test/vars/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_everywhere }}" - - - name: MOLECULE | VERIFY | 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 | VERIFY | Shows output from listing folder - ansible.builtin.debug: - msg: "{{ ret_list_folder }}" diff --git a/roles/test/tasks/main.yml b/roles/test/tasks/main.yml deleted file mode 100644 index 3e7e633615708d3a17a07bcb244ec0779c8725ac..0000000000000000000000000000000000000000 --- a/roles/test/tasks/main.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -# tasks file for test - -- name: Test parsed variable setted only at roles/test/defaults/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_only_defaults_main }}" - -- name: Test parsed variable setted only at roles/test/vars/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_only_vars_main }}" - -- 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: - msg: "{{ var_setted_only_host_vars }}" - -- name: Test parsed variable setted EVERYWHERE -> should come from roles/test/vars/main.yml - ansible.builtin.debug: - msg: "{{ var_setted_everywhere }}" - -- name: List the root ('/') folder from the target to a register - ansible.builtin.command: - cmd: ls -hal / - register: ret_list_folder - changed_when: false - -- name: Shows output from listing folder - ansible.builtin.debug: - msg: "{{ ret_list_folder }}" diff --git a/roles/test/vars/main.yml b/roles/test/vars/main.yml deleted file mode 100644 index 76a45cb0672a680111467fd9d9576ca1e237dce8..0000000000000000000000000000000000000000 --- a/roles/test/vars/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# 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"