24 nov. 2017

[Windows] logiciels pour se faciliter la vie

Cet article est en quelque sorte une suite de l'article suivant :

Mais plus personnel.

Le monde du travail est assez contraignant en matière de d'outils et nous contraint souvent à travailler avec des solutions logicielles non voulues et notamment de l'OS.
C'est le cas de l'OS.
J'ai commencé à travailler sur Windows 2000 puis Windows XP et maintenant Windows 7 et bientôt Windows 10.

Ce que j'ai constaté c'est que l'offre logicielles a bien évoluée avec un changement de stratégie de Microsoft qui est passé d'un point de vu très hostile à Linux à maintenant une interopérabilité.
Je préférerais bien évidemment travailler sur Linux mais cela deviendrait extrèmement compliqué, m'obligerais à installer une VM Windows non standard (avec l'entreprise) et ne pas pouvoir bénéficier du VPN par exemple.

En travaillant sous Windows voici une liste de logiciel que j'utilise pour me faciliter la vie :

Un éditeur : Notepad++

J'utilise Notepad++ qui me permet de formater de fichier, les analyser, les comparer, faire des petits scripts, etc.
Notamment car il y a une offre assez intéressante de Plugins permettant comme Compare (diff) , JSON viewer, XML tools, AutoSave2, etc.


Une IDE : Visual Studio Code

Pour le code plus sérieux, j'utilise l'IDE Visual Studio Code comme j'ai pu l'expliquer ici : http://astunix.blogspot.fr/2017/11/code-ide-pour-devops-sysadmin.html
J'utilisais surtout Notepad++ mais cela devenait un peu lourd par exemple pour pousser les changements directement dans le git.
Visual Studio Code a vraiment une plus valus et j'était un peu réticent au début du fait que ce soit Microsoft.
Un panel de Plugins est disponible.

Une bonne surprise.



Un SHELL + un client SSH : MobaXterm

Avant j'utilisais principalement Putty et Cygwin
MobaXterm a permis d'allier à la fois le Shell et le client SSH avec en plus un apt-get qui fonctionne pour installer des outils. Il y a un client SFTP intégrer qui permet de bouger facilement des fichiers entre mon poste local et mes machines distantes.

Même si la version gratuite est agréable à utiliser, la version payante permet de se faciliter la vie en enregistrant plein de hosts par exemple.


Pour faire des Requêtes HTTP : Postman

Ayant besoin de faire régulièrement des requêtes HTTP, j'utilise Postman qui est vraiment un plus car on peut enregistrer les requêtes


Gestion de sources : TortoiseGit

TortoiseGit marche plutôt bien et s'intègre à mon environnement


Virtualisation : VirtualBox

N'ayant pas trop besoin de VMs sur mon poste de travail car ayant à disposition un serveur ESXi et une offre cloud. J'utilise néanmoins VirtualBox pour tester des OS, etc. 


22 nov. 2017

[ANSIBLE] commande à distance

Comment lancer une commande à distance sur différents noeuds ?

Par exemple si l'on veut redémarrer plusieurs noeuds, cela peut être embêtant de taper plusieurs fois la même commande.

$ ansible all -m shell -a "sudo systemctl restart pm2" -i environment/env1/env1 --become

Plus d'informations ici : http://www.mydailytutorials.com/running-ad-hoc-command-ansible-tutorial/

8 nov. 2017

[Code] IDE pour devops / sysadmin

Éditeur de texte graphique pour un DevOps ou Administrateur systèmes et réseaux



Je cherchais un IDE me permettant de coder mes scripts Shell, Ansible, mais aussi mes templates Azure ou Jenkinsfile.
Car je jonglais entre VIM et git sur Linux et Notepad++ et TortoiseGit sur Windows.

J'ai d'abord essayé IntelliJ qui me semblait pas mal du tout sur le papier mais était trop lourd pour ce que j'avais à faire (pas de compilation).

Un collègue m'a suggéré d'essayer Visual Studio Code de Microsoft. Après une journée d'utilisation: prise en main facile, connexion à mes repos git et travail plus fluides qu'avant...

je le conseille pour l'adminsys ou le devops qui a juste besoin de maintenir du script, en plus c'est multi-plateforme car coder en NodeJS ; dispo sur Windows, Linux, Mac OS X ...


https://code.visualstudio.com/

[Code] Batch vs Bash



Tableaux comparatif du code BATCH (Windows .bat) en code SH BASH (.sh) en anglais.

Table N-1. Batch file keywords / variables / operators, and their shell equivalents

Batch File OperatorShell Script EquivalentMeaning
%$command-line parameter prefix
/-command option flag
\/directory path separator
===(equal-to) string comparison test
!==!!=(not equal-to) string comparison test
||pipe
@set +vdo not echo current command
**filename "wild card"
>>file redirection (overwrite)
>>>>file redirection (append)
<<redirect stdin
%VAR%$VARenvironmental variable
REM#comment
NOT!negate following test
NUL/dev/null"black hole" for burying command output
ECHOechoecho (many more option in Bash)
ECHO.echoecho blank line
ECHO OFFset +vdo not echo command(s) following
FOR %%VAR IN (LIST) DOfor var in [list]; do"for" loop
:LABELnone (unnecessary)label
GOTOnone (use a function)jump to another location in the script
PAUSEsleeppause or wait an interval
CHOICEcase or selectmenu choice
IFifif-test
IF EXIST FILENAMEif [ -e filename ]test if file exists
IF !%N==!if [ -z "$N" ]if replaceable parameter "N" not present
CALLsource or . (dot operator)"include" another script
COMMAND /Csource or . (dot operator)"include" another script (same as CALL)
SETexportset an environmental variable
SHIFTshiftleft shift command-line argument list
SGN-lt or -gtsign (of integer)
ERRORLEVEL$?exit status
CONstdin"console" (stdin)
PRN/dev/lp0(generic) printer device
LPT1/dev/lp0first printer device
COM1/dev/ttyS0first serial port

Table N-2. DOS commands and their UNIX equivalents

DOS CommandUNIX EquivalentEffect
ASSIGNlnlink file or directory
ATTRIBchmodchange file permissions
CDcdchange directory
CHDIRcdchange directory
CLSclearclear screen
COMPdiff, comm, cmpfile compare
COPYcpfile copy
Ctl-CCtl-Cbreak (signal)
Ctl-ZCtl-DEOF (end-of-file)
DELrmdelete file(s)
DELTREErm -rfdelete directory recursively
DIRls -ldirectory listing
ERASErmdelete file(s)
EXITexitexit current process
FCcomm, cmpfile compare
FINDgrepfind strings in files
MDmkdirmake directory
MKDIRmkdirmake directory
MOREmoretext file paging filter
MOVEmvmove
PATH$PATHpath to executables
RENmvrename (move)
RENAMEmvrename (move)
RDrmdirremove directory
RMDIRrmdirremove directory
SORTsortsort file
TIMEdatedisplay system time
TYPEcatoutput file to stdout
XCOPYcp(extended) file copy