diff --git a/meta/main.yml b/meta/main.yml index 769dd19e295ba4a3b28b73dcb1402feb6b0ed123..a2c0e3af235899ff5feb940c2ceb7cf60890cdd0 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -7,14 +7,16 @@ galaxy_info: company: cccv.de license: "MIT / BSD" min_ansible_version: '2.10' - galaxy_tags: [] + # galaxy_tags: [] + galaxy_tags: + - docker + - build + - ducker-build + - c3infodesk + - c3infodesk-printer + - c3buttons -dependencies: [] - # List your role dependencies here, one per line. Be sure to remove the '[]' above, - # if you add dependencies to this list. -# dependencies: -# # - role: dependencies -# # - role: clone_repositories -# #### -# - role: c3infodesk-deployment-role-dependencies -# - role: c3infodesk-deployment-role-clone-repositories +# dependencies: [] +dependencies: + - role: c3infodesk-deployment-role-dependencies + - role: c3infodesk-deployment-role-clone-repositories diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index ccc2cd4e18cb4d570e948bd4bcbd70278a06ffab..b889f8643882cc0cd96ccfd099670ea5539ed58b 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -2,6 +2,9 @@ - name: MOLECULE | Converge hosts: all + vars: + # molecule_debug_outputs: true + molecule_debug_outputs: false pre_tasks: - name: MOLECULE | COVERGE | PRE-TASKS | VARIABLES | From -> ../../defaults ansible.builtin.include_vars: @@ -24,38 +27,35 @@ extensions: - 'yml' - # - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../roles/dependencies/defaults - # ansible.builtin.include_vars: - # dir: ../../../../roles/dependencies/defaults - # depth: 1 - # extensions: - # - 'yml' - - # - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../roles/clone_repositories/defaults - # ansible.builtin.include_vars: - # dir: ../../../../roles/clone_repositories/defaults - # depth: 1 - # extensions: - # - 'yml' - - - name: MOLECULE | COVERGE | PRE-TASKS | VARIABLES | From -> ../../../../inventories/group_vars - ansible.builtin.include_vars: - dir: ../../../../inventories/group_vars - extensions: - - 'yml' + ############################################## + ############################################## + ############################################## + + - name: MOLECULE | CONVERGE | PRE-TASKS | SET FACT | Read the parsed 'HOST_VAR_FILE_NAME' env var or set the default to 'host_var_file_name' variable. + ansible.builtin.set_fact: + host_var_file_name: "../../../../inventories/host_vars/{{ lookup('ansible.builtin.env', 'HOST_VAR_FILE_NAME') | default('example_printer.yml', True) }}" + + - name: MOLECULE | CONVERGE | PRE-TASKS | DEBUG | Value from 'host_var_file_name' fact. + ansible.builtin.debug: + msg: "molecule_debug_outputs: {{ host_var_file_name }}" + when: molecule_debug_outputs | bool - - name: MOLECULE | COVERGE | PRE-TASKS | VARIABLES | From -> ../../../../inventories/host_vars + - name: MOLECULE | CONVERGE | PRE-TASKS | VARIABLES | From -> 'host_vars_from_proj_path' variable. ansible.builtin.include_vars: - dir: ../../../../inventories/host_vars - extensions: - - 'yml' + file: "{{ host_var_file_name }}" + + - name: MOLECULE | CONVERGE | PRE-TASKS | DEBUG | Value from 'c3infodesk_deployment_repository_url' variable. + ansible.builtin.debug: + msg: "molecule_debug_outputs: {{ c3infodesk_deployment_repository_url }}" + when: molecule_debug_outputs | bool + + ##################### - - name: MOLECULE | COVERGE | PRE-TASKS | Install python 'requests' package + - name: MOLECULE | CONVERGE | PRE-TASKS | INSTALL | Install the python pip requests package. ansible.builtin.pip: name: requests tasks: - name: MOLECULE | CONVERGE | Call the 'docker_images' role. ansible.builtin.include_role: - # name: docker_images name: c3infodesk-deployment-role-docker-images diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml index a771ab6043ce0a48e13d9b1e79bc4263171698c2..068eac48ffbf0fe3f19617df6076e266af916b7a 100644 --- a/molecule/default/verify.yml +++ b/molecule/default/verify.yml @@ -3,10 +3,10 @@ - name: VERIFY | Test role for debugging variables hosts: all vars: - package_name_docker: 'docker' - package_name_docker_ce: 'docker-ce' - package_name_docker_compose: 'docker-compose' - package_name_docker_compose_plugin: 'docker-compose-plugin' + verify_package_name_docker: 'docker' + verify_package_name_docker_ce: 'docker-ce' + verify_package_name_docker_compose: 'docker-compose' + verify_package_name_docker_compose_plugin: 'docker-compose-plugin' pre_tasks: - name: MOLECULE | COVERGE | PRE-TASKS | VARIABLES | From -> ../../defaults @@ -30,31 +30,13 @@ extensions: - 'yml' - # - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../roles/dependencies/defaults - # ansible.builtin.include_vars: - # dir: ../../../../roles/dependencies/defaults - # depth: 1 - # extensions: - # - 'yml' - - # - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../roles/clone_repositories/defaults - # ansible.builtin.include_vars: - # dir: ../../../../roles/clone_repositories/defaults - # depth: 1 - # extensions: - # - 'yml' - - - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../inventories/group_vars - ansible.builtin.include_vars: - dir: ../../../../inventories/group_vars - extensions: - - 'yml' + - name: MOLECULE | VERIFY | PRE-TASKS | SET FACT | Read the parsed 'HOST_VAR_FILE_NAME' env var or set the default to 'host_var_file_name' variable. + ansible.builtin.set_fact: + host_var_file_name: "../../../../inventories/host_vars/{{ lookup('ansible.builtin.env', 'HOST_VAR_FILE_NAME') | default('example_printer.yml', True) }}" - - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> ../../../../inventories/host_vars + - name: MOLECULE | VERIFY | PRE-TASKS | VARIABLES | From -> 'host_vars_from_proj_path' variable. ansible.builtin.include_vars: - dir: ../../../../inventories/host_vars - extensions: - - 'yml' + file: "{{ host_var_file_name }}" tasks: ### @@ -70,7 +52,7 @@ ### ### TESTS - PACKAGES ### - - name: MOLECULE | VERIFY | TEST | Check that the packages from 'os_dependencies_packages' are installed. + - name: MOLECULE | VERIFY | TEST | PACKAGES | Check that the packages from 'os_dependencies_packages' are installed. ansible.builtin.debug: msg: "Package: '{{ package_name }}' is installed" loop: "{{ os_dependencies_packages }}" @@ -78,51 +60,55 @@ loop_var: package_name failed_when: package_name not in ansible_facts.packages - - name: MOLECULE | VERIFY | TEST | Check that docker is installed. + ### + ### TESTS - DOCKER + ### + - name: MOLECULE | VERIFY | TEST | DOCKER | Is installed. ansible.builtin.debug: msg: "Package: 'docker' is installed" failed_when: - - package_name_docker not in ansible_facts.packages - - package_name_docker_ce not in ansible_facts.packages + - verify_package_name_docker not in ansible_facts.packages + - verify_package_name_docker_ce not in ansible_facts.packages + when: docker_set_to_install | bool - - name: MOLECULE | VERIFY | TEST | Check that docker-compose is installed. + - name: MOLECULE | VERIFY | TEST | DOCKER | docker-compose is installed. ansible.builtin.debug: msg: "Package: 'docker-cokmpose' is installed" failed_when: - - package_name_docker_compose not in ansible_facts.packages - - package_name_docker_compose_plugin not in ansible_facts.packages + - verify_package_name_docker_compose not in ansible_facts.packages + - verify_package_name_docker_compose_plugin not in ansible_facts.packages + when: docker_set_to_install | bool - ### - ### TESTS - DOCKER - ### - - name: MOLECULE | VERIFY | TEST | Get docker service state. + - name: MOLECULE | VERIFY | TEST | DOCKER | Get docker service state. ansible.builtin.systemd: name: "docker" register: docker_service + when: docker_set_to_install | bool - - name: MOLECULE | VERIFY | TEST | Check that docker is running. + - name: MOLECULE | VERIFY | TEST | DOCKER | Check that docker is running. ansible.builtin.debug: msg: "Docker IS running..." failed_when: "'active' != docker_service.status.ActiveState" + when: docker_set_to_install | bool ### - ### TESTS - ADDED USERS + ### TESTS - ADDED DOCKER USERS ### - - name: MOLECULE | VERIFY | TEST | Get added users infos. + - name: MOLECULE | VERIFY | TEST | USER | Get added users infos. ansible.builtin.user: name: "{{ item }}" loop: "{{ docker_users }}" check_mode: true register: test_users - - name: MOLECULE | VERIFY | TEST | Check if users exists + - name: MOLECULE | VERIFY | TEST | USER | Check if users exists ansible.builtin.debug: msg: "User {{ item.item }} {{ 'exists' if item.state | d('') == 'present' else 'does not exist' }}" loop: "{{ test_users.results }}" loop_control: label: "{{ item.item }}" - - name: MOLECULE | VERIFY | TEST | Get the groups that the users belongs to. + - name: MOLECULE | VERIFY | TEST | USER | Get the groups that the users belongs to. ansible.builtin.command: cmd: "id -Gn {{ item.item }}" loop: "{{ test_users.results }}" @@ -131,19 +117,19 @@ register: user_groups changed_when: false - - name: MOLECULE | VERIFY | TEST | Check that the users are at the 'docker' group. + - name: MOLECULE | VERIFY | TEST | USER | Check that the users are at the 'docker' group. ansible.builtin.debug: msg: "User '{{ item.item.item }}' belongs to the docker group" with_items: "{{ user_groups.results }}" failed_when: "'docker' not in item.stdout" ### - ### TESTS - CLONE REPOSITORY - PRINTER + ### TESTS - CLONE REPOSITORY ### - name: MOLECULE | VERIFY | TEST | Get if the repository was cloned. ansible.builtin.git: - repo: "{{ c3infodesk_printer_repo_url }}" - dest: "{{ c3infodesk_printer_folder }}" + repo: "{{ c3infodesk_deployment_repository_url }}" + dest: "{{ c3infodesk_deployment_repository_dest_folder }}" version: main clone: false update: false @@ -151,38 +137,13 @@ - name: MOLECULE | VERIFY | TEST | Checking if the repository was cloned. ansible.builtin.debug: - msg: "Repository: '{{ c3infodesk_printer_repo_url }}' cloned..." + msg: "Repository: '{{ c3infodesk_deployment_repository_url }}' cloned..." failed_when: check_repository.changed | bool ### ### TESTS - DOCKER IMAGES ### - - name: MOLECULE | VERIFY | TEST | Get if the image is created for 'cups'. + - name: MOLECULE | VERIFY | TEST | Check if the Docker images are on the system. community.docker.docker_image_info: - name: "{{ c3infodesk_printer_docker_img_cups_name }}" - register: result_check_image_cups - - - name: MOLECULE | VERIFY | TEST | Check the image creation from 'cups'. - ansible.builtin.debug: - msg: "Image for 'cups' exists" - when: result_check_image_cups.images | length > 0 - - - name: MOLECULE | VERIFY | TEST | Get if the image is created for 'app'. - community.docker.docker_image_info: - name: "{{ c3infodesk_printer_docker_img_app_name }}" - register: result_check_image_app - - - name: MOLECULE | VERIFY | TEST | Check the image creation from 'app'. - ansible.builtin.debug: - msg: "Image for 'app' exists" - when: result_check_image_app.images | length > 0 - - - name: MOLECULE | VERIFY | TEST | Get if the image is created for 'proxy'. - community.docker.docker_image_info: - name: "{{ c3infodesk_printer_docker_img_proxy_name }}" - register: result_check_image_proxy - - - name: MOLECULE | VERIFY | TEST | Check the image creation from 'proxy'. - ansible.builtin.debug: - msg: "Image for 'proxy' exists" - when: result_check_image_proxy.images | length > 0 + name: "{{ item.docker_image_name }}" + with_items: "{{ c3infodesk_deployment_docker_images_list }}" diff --git a/tasks/build_docker_image.yml b/tasks/build_docker_image.yml index 1f5d7b5bf6a8d68e91c92732f2dde08aba1135f6..c0d2cbb27a7db16ff7347613a3573a9c5a672f58 100644 --- a/tasks/build_docker_image.yml +++ b/tasks/build_docker_image.yml @@ -19,7 +19,6 @@ ansible.builtin.command: cmd: docker build . -t "{{ docker_image_name }}":"{{ docker_image_tag }}" -f "{{ docker_file_path }}" args: - # chdir: "{{ c3infodesk_deployment_dest_folder }}" chdir: "{{ c3infodesk_deployment_repository_dest_folder }}" register: build_img_result when: result_check_image.images | length <= 0