# docker-containers role This is a ansible-role for dealing with the containers from **c3infodesk**. ## Requirements - To have [ansible](https://docs.ansible.com/ansible/latest/installation_guide/installation_distros.html) installed at your system. - Set your **remote_user** configuration at the **ansible.cfg** file. - Set your **inventories/host_vars/<TARGET_NAME>** file. ## Role Variables Here are the variables setted: - ### From: inventories/host_vars/<TARGET_NAME> Here are the variables that you should be changing for your own deployment. - #### CUPS Here you can set the variables if you want to **disable** and/or **mask** the CUPS service at the target. - **c3infodesk_printer_host_cups_disable**: DEFAULT=<NOT_SETTED> - **c3infodesk_printer_host_cups_mask**: DEFAULT=<NOT_SETTED> - #### COMPOSE Here you can set the variables if you want to set the **docker compose command** to up/stop/restart/down - **c3infodesk_printer_docker_compose_up**: DEFAULT=<NOT_SETTED> - **c3infodesk_printer_docker_compose_stop**: DEFAULT=<NOT_SETTED> - **c3infodesk_printer_docker_compose_restart**: DEFAULT=<NOT_SETTED> - **c3infodesk_printer_docker_compose_down**: DEFAULT=<NOT_SETTED> - ### From: inventories/group_vars/<TARGET_GROUP> Please don't cahnge the default values at this file. If you need to update them, use the **inventories/host_vars/<TARGET_NAME>** file. At the moment, there's **NO VARIABLES** setted at the **group_vars** for this role. - ### From: roles/clone-repositories/defaults/main.yml Don't change the values at this file, if you need to change them, change it at the **inventories/host_vars/<TARGET_NAME>** file - #### CUPS - **c3infodesk_printer_host_cups_disable**: DEFAULT=false - If you want to disable the CUPS service at the target system - **c3infodesk_printer_host_cups_disable_debug**: DEFAULT=false - If you want to debug disabling CUPS at the target system - **c3infodesk_printer_host_cups_mask**: DEFAULT=false - If you want to mask the CUPS service at the target system - #### COMPOSE UP - **c3infodesk_printer_docker_compose_up**: DEFAULT=false - If you want to run the command: "docker compose up" at the target host - **c3infodesk_printer_docker_compose_up_debug**: DEFAULT=false - If you want to debug running the command: "docker compose up" at the target host - #### COMPOSE STOP - **c3infodesk_printer_docker_compose_stop**: DEFAULT=false - If you want to run the command: "docker compose stop" at the target host - **c3infodesk_printer_docker_compose_stop_debug**: DEFAULT=false - If you want to debug running the command: "docker compose stop" at the target host - #### COMPOSE RESTART - **c3infodesk_printer_docker_compose_restart**: DEFAULT=false - If you want to run the command: "docker compose restart" at the target host - **c3infodesk_printer_docker_compose_restart_debug**: DEFAULT=false - If you want to debug running the command: "docker compose restart" at the target host - #### COMPOSE DOWN - **c3infodesk_printer_docker_compose_down**: DEFAULT=false - If you want to run the command: "docker compose down" at the target host - **c3infodesk_printer_docker_compose_down_debug**: DEFAULT=false - If you want to debug running the command: "docker compose down" at the target host ## Dependencies The role dependencies are: - [dependencies(role)](roles/dependencies/README.md) - [clone_repositories](roles/clone_repositories/README.md) - [docker_images](roles/docker_images/README.md) ## Example Playbook - ### What this example will deploy This role will deploy all the containers setted on the [docker-compose.yml](https://git.cccv.de/fejao/c3infodesk-printer/-/blob/main/docker/docker-compose.yml) file. **PLEASE CHANGE THE VALEUS** setted at this file on the target to your own. The **docker-compose.yml** file can be founded at the location setted from the **c3infodesk_printer_folder** path variable. The default is: **"~/Coding/c3infodesk-printer"** folder - ### Using the provided example For using the playbook **playbook_example_05_docker_containers.yml** file you only nned to: - Change the user at the **ansible.cfg** file at the field **remote_user** for acessing your target. - Update the file **inventories/host_vars/example_server.yml** and change the value for **ansible_become_pass** from the **remote_user**. - Update the **inventories/hosts** file and change the **example_server** with the IP address from your target. And run the command: ```bash ansible-playbook -i inventories/hosts playbook_example_05_docker_containers.yml ``` - ### Setting your own example - #### Deploying a new system example After setting your variables at **inventories/host_vars/<HOST_NAME>**, you can add this role to your playbook as a regular role. Here is an example using the **<HOST_NAME>** as **test_servers** You will need to set this variables fro a new deployment: - **c3infodesk_printer_host_cups_disable**: true - **c3infodesk_printer_host_cups_mask**: true - **c3infodesk_printer_docker_compose_up**: true ```yaml - hosts: - example_servers_group roles: - role: docker_containers vars: c3infodesk_printer_host_cups_disable: true c3infodesk_printer_host_cups_mask: true c3infodesk_printer_docker_compose_up: true ``` And call the playbook as: ```bash ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml ``` - #### Restarting the containers example Here is an example for adding this role for your playbook for **restarting** the **c3infodesk-printer** containers: We are using the **<HOST_NAME>** as **test_servers** for example. ```yaml - hosts: - test_servers roles: - role: docker-containers vars: printer_docker_compose_restart: true ``` And call the playbook as: ```bash ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml ``` Or you can also pass it using the **role variables**. So your playbook file should looks like: ```yaml - hosts: - test_servers roles: - docker-containers ``` And call it passing the variable, for example, restarting the containers from **c3infodesk-printer**. ```bash ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml --extra-vars "printer_docker_compose_restart=true" ``` ## License MIT / BSD ## Author Information  [https://chaos.social/@fejao](https://chaos.social/@fejao)