manage_repositories/README.md

3.1 KiB

Manage repositories

This repository is only a mirror. Development and testing is done on a private gitlab server.

This role enables you to manage repositories on debian-based distributions. It can be used on its own , or be called by other roles the configure repositories on demand.

Requirements

None.

Role Variables

Available variables are listed below, along with default values. A sample file for the default values is available in default/manage_repositories.yml.sample in case you need it for any group_vars or host_vars configuration.

manage_repositories_enable_default_repo: true # by default, set to true

This variable enable or disable the configuration of the main distribution repositories (useful when calling this role to configure repo for another role like installing docker).

manage_repositories_enable_custom_repo: false # by default, set to false

This variable enable of disable the configuration of custom repositories

manage_repositories_main_repo_uri: # by default, this variable has the following values
  ubuntu: "http://fr.archive.ubuntu.com/ubuntu"
  debian: "http://deb.debian.org/debian"

This variable sets the mirror URLs for the main repositories. You can optionally remove the distribution you don't want (ex. remove manage_repositories_main_repo_uri[debian] if you're only using ubuntu).

manage_repositories_custom_repo: # by default, this variable is not defined
  - uri: "https://apt.releases.hashicorp.com"
    gpg_key: "https://apt.releases.hashicorp.com/gpg"
    comments: "hashicorp repository"
    type: "deb"
    suites: "{{ ansible_distribution_release }}"
    components: "main"
    filename: "hashicorp"
  - uri: ...

This variable contains a list (1 to N) of custom repositories to install. IT HAS TO BE SET if manage_repositories_enable_custom_repo == true, or else the role might fail. Any unused field (like gpg_key in some instances) should be left blank (ex. gpg_key:). the role evaluates this against None to check if actions are needed.

Dependencies

None.

Example Playbook

# calling the role inside a playbook with either the default or group_vars/host_vars
- hosts: servers
  roles:
    - ednxzu.manage_repositories
# calling the role inside a playbook and injecting variables (in another role for example)
- hosts: servers
  tasks:
    - name: "Configure hashicorp repository"
      ansible.builtin.include_role:
        name: ednxzu.manage_repositories
      vars:
        manage_repositories_enable_default_repo: false
        manage_repositories_enable_custom_repo: true
        manage_repositories_custom_repo:
          - uri: "https://apt.releases.hashicorp.com"
            gpg_key: "https://apt.releases.hashicorp.com/gpg"
            comments: "hashicorp repository"
            type: "deb"
            suites: "{{ ansible_distribution_release }}"
            components: "main"
            filename: "hashicorp"

License

MIT / BSD

Author Information

This role was created by Bertrand Lanson in 2023.