Bash


Journaux liées à cette note :

Journal du lundi 21 octobre 2024 à 22:36 #DevOps, #shell, #JaiLu

J'étudie Oils (shell) afin de me faire une idée si il pourrait être un bon compromis entre l'utilisation de Bash et Ansible pour l'implémentation de script de déploiement pour de toute petite infrastructure.

#JaiLu A Tour of YSH

Journal du vendredi 18 octobre 2024 à 22:51 #grafana, #DevOps, #InfrastructureAsCode, #JaiDécouvert

En cherchant un outil d'Infrastructure as code pour Grafana, #JaiDécouvert Grizzly.

Un projet qui a débuté en mars 2020, développé en Go par l'équipe de Grafana.

A utility for managing Jsonnet dashboards against the Grafana API

J'ai parcouru l'intégralité de la documentation et je suis ravi, ce projet correspond parfaitement à ce que je cherchais depuis des années !

Avant de découvrir cet outil, j'écrivais des scripts Python ou Bash d'exportation et d'importation de dashboards via l'API de Grafana.

Je souhaite l'utiliser dans le Projet 14 - Script de base d'installation d'un serveur Ubuntu LTS. Dans le repository basic_ubuntu_server_install_playground.

Journal du lundi 14 octobre 2024 à 14:24 #bash, #JaiDécouvert

#JaiDécouvert en Bash que si EOF est entre guillements, c'est-à-dire 'EOF' alors les variables $ ne seront pas substitué.

Exemple, le script suivant :

cat <<'EOF' > /test.sh
echo "Hello, $USER"
EOF

est l'équivalent de :

cat <<EOF > /test.sh
echo "Hello, \$USER"
EOF

Documentation à ce sujet dans la seciton "Here Documents" du manuel de Bash :

No parameter and variable expansion, command substitution, arithmetic expansion, or filename expansion is performed on word. If any part of word is quoted, the delimiter is the result of quote removal on word, and the lines in the here-document are not expanded.
If word is unquoted, all lines of the here-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \newline is ignored, and ‘\’ must be used to quote the characters ‘\’, ‘$’, and ‘`’.

Journal du mercredi 22 mai 2024 à 11:57 #coding, #bash, #conseil

Alexandre vient de me donner le conseil Bash suivant.

De remplacer mon usage de :

set -e`

par :

set -euo pipefail
  • e => Arrête l'exécution à la première erreur
  • u => Génère une erreur si une variable n'est pas définie (il faut mettre des valeurs par défaut aux variables d'env)
  • o pipefail => Renvoie une erreur si une commande dans un pipe échoue

Je lui dit merci 🙂.