From 14b844915d82e2246e32e68414cf69a6c7044393 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Wed, 6 Mar 2019 18:24:49 +0100 Subject: [PATCH] Ajout d'infos pour AWS EC2 et CLI --- HowtoAmazon/AWS-CLI.md | 42 +++++++++++++++++++++ HowtoAmazon/Amazon-EC2.md | 77 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 HowtoAmazon/AWS-CLI.md diff --git a/HowtoAmazon/AWS-CLI.md b/HowtoAmazon/AWS-CLI.md new file mode 100644 index 00000000..612fafce --- /dev/null +++ b/HowtoAmazon/AWS-CLI.md @@ -0,0 +1,42 @@ +--- +categories: Amazon +title: AWS CLI +... + +Amazon propose un outil en ligne de commande pour interagir avec ses outils AWS. + +* Documentation : https://docs.aws.amazon.com/cli/latest/index.html + +## Installation + +Il s'agit d'un ensemble de scripts Python qui sont installable avec PIP mais surtout via un paquet Debian : + +~~~ +# apt install awscli +~~~ + +## Configuration + +La commande `configure` de stocker dans un fichier les valeurs par défaut pour 4 options courantes. + +~~~ +$ aws configure +AWS Access Key ID [None]: +AWS Secret Access Key [None]: +Default region name [None]: +Default output format [None]: +~~~ + +Si vous renseignez vos identifiants, ils seront stockés dans `~/.aws/credentials`. Vérifiez bien les permissions d'accès à ce fichier car ces identifiants donnent accès à l'ensemble des actions possibles sur AWS. + +Il est possible de créer un ou plusieurs profils pour pré-enregistrer des options par compte. Il faudra ensuitre indiquer le nom du profil à utiliser au lancement des commandes. + +~~~ +$ aws --profile XXX configure +[…] +$ aws --profile XXX [options] +~~~ + +L'option `--output` permet d'indiquer si on souhaite une sortie en `text`, `xml` ou `json`. + +Lors des appels à des commandes, il peut être nécessaire de fournir l'identifiant de l'instance, le nom de la région… Si la commande est exacutée depuis une instance AWS, certaines de ces infos sont dynamiquement accessible depuis des [API de méta-données](Amazon-EC2). diff --git a/HowtoAmazon/Amazon-EC2.md b/HowtoAmazon/Amazon-EC2.md index f7724244..d1692eaf 100644 --- a/HowtoAmazon/Amazon-EC2.md +++ b/HowtoAmazon/Amazon-EC2.md @@ -6,11 +6,82 @@ title: Amazon-EC2 * Présentation : * Documentation : -# Présentation +## Présentation Amazon Elastic Compute Cloud (Amazon EC2) est la partie système pure (*compute*). -# AMI Debian +## AMI Debian -Nous préférons utiliser les AMI préparées par l'équipe Debian. Leurs identifiants sont disponibles sur le [Wiki Debian](https://wiki.debian.org/Cloud/AmazonEC2Image), en particulier celles pour [Stretch](https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch). \ No newline at end of file +Nous préférons utiliser les AMI préparées par l'équipe Debian. Leurs identifiants sont disponibles sur le [Wiki Debian](https://wiki.debian.org/Cloud/AmazonEC2Image), en particulier celles pour [Stretch](https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch). + +## Meta-données + +Une instance EC2 peut accéder à un ensemble de méta-données sur elle-même. +Elles sont accessible en HTTP par nom d'hôte (`instance-data`) ou adresse IP (`169.254.169.254`). + +~~~ +$ wget -q -O - http://instance-data/latest/meta-data/instance-id +i-0a534900aa4c582d7 +~~~ + +La liste des informations accessibles : +* ami-id +* ami-launch-index +* ami-manifest-path +* block-device-mapping/ +* events/ +* hostname +* identity-credentials/ +* instance-action +* instance-id +* instance-type +* local-hostname +* local-ipv4 +* mac +* metrics/ +* network/ +* placement/ +* profile +* public-hostname +* public-ipv4 +* public-keys/ +* reservation-id +* security-groups + +Il est également possible d'y accéder via un outil plus haut niveau, généralement préinstallés sur les images d'Amzon, ou disponibles via le paquet `cloud-guest-utils`. + +~~~ +$ ec2metadata +ami-id: ami-0539351fee4a5a3b1 +ami-launch-index: 0 +ami-manifest-path: (unknown) +ancestor-ami-ids: unavailable +availability-zone: ap-southeast-1a +block-device-mapping: ami +ebs1 +root +instance-action: none +instance-id: i-0a534900aa4c582d7 +instance-type: t2.medium +local-hostname: ip-172-27-22-121.ap-southeast-1.compute.internal +local-ipv4: 172.27.22.121 +kernel-id: unavailable +mac: unavailable +profile: default-hvm +product-codes: unavailable +public-hostname: ec2-18-164-130-102.ap-southeast-1.compute.amazonaws.com +public-ipv4: 18.164.130.102 +public-keys: ['ssh-rsa […]'] +ramdisk-id: unavailable +reserveration-id: unavailable +security-groups: foo-bar +user-data: unavailable +~~~ + +Il est possible de restreindre la commande : + +~~~ +$ ec2metadata --instance-id +i-0a534900aa4c582d7 +~~~