vnode.ypclient
Rôle Ansible : ypclient
Ce rôle installe et configure le client YP/NIS qui fait partie d'OpenBSD et d'autres systèmes d'exploitation BSD*. Actuellement, ce rôle ne prend en charge que OpenBSD, avec l'intention d'ajouter FreeBSD et NetBSD dans une mise à jour proche.
Lorsque cela est applicable, ce rôle fait référence à la documentation système, par exemple, la page de manuel yp(8)
.
Exigences
Fonctionnement
Aucun rôle ou module externe n'est nécessaire pour utiliser ce rôle.
Test & Développement
Pour les tests et le développement, ce rôle dépend des rôles et outils externes suivants :
- Rôle vnode.ypserver
- Vagrant (supportant soit le fournisseur VirtualBox soit VMWare)
- VagrantCloud (spécifiquement, la boîte
generic/openbsd6
)
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
).
Toutes ces variables doivent être mises en œuvre. Si vous constatez qu'elles ne le sont pas, veuillez ouvrir un problème dans le dépôt GitHub.
Variables Requises
Les variables suivantes doivent être définies lors de l'utilisation du rôle.
ypclient_domain: ""
Requise, doit avoir un nom de domaine NIS valide. C'est le nom du domaine NIS que vous souhaitez configurer.
ypclient_servers: []
Requise, doit lister l'ensemble des serveurs NIS pour le domaine.
ypclient_serverinfo: {}
Requise, mais peut être vide si les serveurs NIS pour le domaine peuvent être trouvés dans DNS ou /etc/hosts
.
Si non vide, ce dictionnaire liste les adresses IPv4 et/ou IPv6 pour les serveurs du domaine. Le rôle remplira alors /etc/hosts
avec les lignes requises. Si les serveurs ne peuvent pas être atteints ou résolus, le code NIS se bloque. Voir yp(8)
pour plus de détails.
L'exemple ci-dessous liste les adresses pour les serveurs master
et slave
dans un réseau à double pile.
ypserver_serverinfo:
master:
- "192.0.2.1"
- "2001:db8::111:1"
slave:
- "192.0.2.2"
- "2001:db8::111:2"
Variables Optionnelles
ypclient_usedns: true
Spécifie que les cartes YP/NIS peuvent utiliser DNS pour les recherches de noms d'hôtes. Il est recommandé de laisser à true
. Lorsqu'il est défini sur false
, assurez-vous que ypclient_serverinfo
et/ou ypclient_set_hosts
sont correctement définis pour que vos serveurs NIS puissent être résolus.
ypclient_lookup_maps:
- name: 'passwd'
file: '/etc/master.passwd'
pattern: '+:*::::::::'
validate: 'pwd_mkdb -c %s'
notify: "regen master.passwd"
mode: '0600'
owner: 'root'
group: 'wheel'
- name: 'group'
file: '/etc/group'
pattern: '+:*::'
mode: '0644'
owner: 'root'
group: 'wheel'
Cette liste contient les cartes de recherche que vous souhaitez utiliser dans le domaine et les fichiers qui doivent être modifiés, ainsi que le motif. Spécifier la validation et le gestionnaire est optionnel. Naturellement, les cartes doivent également exister sur les serveurs NIS. Pour d'autres cartes prises en charge, voir Makefile.yp(8)
.
Variables pour supporter plusieurs domaines YP/NIS sur un client
Cette variable est destinée à permettre l'hébergement de plusieurs domaines NIS sur un serveur. Ce n'était pas l'utilisation initialement prévue, donc si vous rencontrez des problèmes, veuillez le signaler comme un problème sur GitHub.
ypclient_set_domainname: true
Il est recommandé de laisser à true
pour le domaine que vous souhaitez comme votre domaine 'principal' (par défaut). Doit être défini sur false
si vous voulez garder un autre domaine comme domaine par défaut.
Paramètres supplémentaires
Ces variables ne sont pas requises pour les appels de rôle et leurs valeurs par défaut devraient convenir.
ypclient_set_hosts: false
Si défini sur true
, le rôle ajoute les informations IP pour les serveurs NIS au fichier /etc/hosts
. Cela est généralement utile lorsque le domaine n'utilise pas de recherches DNS (avec ypclient_usedns
défini sur false
). Notez que cela nécessite des informations IP pour chaque serveur NIS dans la variable ypclient_serverinfo
.
Variables internes
Ces variables sont utilisées en interne dans le rôle et ne sont pas destinées à être modifiées par l'utilisateur. Changez-les à vos risques et périls. Typiquement, elles correspondent à des valeurs codées en dur sur le système d'exploitation sous-jacent.
Dépendances
Aucune.
Exemple de Playbook
Voici un exemple pour créer un simple client YP/NIS qui se connecte aux hôtes du groupe ypservers
. Le domaine s'appelle legacy
.
---
- hosts: ypclients
roles:
- role: vnode.ypclient
vars:
ypclient_ypdomain: legacy
ypclient_servers: "{{ groups['ypservers'] }}"
Licence
MIT
Informations sur l'Auteur
Ce rôle a été créé en 2020 par Rogier Krieger.