26 avr. 2016

[JSON] correcteur de syntaxe

Comment corriger sa syntaxe ou détecter des erreurs?

il peut arriver que l'on oublie ou laisse une virgule là où il ne faut pas. Qu'une accolade ne soit pas fermée...

Ce site est pas mal pour tester son code json:

https://jsonformatter.curiousconcept.com/

21 avr. 2016

[Ansible] Réaliser une tâche si un fichier existe ou pas

Dans Ansible, si l'on cherche à réaliser une tâche, ou simplement l'ignorer, nous pouvons utiliser la fonction "stat" permettant de "variabiliser" le chemin d'un fichier et vérifier s'il est présent ou non avec "variable.stat.exists".


Plus de détail dans l'article ci-dessous (en anglais) dont voici la source : https://raymii.org/s/tutorials/Ansible_-_Only_if_a_file_exists_or_does_not_exist.html


Ansible - Only if a file exists or does not exist

Table of Contents

This Ansible playbook example helps you execute actions only if a file exists or does not exist. If you for example have a command you need to run to generate a certificate (or Diffie Hellman parameters for nginx) you only want to do that once. The command itself is not convergent so it will run with every ansible run. However, the command creates a file and Ansible is able to check if that file exists. If the file exists, it will not execute the action. The same goes for checking if a file does exist and only executing the action if it exists. (The action you want to do will remove that file).

The below example command will generate Diffi Hellman parameters for NGINX ssl. This command creates the file /etc/ssl/certs/dhparam.pem. It should run only if that file does not exist (because only newly deployed servers will not have the file), if the file exist there is no need to run again.
- command: sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 creates=/etc/ssl/certs/dhparam.pem
Ansible has the creates option in the command module. Give it a filename (directories will not work) and if it already exists Ansible will skip the action.

The same goes for only executing an action if a file exists. The command you are using will remove that file, so only if the file is there the action should be executed. Just as the creates option, there is the removes option. For the removes option, you need at least Ansible 0.8.

The below example is for a custom piece of software one of my clients uses. If we deploy a new version, we check out the code repository and run a script to install a new version. That script will only run when the configuration file is renamed to software.conf.upgrade. After the upgrade it renamed that config file to the original software.conf and also puts the config in its database. It is sadly proprietary software and the manufacturer has stated they are not changing the behavior to a more sane default. The below example will only run the upgrade script when the file /etc/software/software.conf.upgrade exists. Since the script removes it, the next time Ansible runs it does not try to upgrade the software.
- command: /opt/software/bin/upgrade removes=/etc/software/software.conf.upgrade
Documentation for the Command Module

If you have other commands which do not support the creates option, you need to first use the stat module and register the result of that. This example is for the Shorewall firewall. We first check if the rules file exists:
- stat: path=/etc/shorewall/rules
  register: shorewall_rules
We fill the shorewall_rules variable with the result of this action. The next two actions add a rule to the rules file and restart the firewall, but only if the rules file exists:
- lineinfile: 'dest=/etc/shorewall/rules state=present regexp="^ACCEPT net0:192\.0\.2\.22 \$FW tcp 5666" line="ACCEPT net0:192.0.2.22 $FW tcp 5666"'
  when: shorewall_rules.stat.exists == True

- command: "shorewall restart"
  when: shorewall_rules.stat.exists == True
If you want to do stuff when a file is not present, you can check if the result is False, like so:
- action: example
  when: stat_result.stat.exists == False


[RHEL / CENTOS 7] Créer un service systemd

Créer un fichier nom.service dans /etc/systemd/system/ avec le contenu si dessous :
[Unit]
Description=Nom Service
After=tlp-init.service

[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/bin/nom-service.ksh

[Install]
WantedBy=multi-user.target
Démarrage du service :
systemctl start nom.service
Activation du service au démarrage :
systemctl enable startup.service

Source : http://www.system-linux.eu/index.php?post/2016/02/26/Cr%C3%A9er-un-service-avec-systemd

[DICO] ETL et ELT

L'ETL (Extract, Transform, Load) est un processus d'intégration des données qui permet de transférer des données brutes d'un système source, de les préparer pour une utilisation en aval et de les envoyer vers une base de données, un entrepôt de données ou un serveur cible. Dans ce processus la transformation des données intervient sur un serveur intermédiaire avant le chargement sur la cible.

Cette fonction s'avère particulièrement utile pour le traitement de vastes ensembles de données hétérogènes dans le cadre de l'analytique du Big Data et de l'informatique décisionnelle.

Une variante est l’ELT (Extract, Load, Transform) qui permet le chargement des données brutes directement sur la cible, où elles seront alors transformées.

L'un des principaux attraits de l'ELT tient à la réduction des délais de chargement par rapport au modèle ETL. En effet, tirer parti de la capacité de traitement intégrée à l'infrastructure d'un entrepôt de données permet souvent de diminuer le temps nécessaire au transfert des données et peut se révèler plus économique.



Source: http://www.lemagit.fr/definition/ETL-et-ELT

13 avr. 2016

Un shell Unix sur Windows 10?

Quand j'ai entendu parler de cette histoire de Shell sous Windows, je dois avoué que je pensais à un poisson d'avril, mais apparemment ça serait vrai! Lire l'article de developpez.net : http://www.developpez.com/actu/97678/Windows-10-la-premiere-build-avec-le-support-du-Shell-Unix-Bash-est-disponible-pour-les-testeurs-du-programme-Windows-Insider/

Windows 10 : la première build avec le support du Shell Unix Bash est disponible

Pour les testeurs du programme Windows Insider


Build 2016, la conférence annuelle de Microsoft dédiée aux développeurs s’est déroulée la semaine dernière et a livré une série d’annonces intéressantes. Parmi celles-ci, le support de Bash dans Windows 10 était l’une des plus surprenantes, mais également des plus appréciées par les développeurs. Pour rappel, Bash (l’acronyme de Bourne Again Shell) est un interpréteur de ligne de commande de type script et le Shell Unix du projet GNU.

Comme Microsoft l’a expliqué, il ne s’agit ni d’une compilation croisée ni d’une machine virtuelle qui permettra d’exécuter l’interpréteur de ligne de commande sous Windows 10. L’exécution de Bash sous Windows 10 sera native, et cela grâce à un partenariat avec Canonical qui a permis la création d'un sous-système dédié, Windows Subsystem for Linux (WSL), capable d’exécuter des binaires Linux. WSL a été discrètement débarqué dans la build 14251 de Windows 10. « La résultante est qu’il vous est désormais possible d’exécuter du Bash natif Ubuntu sur Windows », a annoncé Microsoft lors de sa conférence.

À peine une semaine après l’annonce, les développeurs membres du programme Windows Insider pourront déjà commencer à tester l’interpréteur de ligne de commande, dont le support vient de débarquer dans une nouvelle build de l’OS. En effet, dans un billet de blog dédié à la sortie de la build 14316, Microsoft a annoncé hier que « vous pouvez exécuter Bash en mode natif sous Windows comme annoncé la semaine dernière à la Build 2016 ». La société fournit également les instructions pour installer l’interpréteur de ligne commande sous Windows 10.

Toutefois, avant de se lancer, il est important de rappeler quelques précisions fournies la semaine dernière par Mike Harsh de Microsoft :
  •     tout d’abord, c’est la première fois que cet outil est proposé (et est catégorisé « bêta » pour cette raison) : nous savons qu’il y aura des choses qui ne fonctionneront pas comme vous vous y attendiez. N’espérez pas voir des scripts Bash qui vont fonctionner à la perfection. Mais essayer cette fonctionnalité nous permet de savoir ce sur quoi nous avons besoin de travailler afin de l’améliorer ;
  •     ensuite, bien que vous serez en mesure d’exécuter du Bash en natif ainsi que plusieurs lignes de commande Linux sur Windows, il est important de garder à l’esprit que c’est une boîte à outils développeurs qui a été pensée pour vous aider à écrire et concevoir vos codes pour vos scénarios et plateformes. Il ne s’agit pas là d’une plateforme serveur sur laquelle vous pourrez héberger vos sites, exécuter des infrastructures serveur, etc. ;
  •     enfin, rappelez-vous que Bash et les outils Linux ne peuvent pas interagir avec les applications et outils Windows. Alors vous ne serez pas en mesure de lancer Notepad depuis Bash ou de lancer Ruby sur Bash depuis PowerShell.
Si le Shell Bash ne sera pour l'instant disponible que pour les Windows Insiders, la nouvelle fonctionnalité pourrait débarquer chez tout le monde l’été prochain, avec la mise à jour anniversaire de Windows 10.

Source : Microsoft

12 avr. 2016

[ANSIBLE] fatal: [host1] => Missing become password

En lançant un playbook j'ai obtenu le message d'erreur suivant:
fatal: [host1] => Missing become password
 Mon playbook comportant un :
  sudo: true
et sudo ayant besoin d'un mot de passe que l'on ne peut pas taper, la solution est d'éditer ansible.cfg à la racine de votre répertoire ansible et ajouter :

ask_sudo_pass = yes
Source de la solution :  http://serverfault.com/questions/690644/what-does-localhost-failed-missing-become-password-mean-how-do-i-get-pas

8 avr. 2016

[LINUX]Comment trouver un uuid pour rajouter un disque dans /etc/ftab ?

Je voulais faire un article là dessus et finalement j'ai trouver tout ici : http://www.marmottux.org/index.php/post/2010/10/03/Comment-trouver-un-uuid-pour-rajouter-un-disque-dans-/etc/ftab


Vous avez rajouté un disque dans votre machine et vous souhaitez le rajouter dans /etc/fstab, comment procéder ?

Identifiez le disque :

Avec un disque de 1.5 To ;
dmesg |grep 1.5
3.641155 sd 2:0:0:0: sdb 2930277168 512-byte logical blocks: (1.50 TB/1.36 TiB)
Quelle partition ?
fdisk /dev/sdb
touche p
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1 1 182401 1465136001 83 Linux
quitter touche q
Trouver le uuid
ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 oct.   3 19:14 4a21e0cc-d99d-4203-a6c7-b9fc4ddf4571 -> ../../sdb1
Editer fstab :

Créer le répertoire :
mkdir /mnt/disque
vi /etc/fstab
Rajouter une ligne :
UUID=4a21e0cc-d99d-4203-a6c7-b9fc4ddf4571 /mnt/disque               ext4  defaults        0       1
enregistrer le fichier
:wq
montez le système de fichier :
mount -a
Tapez mount :
/dev/sdb1 on /mnt/disque type ext4 (rw)
Votre système de fichier est monté et prêt à être utilisé

NB : Faites attention aux droits d'accès

Différences majeures entre Red Hat 6, 7, 8 et 9

Quelles sont les différences majeures entre RHEL 6, 7, 8 et 9 ? Système de fichiers RHEL 6: Par défaut : ext4. Autres : ext2, ext3 supportés...