Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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.

...

Code Block
# 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 :

...

Code Block
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 :

Code Block
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