Skip to content
Snippets Groups Projects
fejao's avatar
fejao authored
Updating the README.md file

See merge request !2
062295b3
History

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

  • ansible.cfg

    You have to edit the ansible.cfg file to your needs for accessing your target.

    • remote_user

      You need to set the remote_user configuration for accessing the target host.

      Example: remote_user

  • HOST_VARS

    In order to access your target host, you need to create/edit your inventories/host_vars/<YOUR_HOST_NAME>.yml

    • ansible_become_pass

      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

  • HOSTS

    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:

  • 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 example playbook playbooks/examples/example_02_dependencies.yml file you only need to:

    And run the command:

    ansible-playbook -i inventories/hosts playbooks/examples/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

    - 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

  • Testing requirements

    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"
    }
  • Using molecule

    Just go to the root of the role roles/dependencies and run the command:

    molecule test

License

MIT / BSD

Author Information

https://chaos.social/@fejao