Aller au contenu principal

Aqua un outil DevOps pour les installer tous

· 4 minutes de lecture
Stéphane ROBERT

logo devops

A l'image d'asdf, aqua est un nouvel outil permettant d'installer de très nombreux outils. Pa exemple, vous travaillez pour un client qui utilise Kubernetes 1.27 et Terraform 1.5.0. Ensuite, on vous met sur un nouveau projet client qui lui utilise Kubernetes 1.25 et Terraform 1.3.6. Si vous ne gérez pas vos versions correctement cela peut vite tourner au drame avec des incompatibilités ou du code non pris en charge au moment de la livraison de celui-ci.

Installation

L'installation d'aqua se fait en deux temps. En premier, il faut télécharger l'installateur et l'exécuter :

curl -sSfL -O https://raw.githubusercontent.com/aquaproj/aqua-installer/v2.1.1/aqua-installer
echo "c2af02bdd15da6794f9c98db40332c804224930212f553a805425441f8331665 aqua-installer" | sha256sum -c
chmod +x aqua-installer
./aqua-installer

Ensuite, il faut modifier le PATH en ajoutant ces deux lignes dans votre fichier .zshrc ou .bashrc :

export PATH="${AQUA_ROOT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/aquaproj-aqua}/bin:$PATH"

On vérifie qu'il est bien installé :

aqua -v
aqua version 2.10.1 (fbf3b157b21897fa2f315fbc30474acafded108d)

Recherche des outils disponibles

Avant d'installer les outils, quels sont ceux disponibles ? Cela se fait avec la commande list :

aqua list
...

standard,dolthub/dolt
standard,gojuno/minimock
standard,helmfile/helmfile
standard,omegion/ssh-manager
standard,datreeio/datree
standard,goark/depm
standard,rancher/k3d
standard,mailru/easyjson

Actuellement 1227 outils sont disponibles ! Pour rechercher un outil, il faudra ajouter la commande grep derrière :

Installation des outils

Il existe deux façons d'installer les outils locaux et globale.

Installation locale

Création du fichier de configuration

Pour installer les outils localement, c'est-à-dire dans un dossier précis, il faut créer un fichier de configuration aqua.yml avec la commande init :

aqua init

cat aqua.yml

# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
# checksum:
# enabled: true
# require_checksum: true
# supported_envs:
# - all
registries:
- type: standard
ref: v4.32.0 # renovate: depName=aquaproj/aqua-registry
packages:

Ajout des outils

Pour ajouter un outil, on utilise la commande generate suivi de l'option de -i :

aqua g -i

Sélectionner un ou plusieurs outils. Normalement dans le fichier de configuration, vous devriez voir apparaître dans la section packages les outils que vous avez sélectionnés.

---
# aqua - Declarative CLI Version Manager
# https://aquaproj.github.io/
# checksum:
# enabled: true
# require_checksum: true
# supported_envs:
# - all
registries:
- type: standard
ref: v4.32.0 # renovate: depName=aquaproj/aqua-registry
packages:
- name: derailed/k9s@v0.27.4

Pour changer de version d'un outil, il faut modifier ce fichier de configuration. Sinon ajouter l'option -s à la commande précédente :

aqua g -i -s

Pour le moment les outils ne sont pas installés. Pour lancer l'installation, il faut utiliser la commande install :

aqua install

INFO[0000] create a symbolic link aqua_version=2.10.1 command=k9s env=linux/amd64 program=aqua
INFO[0000] download and unarchive the package aqua_version=2.10.1 env=linux/amd64 package_name=derailed/k9s package_version=v0.27.4 program=aqua registry=standard

k9s version
____ __.________
| |/ _/ __ \______
| < \____ / ___/
| | \ / /\___ \
|____|__ \ /____//____ >
\/ \/

Version: v0.26.7
Commit: 37569b8772eee3ae29c3a3a1eabb34f459f0b595
Date: 2022-10-18T15:02:30Z

Installation globale

Il est possible d'installer des outils de manière générale, c'est-à-dire accessible quel que soit le dossier où on se trouve.

Le principe est le même sauf que le fichier de configuration doit être créé dans le répertoire ~/.config/aquaproj-aqua :

mkdir -p "${HOME}/.config/aquaproj-aqua"

On va initialiser le fichier de config :

cd $AQUA_GLOBAL_CONFIG
aqua init

On installe les outils comme lors de l'installation locale, sans quitter le dossier.

aqua g -i -s

Plus loin

aqua est assez complet. Il regorge de fonctionnalités comme :

  • la gestion des policies. Ces policies permettent de restreindre l’installation et l’exécution de packages. L’objectif principal de ces politiques est d’améliorer la sécurité en empêchant l’exécution d’outils malveillants.
  • l'intégration de renovate
  • la création d'image docker contenant des outils.

Par contre, tout cela fera l'objet de prochains billets.