Se connecter
Se connecter

ou
Créer un compte

ou
Agrandir
Les Mains dans le Cambouis
Bidouille & Développement Informatique

Le pub des programmeurs

  • 1 927 réponses
  • 117 participants
  • 123 798 vues
  • 130 followers
Sujet de la discussion Le pub des programmeurs
Salut :coucou: y a des programeurs sur AF si oui vous bossez sous quoi ?
Afficher le sujet de la discussion
1821
Citation :
Hello je reviens (encore) avec python. Bon finalement je suis bien obligé de m'y mettre, la je développe un petit programme en python qui exécute une liste de commandes via SSH sur un serveur (sous linux) depuis mon PC pour faire de l'automatisation. Jusque la rien de bien spécial, ca marche plutôt bien.


Pour palier ce genre de problème, RedHat développe un produit qui est très souple pour ce genre de sport: Ansible.
plus accessible, tu peux installer Jenkins. Jenkins + ansible dans le genre automatisation c'est assez top.

;)
AL1
1822
Citation :
Question peut être conne mais y'a une raison particulière pour toi de faire ça en python et pas en script bash directement ?


c'est plus facile de faire des tests unitaires et du TDD en python qu'en bash ? Et de maintenir, faire des libs, réutiliser et faire relire ?

On a un truc du genre au taf, en bash et au début c'était un mini-script, donc pas besoin de quoi que ce soit.
Mais plus ça va, plus il grossit et là après quelques années il fait énormément de trucs. Et on se rends compte que si au lieu de faire du bash on aurait fait du python on aurait pu avoir des tests, des librairies, un truc maintenable et fiable.
Alors que là on a un très gros paquets de scripts.

Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

http://soundcloud.com/djardin

1823
Citation :
Question peut être conne mais y'a une raison particulière pour toi de faire ça en python et pas en script bash directement ?


Pour une raison toute simple le serveur n'est pas à l'heure ni à la date. Et les deux machines privées non plus et pour parfaire le truc tout ce petit monde n'est absolument pas synchronisé, et je ne peux pas modifier ca. Et pour faire de l'archivage c'est vraiment pas pratique du tout :??:

Merci pour le conseil open ssh je vais regarder ca.

Al1r > Oui, j'imagine bien, mais j'aimerais autant que possible mettre moi même les mains dans le cambouis et développer le truc. Je ne pense pas faire mieux que les développeurs de jenkins ou autre (très très trèèèès loin de la c'est le premier vrai truc en python que je fait qui dépasse 3 lignes) mais j'ai envie de comprendre et de bricoler par moi même. Et je voudrais faire aussi quelque chose de très léger le plus générique possible et facile à déployer.

La pour l'instant le programme arrive à ouvrir des scripts qui sont dans un fichier texte, à reconnaitre des mots clés et à les remplacer par autre chose (genre mkdir %DAY_DATE%_fichiers devient mkdir 2019_02_01_fichiers) mais il y a moyen de pousser encore un peu et d'avoir un petit outil bien sympathique je pense

[ Dernière édition du message le 01/02/2019 à 22:02:12 ]

1824
Je ne suis pas sur mais je crois que SaltStack est le genre d'outil du type ansible qui peut faire ce boulot.

Sinon pour les scripts bash trop gros il y a Xonsh pour faire à la fois du python et du Bash dans sa console. C'est devenu mon shell par défaut.
1825
djardin > je suis d'accord avec toi mais ce n'est sans doute absolument pas la raison pour laquelle truelle fait ça en python.
1826
Citation :
c'est le premier vrai truc en python que je fait qui dépasse 3 lignes


:bravo: C'est tout à ton honneur et je respecte ton choix.

Mais çà n'empêche pas de pouvoir s'aider avec des outils déjà prêts.
Que ce soit Ansible, jenkins, SaltStak,..., tu peux y intégrer tes propres modules (Bash, shell, Py,...)
et profiter des avantages (idempotence, récursivité, boucle, monitoring,...) qu'offrent ces outils.
Tu peux alors consacrer plus de temps sur des objectifs plus personnel que programmer des boucles, du monitoring, ...

Pour ansible par exemple, tu peux tout centraliser sur une machine et éxecuter les modules sur d'autres machines "remote" y compris tes propres modules. Lorsque c'est fini, il n'a pas de traces de "l'executeur" sur les machines distantes.
En quelques ligne de codes, tu peux patcher tout ton parc de machines, deployer tes outils, faire du nettoyage, etc...
AL1
1827
Ansible ça nécessite quand même que Python soit installé sur les machines cibles. Pas un problème avec une distro relativement récente ou si on peut installer ce qu'on veut dessus mais ce n'est pas forcément le cas.

Mais oui sinon c'est top comme outil et faut pas réinventer la roue.

[ Dernière édition du message le 02/02/2019 à 13:40:51 ]

1828
Bon au final c'est quasiment fini ! C'est fonctionnel mais il y a encore besoin de peaufiner et d'améliorer quelques trucs. Du coup entre temps me suis rendu compte que ce qu'il me faut c'est une session ssh interactive par machine pour ne pas perdre les instructions qui avaient pu être faites avant. Il y a une solution ici dont je me suis mal inspiré pour faire mon truc (avec très peu de modifs pour le moment). Voila si jamais ca peut servir : https://daanlenaerts.com/blog/2016/07/01/python-and-ssh-paramiko-shell/
1829
Est-ce qu’il n’y a pas même une librairie pour faciliter l’utilisation d’une telle session ssh ? Il le semble que ça existait en Perl.

[ Dernière édition du message le 09/02/2019 à 12:14:30 ]

1830
Oui, paramiko, ce qu'il a utilisé.