Avec un PC sous Windows, l’utilisation des clients Cloud (Aws cli, Gcloud SDK, …) se font à partir du powershell, ou des lignes de commandes Windows. Pour les habitués d’Unix, ou avec certains outils, Linux peut être préférable.
Pour rester sur un Linux, à partir de son PC, les possibilités sont multiples :
- Une image virtuelle VMware, VirtualBox ou un container docker avec un système Linux (consommateur en ressources)
- Le Git Bash ou VSCode qui émulent certaines commandes Linux (mais cela reste très limité)
- Ou encore un dual boot avec l’installation sur son PC d’un système Linux (Lourd pour basculer de l’un à l’autre).
Une possibilité plus récente, et très simple d’utilisation, c’est le Windows Subsystem Linux (WSL), qui permet d’intégrer un Linux en système secondaire de Windows.
Nous allons voir comment installer cela, tout en conservant les versions Aws cli ou Gcp pour Windows présentes sur son PC.
Installation du système
Tout d’abord, il faut autoriser l’utilisation de WSL (Windows Subsystem Linux).
Lancer PowerShell en mode Administrateur et exécuter la commande :
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Un reboot de Windows peut vous être demandé pour prise en compte de l’option.
Ensuite, lancer le Microsoft Store, et effectuer une recherche sur « subsystem linux ».
Un certain nombre de systèmes Linux certifiés par Microsoft sont utilisables.
Ici, je télécharge le système Debian, c’est la version 10 (Buster).
et après installation sur le PC, il apparait une icone de lancement d’un bash shell Debian
avec lancement de mon terminal shell en cliquant dessus.
Mon Linux est directement utilisable,
un « sudo apt update » et « sudo apt-get upgrade » sont conseillés pour la mise à jour système.
L’accès aux fichiers Windows est immédiat, par exemple, pour ma configuration Aws cli Windows :
tof@LAPTOP-MUCLUDKI:~$ ls /mnt/c/Users/MonUserWindows/.aws cli config credentials
Facile dans ce cas de partager sa configuration client.
Installation de l’environnement pour les client Cloud (Python, pip,…)
Les clients Aws et Gcp utilisent python, voici un exemple d’installation pour python3.
Tout d’abord, vérifier vos repositories systèmes,
$ cat /etc/apt/sources.list deb http://deb.debian.org/debian buster main deb http://deb.debian.org/debian buster-updates main deb http://security.debian.org/debian-security/ buster/updates main deb http://ftp.debian.org/debian buster-backports main
Cela contient les repositories Debian pour permettre les mises à jour en version 10.
Si vous avez une version précédente, le nom de la version sera différent de « buster ».
// Installation de Python
$ sudo apt-get install python3.7 $ sudo apt-get install curl
// Installation de Pip
$ sudo apt-get install python3-pip ....... $ pip3 -V pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
$ pip3 list
Package Version ------------- ------- asn1crypto 0.24.0 cryptography 2.6.1 ..... wheel 0.32.3
Installation des clients Aws et Gcp
Aws cli
Installation du client AWS
pip3 install awscli --upgrade –user
pip3 installe aws cli dans le répertoire ./.cache/bin
Nous modifions donc notre PATH dans le profile Shell pour le lancement d’aws cli
vi .bashrc // ajout du PATH d’aws cli export PATH=~/.local/bin:$PATH
// configuration d’aws cli par un aws configure, ou lien vers les fichiers aws cli existant sous Windows (c’est mon cas)
$ ln -s /mnt/c/Users/MonUserWindows/.aws .aws $ ls -lart drwxr-xr-x 1 root root 4096 Sep 4 15:45 .. -rw-r--r-- 1 tof tof 220 Sep 4 15:45 .bash_logout -rw-r--r-- 1 tof tof 807 Sep 4 15:45.profile -rw------- 1 tof tof 158 Sep 4 15:58 .bash_history drwxrwxrwx 1 tof tof 4096 Sep 4 17:25 .cache drwx------ 1 tof tof 4096 Sep 4 17:25 .local -rw------- 1 tof tof 16 Sep 4 17:32 .python_history -rw-r--r-- 1 tof tof 3587 Sep 4 17:39 .bashrc lrwxrwxrwx 1 tof tof 28 Sep 4 17:42 .aws -> /mnt/c/Users/MonUserWindows/.aws
relance du .profile et test du client aws :
$ aws s3 ls 2019-01-22 12:12:53 cloud9-781069644572-sam-deployments-eu-west-1 2019-05-18 12:25:58 cpa-s3-data 2019-02-12 16:19:15 cpa-s3-log 2019-03-14 17:26:42 cpa-tf-web
GCP Cloud SDK
Si la commande lsb_release n’est pas préinstallée, ajoutez le package suivant :
$ sudo apt install lsb-release ... $ lsb_release -c -s buster
Puis installation du Gcp Cloud SDK
$ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" $ echo $CLOUD_SDK_REPO cloud-sdk-buster $ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list deb http://packages.cloud.google.com/apt cloud-sdk-buster main $ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
$ sudo apt-get update && sudo apt-get install google-cloud-sdk Hit:1 http://deb.debian.org/debian buster InRelease Get:2 http://security.debian.org/debian-security buster/updates InRelease [39.1 kB] Get:3 http://deb.debian.org/debian buster-updates InRelease [49.3 kB] …….…….
Voila, les binaires sont installés, nous lançons maintenant la configuration :
$ gcloud init Welcome! This command will take you through the configuration of gcloud. Your current configuration has been set to: [default] ...
Après les étapes de contrôles et de diagnostics, il est demandé de vous connecter sur votre compte, avec vérification par saisie du code généré :
You must log in to continue. Would you like to log in (Y/n)? Y Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&prompt=select_account&response_type=code&client_id=32555940559.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fappengine.admin+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcompute+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&access_type=offline Enter verification code:
Une fois le code saisi, le client peut terminer la configuration à partir de la connexion au compte :
You are logged in as: [XXXXXXX@gmail.com]. Pick cloud project to use: [1] my-kubernetes-codelab-247807 [2] prefab-sky-233708 [3] serverless-719e0 [4] training-project-239412 [5] Create a new project Please enter numeric choice or text value (must exactly match listitem): 4 Your current project has been set to: [training-project-239412]. Do you want to configure a default Compute Region and Zone? (Y/n)? Y Which Google Compute Engine zone would you like to use as project .....
La configuration une fois terminée est visible dans le répertoire : ~/.config/gcloud/configurations
Vous pouvez valider le bon usage par la commande « gcloud projects list » qui affichera les projets créés pour votre compte Gcp.
Il ne reste qu’à copier vos fichiers ssh :
mkdir .ssh chmod 700 .ssh cp /mnt/c/Users/MonUserWindows/.ssh/* ./.ssh chmod 600 .ssh/*
et vous avez un système linux light, facile à utiliser, et disponible en un clic.