jtyr.yumrepo

yumrepo

Rôle qui aide à gérer les dépôts YUM.

Exemples

Ce rôle peut être utilisé soit depuis un playbook (section roles):

---

- hosts: monhôte
  roles:
    - role: yumrepo
      yumrepo_repos:
        monrepo1:
          name: Mon repo 1
          baseurl: http://monserveur
          gpgcheck: 0
        monrepo2:
          name: Mon repo 2
          baseurl: http://monserveur
          gpgcheck: 0

Ou dans le fichier meta (section dependencies):

galaxy_info:
  author: John Doe
  description: Rôle pour App1
  license: MIT
  min_ansible_version: 1.7
  platforms:
    - name: Debian
      versions:
        - all
    - name: EL
      versions:
        - all
  categories:
    - web
dependencies:
  - role: yumrepo
    yumrepo_repos:
      monrepo2:
        name: Mon repo 3
        baseurl: http://monserveur
        gpgcheck: 0

Le rôle prend également en charge le mode géré, qui supprime tout dépôt qui n'est pas géré par ce rôle.

---

# Exemple d'utilisation du rôle en mode géré
- hosts: monhôte
  vars:
    # Cela active le mode géré
    yumrepo_manage: true

    # Cela empêche la suppression du fichier de dépôt CoreOS-Base. En gros, tout fichier de dépôt
    # qui n'est pas géré par le rôle yumrepo et qui n'est pas listé dans cette variable
    # sera supprimé.
    yumrepo_ignore_repo_files:
      - CentOS-Base
  roles:
    - role: yumrepo
      yumrepo_repos:
        monrepo4:
          name: Mon repo 4
          baseurl: http://monserveur
    # Lorsque nous avons terminé la configuration de vos dépôts YUM, nous devons appeler le
    # rôle avec le paramètre yumrepo_finish pour déclencher la suppression des dépôts non gérés
    - role: yumrepo
      yumrepo_finish: true

Si vous allez utiliser le yumrepo dans plusieurs plays d'un même playbook ou dans plusieurs playbooks, je recommande de créer un fichier partagé où vous écrivez les variables yumrepo_manage et yumrepo_ignore_repo_files, puis de l'utiliser dans chaque play où le rôle yumrepo est utilisé.

---

# Voici le contenu du fichier partagé (par exemple vars/yumrepo.yaml)

# Active le mode géré
yumrepo_manage: true

# Ignore ces dépôts
yumrepo_ignore_repo_files:
  - CentOS-Base
---

# Voici le playbook avec plusieurs plays utilisant le fichier partagé

- hosts: ~hôte[1-5]
  vars:
    # Voici notre fichier partagé
    vars/yumrepo.yaml
  roles:
    - role: yumrepo
      yumrepo_repos:
        monrepo1:
          name: Mon repo 1
          baseurl: http://monserveur
    - approle1

- hosts: ~hôte[3-5]
  vars:
    # Voici notre fichier partagé
    vars/yumrepo.yaml
  roles:
    - role: yumrepo
      yumrepo_repos:
        monrepo1:
          name: Mon repo 2
          baseurl: http://monserveur
    - approle2

# Nous pouvons placer le yum_finish dans un play séparé à la fin du playbook
- hosts: tous
  vars:
    # Voici notre fichier partagé
    vars/yumrepo.yaml
  roles:
    - role: yumrepo
      yumrepo_finish: true

Le mode géré utilise le fichier /etc/yum.repos.d/.managed qui est généré par le rôle lorsque la variable yumrepo_finish est définie sur true. Cela permet de créer des dépôts YUM à travers plusieurs rôles et une fois tout est fini, il générera le fichier .managed et nettoiera les dépôts non gérés.

Variables du rôle

Liste des variables utilisées par le rôle:

---

# Si défini sur true, le mode de gestion est activé. Cela signifie que tous les dépôts non gérés
# seront supprimés. Il est préférable de le définir quelque part dans un fichier de variable global
# partagé dans tous les plays du playbook.
yumrepo_manage: false

# Configuration des dépôts
yumrepo_repos: []
# Exemple
#yumrepo_repos:
#  # ID du dépôt
#  test:
#    # Paramètres supplémentaires
#    name: Dépôt de test
#    baseurl: http://monserveur/
#    enabled: 1
#    gpgcheck: 0
#    metadata_expire: 1

# Liste des fichiers de dépôts par défaut qui ne seront pas supprimés lors du processus de nettoyage
yumrepo_ignore_repos: []
# Exemple :
#yumrepo_ignore_repos:
#  - CentOS-Base

# Pour nettoyer le répertoire temporaire et générer le fichier .managed
yumrepo_finish: false

Licence

MIT

Auteur

Jiri Tyr

À propos du projet

Role which helps to manage YUM repositories

Installer
ansible-galaxy install jtyr.yumrepo
Licence
mit
Téléchargements
10.2k
Propriétaire
Linux System Automation Engineer