Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Introduction

C'est un outil permettant d'exécuter et de faire des opérations à distance sur plusieurs machines en utilisant ssh. C'est un canevas reposant sur ssh pour faire des opérations sur des groupes de machines rassemblées par exemple par rôles.

Utilisation personnelle

Exploration des machines à ajouter au fichier known_hosts de ssh

Voir la solution de la page Accepter automatiquement les certificats ssh des machines. La meilleure solution est de parcourir l'ensemble de machines en utilisant l'utilitaire d'opensshssh-keyscan.

...

Bloc de code
# exemple avec un fichier de hosts à la *ansible*
time grep -v '^#\|^[[:space:]]*$\|^\[[^]]*\]$' ~/ansible/hosts-def/hosts | ssh-keyscan -H -f - > ~/.ssh/known_hosts

 

Définir les groupes de machines

Il arrive qu'un ensemble logique de machines (ayant le même rôle) soit sur un même VLAN et donc dans une plage d'adresses IP contiguës. Pour avoir une liste de machines, voici le type de recherche qui peut être faite :

...

Bloc de code
languagepython
titlefabfile.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from fabric.api import *

def ls_al():
    """Liste le contenu du répertoire."""
    run("ls -al")

def host_type():
    """Détermine le type et le numéro de version du noyau de la machine distante"""
    run("uname -s -r -m -p -o)

Utiliser un fichier de configuration pour fabric plutôt que des options sur la ligne de commande

Pour cela, définir un fichier ~/.fabricrc comme suit :

Bloc de code
languagebash
title~/.fabricrc
user=monlogin
connection_attempts=3
#ssh_config_path=~/fabric/.ssh_config.exploration-hosts

# on fait les traitement en parralèle
#parallel=True
# combien de machines en parallèle ?
#pool_size=3

# pas de terminaison en cas d'erreur
warn_only=True

fabfile=~/fabric/fabfile.py

# ne pas avoir stdout et stderr fusionnés sur stdout
#combine_stderr=False

# le fichier avec la clé privée
key_filename=~/.ssh/id_rsa

# pour utiliser un fichier de config ssh de l'utilisateur
use_ssh_config=True

# pour avoir un buffer par ligne (ne permet pas l'usage du prompt)
#linewise=True
#reject_unknown_hosts=True
#disable_known_hosts=True

Références

Pages utiles

Voir aussi

En pages internes