Skip to content
Snippets Groups Projects
Select Git revision
  • Add_buttons_01
  • main default protected
2 results

c3infodesk-deployment-role-dependencies

  • Clone with SSH
  • Clone with HTTPS
  • 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