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