Skip to content
Snippets Groups Projects

docker-containers role

This is a ansible-role for dealing with the containers from c3infodesk.

Requirements

  • To have ansible 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:

Example Playbook

  • What this example will deploy

    This role will deploy all the containers setted on the 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:

    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
      - 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:

      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.

      - hosts:
          - test_servers
        roles:
          - role: docker-containers
            vars:
              printer_docker_compose_restart: true

      And call the playbook as:

      ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml

      Or you can also pass it using the role variables. So your playbook file should looks like:

      - hosts:
          - test_servers
        roles:
          - docker-containers

      And call it passing the variable, for example, restarting the containers from c3infodesk-printer.

      ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml --extra-vars "printer_docker_compose_restart=true"

License

MIT / BSD

Author Information

fejao logo https://chaos.social/@fejao