# 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](https://github.com/geerlingguy) for installing **docker** at the target host.

The original code used can be found at: [https://github.com/geerlingguy/ansible-role-docker](https://github.com/geerlingguy/ansible-role-docker)

## 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.
  - **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**


- ### From: inventories/group_vars/<TARGET_GROUP>
  This role needs no variable setted on **group_vars**

- ### From: roles/clone-repositories/defaults/main.yml
  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**

- ### From: roles/dependencies/vars/main.yml
  - **docker_packages**
  - **docker_compose_package**


## Dependencies
This role have no dependency from any another role.


## Example Playbook

- ### Using the provided example
  For using the playbook **playbook_example_02_dependencies.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_02_dependencies.yml
```

- ### Setting your own 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**

```yaml
- hosts:
    - test_servers
  roles:
    - dependencies
```

  And call the playbook as:

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


## License

MIT / BSD


## Author Information

![fejao logo](../../files/from_authors/fejao_logo_circle.png "fejao") [https://chaos.social/@fejao](https://chaos.social/@fejao)