Une collection d'outils Python pratiques pour l'administration système, la gestion d'infrastructure et la simulation de données.
Ce projet contient 3 outils spécialisés :
| Outil | Objectif | Cas d'usage |
|---|---|---|
| 🔧 Ansible Hosts Aliases | Génération d'alias SSH depuis inventaires Ansible | Environnements multi-plateformes |
| 🛡️ Jumper SSH | Exécution de commandes via bastion SSH | Infrastructures sécurisées |
| 📊 Topics Partitions Generator | Simulation de métadonnées Kafka | Tests et développement Kafka |
# Cloner le projet
git clone <votre-repo>
cd pytools
# Installer toutes les dépendances
pip install -r requirements.txt
# Ou installer individuellement selon vos besoins
pip install ansible # Pour ansible_hosts_aliases
pip install paramiko # Pour jumper
pip install names_generator # Pour topicspartitions_generatorFichier: ansible_hosts_aliases.py
Un outil qui automatise la création d'alias SSH à partir d'inventaires Ansible. Parfait pour les environnements multi-plateformes avec de nombreux serveurs.
- 🔍 Scan automatique des inventaires Ansible (.ini)
- 🏷️ Génération d'alias SSH intelligents
- 🎯 Format d'alias hiérarchique :
client.techno.host - 🔄 Compatible Ansible 2.4+ et versions récentes
- ⚡ Autocomplétion facilitée pour naviguer entre environnements
Inventories_Folder/
├── client1/
│ ├── techno1.ini
│ └── techno2.ini
├── client2/
│ ├── techno1.ini
│ ├── techno2.ini
│ └── techno3.ini
└── client3/
└── techno1.ini
python ansible_hosts_aliases.py /home/dev/workspace/inventories-projet ~/.bash_aliasesGénère des alias comme :
alias client1.techno1.host1='ssh 192.168.1.10'
alias client2.techno1.host5='ssh 10.0.0.15'Fichier: jumper.py
Un module Python pour exécuter des commandes sur des serveurs distants via un bastion SSH. Idéal pour les infrastructures sécurisées avec des serveurs non directement accessibles.
- 🛡️ Connexion SSH via bastion (jump host)
- ⚡ Exécution de commandes distantes
- 🔐 Support des clés SSH via ssh-agent
- 🔄 Gestion automatique des connexions
- 📦 API simple et réutilisable
pip install paramikofrom jumper import jumper
# Connexion via bastion avec tous les paramètres
result = jumper('bastion.example.com', 'bastion_user', 22,
'target.internal', 'root', 22, 'ls /')
# Utilisation simplifiée (ports par défaut)
result = jumper('bastion.example.com', 'bastion_user',
'target.internal', 'ls /')
print(result)
# ['bin\n', 'boot\n', 'dev\n', 'etc\n', 'lib\n']Fichier: balance_data/topicspartitions_generator.py
Un générateur de métadonnées pour topics et partitions Kafka. Utile pour simuler des environnements Kafka ou générer des données de test.
- 📊 Génération aléatoire de topics Kafka
- 🎲 Simulation de partitions avec répartition équilibrée
- 🔄 Rotation automatique des leaders sur les brokers
- 📏 Tailles de partitions configurables
- 🏷️ Noms de topics générés automatiquement
nb_of_topics = 10 # Nombre de topics à générer
broker_nodes = ["1", "2", "3"] # IDs des brokers
min_size_partition = 10000 # Taille minimale des partitions
max_size_partition = 1000000 # Taille maximale des partitions
min_partition = 1 # Nombre minimum de partitions par topic
max_partition = 5 # Nombre maximum de partitions par topiccd balance_data
pip install -r requirements.txtTopic: awesome_chatelet, Partition: 0, Leader: 1, Replicas: ['1', '2', '3'], Size: 564806
Topic: awesome_chatelet, Partition: 1, Leader: 2, Replicas: ['2', '3', '1'], Size: 564806
Topic: cool_darwin, Partition: 0, Leader: 3, Replicas: ['3', '1', '2'], Size: 123456
- Python 3.6+
- Ansible (pour l'outil ansible_hosts_aliases)
Pour l'outil Jumper SSH :
pip install paramikoPour l'outil Topics Partitions Generator :
cd balance_data
pip install -r requirements.txtPour l'outil Ansible Hosts Aliases :
pip install ansible# Générer les alias à partir des inventaires Ansible
python ansible_hosts_aliases.py /path/to/inventories ~/.bash_aliases
# Recharger les alias
source ~/.bash_aliases
# Utiliser l'autocomplétion
client1.techno1.[TAB]# Importer le module
from jumper import jumper
# Exécuter une commande via bastion
result = jumper('bastion_ip', 'bastion_user', 'target_ip', 'commande')
# Traiter les résultats
for line in result:
print(line.strip())cd balance_data
python topicspartitions_generator.py- Jumper SSH : Assurez-vous que vos clés SSH sont chargées dans ssh-agent
- Ansible Hosts Aliases : Vérifiez les permissions des fichiers d'inventaire
- Tous les outils : Testez d'abord sur des environnements de développement
Les contributions sont les bienvenues ! Ces outils sont conçus pour être :
- ✅ Fonctionnels : Ils marchent immédiatement
- 🔧 Modulaires : Facilement adaptables
- 📚 Documentés : Avec des exemples clairs
- 🧪 Testables : Sur des environnements de dev
Ce projet est distribué sous licence libre. Utilisez, modifiez et partagez selon vos besoins.
Développé avec ❤️ pour simplifier la gestion d'infrastructure et l'administration système.