dependencies role
This ansible-role for dealing with installing the dependencies for deploying the system used from c3infodesk.
Mentions
This role uses great part of it from geerlingguy for installing docker at the target host.
The original code used can be found at: https://github.com/geerlingguy/ansible-role-docker
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.
-
docker_users: DEFAULT="[test-user]"
- The users to be added to the docker group.
- These users should should contain at least the same user setted on ansible.cfg at the remote_user
-
ansible_become_pass: DEFAULT="Please change this"
- The password used from the user setted on ansible.cfg at the remote_user
-
docker_users: DEFAULT="[test-user]"
-
This role needs no variable setted on group_vars
-
Here are the variables used for this role. Please don't change then here but instead in inventories/host_vars/<TARGET_NAME>
- docker_users
- ansible_become_pass
- os_dependencies_packages
- docker_edition
- docker_packages
- docker_packages_state
- docker_obsolete_packages
- docker_obsolete_packages
- docker_service_manage
- docker_service_state
- docker_service_enabled
- docker_restart_handler_state
- docker_install_compose_plugin
- docker_compose_package
- docker_compose_package_state
- docker_install_compose
- docker_compose_version
- docker_compose_arch
- docker_compose_url
- docker_compose_path
- docker_add_repo
- docker_apt_release_channel
- docker_apt_ansible_distribution
- docker_apt_arch
- docker_apt_repository
- docker_apt_ignore_key_error
- docker_apt_gpg_key
- docker_apt_gpg_key_checksum
- docker_apt_filename
- docker_yum_repo_url
- docker_yum_repo_enable_nightly
- docker_yum_repo_enable_test
- docker_yum_gpg_key
- docker_daemon_options
-
- docker_packages
- docker_compose_package
Dependencies
This role have no dependency from any another role.
Example Playbook
-
For using the example playbook playbooks/examples/example_02_dependencies.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_02_dependencies.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-dependencies
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