docker_images role
This ansible-role for dealing with creating the docker images necessary for deploying the system used from c3infodesk.
Requirements
- To have ansible installed at your system.
Configuration
You need to set some configuration for this to work
-
You have to edit the ansible.cfg file to your needs for accessing your target.
-
You need to set the remote_user configuration for accessing the target host.
Example: remote_user
-
-
In order to access your target host, you need to create/edit your inventories/host_vars/<YOUR_HOST_NAME>.yml
-
You need to set the sudo password from the user setted on remote_user for installing packages and etc. at the target.
Example: ansible_become_pass
-
-
You need to provide a group in which your target belongs to with the same name setted for inventories/host_vars/<YOUR_HOST_NAME>.yml.
There you can add/edit the target address/IP.
Example: hosts
Role Variables
Here are the variables setted:
-
Here are the variables that you should be changing for your own deployment.
-
c3infodesk_printer_debug_create_image_cups: DEFAULT=<NOT_SETTED>
- If you want to debug the output from creating the image for CUPS
-
c3infodesk_printer_debug_create_image_app: DEFAULT=<NOT_SETTED>
- If you want to debug the output from creating the image for the APP
-
c3infodesk_printer_debug_create_image_proxy: DEFAULT=<NOT_SETTED>
- If you want to debug the output from creating the image for the PROXY
-
c3infodesk_printer_debug_create_image_cups: DEFAULT=<NOT_SETTED>
-
Please don't cahnge the default values at this file. If you need to update them, use the inventories/host_vars/<TARGET_NAME> file.
-
c3infodesk_printer_folder_docker: DEFAULT="Coding/c3infodesk-printer/docker"
- The folder where the configuration from docker used for the system
-
c3infodesk_printer_folder_docker_cups: DEFAULT="Coding/c3infodesk-printer/docker/cups"
- The folder where the configuration from docker CUPS used for the system
-
c3infodesk_printer_folder_docker_app: DEFAULT="Coding/c3infodesk-printer/docker/app"
- The folder where the configuration from docker APP used for the system
-
c3infodesk_printer_folder_docker_proxy: DEFAULT="Coding/c3infodesk-printer/docker/proxy"
- The folder where the configuration from docker PROXY used for the system
-
c3infodesk_printer_docker_img_cups_name: DEFAULT="c3printing-cups"
- The name of the image to be set for the CUPS
-
c3infodesk_printer_docker_img_cups_tag: DEFAULT="latest"
- The tag name/number to be setted for the CUPS image
-
c3infodesk_printer_docker_img_app_name: DEFAULT="c3printing-app"
- The name of the image to be set for the APP
-
c3infodesk_printer_docker_img_app_tag: DEFAULT="latest"
- The tag name/number to be setted for the APP image
-
c3infodesk_printer_docker_img_proxy_name: DEFAULT="c3printing-proxy"
- The name of the image to be set for the PROXY
-
c3infodesk_printer_docker_img_proxy_tag: DEFAULT="latest"
- The tag name/number to be setted for the PROXY image
-
c3infodesk_printer_folder_docker: DEFAULT="Coding/c3infodesk-printer/docker"
-
Don't change the values at this file, if you need to change them, change it at the inventories/host_vars/<TARGET_NAME> file
- c3infodesk_printer_debug_create_image_cups: DEFAULT=false
- c3infodesk_printer_debug_create_image_app: DEFAULT=false
- c3infodesk_printer_debug_create_image_proxy: DEFAULT=false
Dependencies
The role dependencies are:
Example Playbook
-
For using the example playbook playbooks/examples/example_04_docker_images.yml file you only need 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 playbooks/examples/example_04_docker_images.yml
-
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
- hosts: - test_servers roles: - roles/c3infodesk-deployment-role-docker-images
And call the playbook as:
ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml
Testing
You can test this locally using DIND (docker in docker) at your own computer using ansible molecule
-
You need docker installed at your system and the ansible molecule.
You might have to set DIND at your system, for linux, you can create the file /etc/docker/daemon.json
And add the content and restart docker.
{ "exec-opts": ["native.cgroupdriver=systemd"], "features": { "buildkit": true }, "experimental": true, "cgroup-parent": "docker.slice" }
-
Just go to the root of the role roles/dependencies and run the command:
molecule test
License
MIT / BSD