Alibaba Cloud Command Line Interface (CLI) est un outil qui permet de gérer les ressources Alibaba Cloud depuis votre terminal en appelant des opérations OpenAPI. Cette rubrique propose des exemples d'utilisation de la CLI Alibaba Cloud pour créer et gérer une instance ECS.
Pour en savoir plus sur la CLI Alibaba Cloud, consultez Qu'est-ce que la CLI Alibaba Cloud ?.
Avant de commencer
Un compte Alibaba Cloud disposant de toutes les autorisations sur l'ensemble des ressources, la divulgation de sa clé AccessKey présente un risque de sécurité élevé. Nous vous recommandons d'utiliser la clé AccessKey d'un utilisateur RAM auquel seules les autorisations minimales requises ont été accordées. Pour plus d'informations, consultez Créer une clé AccessKey.
-
Accordez à l'utilisateur RAM les autorisations nécessaires pour gérer les ressources ECS et VPC. L'exemple de code de cette rubrique crée des ressources telles que des instances, des VPC et des vSwitch. Nous vous recommandons d'accorder les autorisations suivantes :
Service cloud
Autorisation
VPC
Joindre la stratégie système : AliyunVPCFullAccess
ECS
Joindre la stratégie système : AliyunECSFullAccess
-
Installez et configurez la CLI. La CLI Alibaba Cloud est disponible pour Windows, Linux et macOS. Sélectionnez la méthode d'installation appropriée à votre système d'exploitation :
-
Installez la CLI.
-
Configurez la CLI.
Configurez les identifiants et la région de demande de service requis pour appeler les ressources Alibaba Cloud. Pour plus d'informations, consultez Configurer les identifiants.
Si vous avez uniquement besoin d'effectuer un débogage temporaire et ne souhaitez pas installer la CLI Alibaba Cloud, vous pouvez utiliser Cloud Shell. Pour en savoir plus, consultez Qu'est-ce que Cloud Shell ? Pour démarrer Cloud Shell, connectez-vous à la console Alibaba Cloud et cliquez sur l'icône Cloud Shell (une icône de terminal) située à droite de Tickets dans la barre de navigation supérieure.
-
Créer une instance ECS
La création d'une instance ECS nécessite des paramètres tels qu'un ID de vSwitch, un ID de groupe de sécurité et un ID d'image. Vous pouvez utiliser des ID de ressources existants ou en créer de nouveaux en appelant les opérations décrites dans les étapes suivantes.
-
Créez un VPC.
Un VPC est un réseau privé logiquement isolé pour vos ressources cloud.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
CidrBlock
Bloc CIDR du VPC : 192.168.0.0/16
-
Créez un vSwitch.
Un vSwitch est un dispositif réseau de base au sein d'un VPC qui connecte différentes ressources cloud.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
ZoneId
Zone : cn-hangzhou-i
VpcId
ID du VPC : vpc-bp1aag0sb9s4i92i3****
CidrBlock
Bloc CIDR du vSwitch : 192.168.0.0/24
-
Créez un groupe de sécurité.
Un groupe de sécurité est un pare-feu virtuel qui contrôle le trafic entrant et sortant de vos instances ECS.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
VpcId
ID du VPC : vpc-bp1aag0sb9s4i92i3****
-
Ajoutez une règle entrante au groupe de sécurité.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
SecurityGroupId
ID du groupe de sécurité : sg-bp1esyhwfbqeyudt****
IpProtocol
Protocole : tcp
SourceCidrIp
Bloc CIDR source : 0.0.0.0/0
PortRange
Plage de ports :
-
Pour les instances Linux : 22/22
-
Pour les instances Windows : 3389/3389
-
-
Créez une instance ECS.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
ImageId
Image : Utilisez l'image Alibaba Cloud Linux aliyun_3_x64_20G_alibase_20240819.vhd
InstanceType
Type d'instance : ecs.e-c1m1.large
SecurityGroupId
ID du groupe de sécurité : sg-bp1esyhwfbqeyudt****
VSwitchId
ID du vSwitch : vsw-bp1nzprm8h7mmnl8t****
InstanceName
Nom de l'instance : ecs_cli_demo
InstanceChargeType
Définissez sur PostPaid pour créer une instance en paiement à l'utilisation.
RemarqueAssurez-vous que votre compte dispose d'un solde suffisant.
Password
Mot de passe de connexion :
InternetMaxBandwidthOut
Si cette valeur est supérieure à 0, une adresse IP publique est automatiquement attribuée à l'instance.
SystemDisk.Category
Catégorie du disque système : cloud_essd
SystemDisk.Size
Taille du disque système : 40 GiB
Voici le script d'exemple complet :
L'exécution répétée de ce script d'exemple créera des ressources en double et pourrait entraîner des coûts inutiles. Examinez et adaptez le script à vos besoins spécifiques avant de l'exécuter.
#!/bin/bash
# In a production environment, make sure that your AccessKey ID and AccessKey secret
# are securely set by using environment variables or a configuration file.
# 1. Set variables.
INSTANCE_NAME="ecs_cli_demo"
# 2. Install the jq tool.
echo "Installing the jq dependency tool..."
yum install -y jq
sleep 3
# 3. Create a VPC, vSwitch, and security group.
echo "Creating a VPC..."
VpcId=$(aliyun vpc CreateVpc --RegionId cn-hangzhou --CidrBlock 192.168.0.0/16 | jq -r .VpcId)
aliyun vpc DescribeVpcAttribute --RegionId cn-hangzhou --VpcId ${VpcId} --waiter expr='Status' to=Available > /dev/null 2>&1
echo "Creating a vSwitch..."
VSwitchId=$(aliyun vpc CreateVSwitch --CidrBlock 192.168.0.0/24 --VpcId ${VpcId} --ZoneId=cn-hangzhou-i | jq -r .VSwitchId)
echo "Creating a security group..."
SecurityGroupId=$(aliyun ecs CreateSecurityGroup --RegionId cn-hangzhou --VpcId ${VpcId} | jq -r .SecurityGroupId)
aliyun ecs AuthorizeSecurityGroup --RegionId cn-hangzhou --SecurityGroupId ${SecurityGroupId} --IpProtocol tcp --SourceCidrIp 0.0.0.0/0 --PortRange 22/22 > /dev/null 2>&1
read -s -p "Enter your password:" PASSWORD
echo
echo "PASSWORD OK."
# 4. Run the command to create an ECS instance.
echo "Creating the ECS instance..."
INSTANCE_ID_RAW=$(aliyun ecs RunInstances \
--RegionId cn-hangzhou \
--ImageId aliyun_3_x64_20G_alibase_20240819.vhd \
--InstanceType ecs.e-c1m1.large \
--SecurityGroupId ${SecurityGroupId} \
--VSwitchId ${VSwitchId} \
--InstanceName $INSTANCE_NAME \
--InstanceChargeType PostPaid \
--InternetMaxBandwidthOut 1 \
--Password $PASSWORD \
--SystemDisk.Category cloud_essd \
--SystemDisk.Size 40)
# 5. Extract the instance ID for later use.
INSTANCE_ID=$(echo "$INSTANCE_ID_RAW" | jq -r '.InstanceIdSets.InstanceIdSet[]')
# 6. Wait for 20 seconds for the ECS instance to be created.
echo "Waiting for the ECS instance to be created..."
sleep 20
# 7. Query the ECS instance status.
echo "Querying the ECS instance status..."
INSTANCE_ID_QUOTED=$(printf '"%s"' "$INSTANCE_ID")
aliyun ecs DescribeInstances \
--RegionId cn-hangzhou \
--InstanceIds "[${INSTANCE_ID_QUOTED}]" \
--output cols=InstanceId,InstanceName,InstanceType,ImageId,Status rows=Instances.Instance[]
Créez et exécutez le script shell. Le résultat attendu est le suivant :
[root@i-xxxxx Z ~]# bash ecs-cli.sh
Installing the jq dependency tool...
Last metadata expiration check: 0:24:56 ago on Tue 22 Oct 2024 09:24:50 AM CST.
Package jq-1.6-15.al8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Creating a VPC...
Creating a vSwitch...
Creating a security group...
Enter your password:
PASSWORD OK.
Creating the ECS instance...
Waiting for the ECS instance to be created...
Querying the ECS instance status...
InstanceId | InstanceName | InstanceType | ImageId | Status
---------- | ------------ | ------------ | ------- | -------
i-bpxxxxxxxxxxxz4 | ecs_cli_demo | ecs.e-c1m1.large | aliyun_3_x64_20G_alibase_20240819.vhd | Running
Se connecter à l'instance
Une fois connecté à l'instance via SSH, vous pouvez déployer vos services et applications.
-
Obtenez l'adresse IP publique de l'instance.
Appelez DescribeInstances avec le
<InstanceID>pour obtenir l'adresse IP publique de l'instance.-
Exemple de requête
aliyun ecs DescribeInstances \ --RegionId cn-hangzhou \ --InstanceIds '["<instance-id>"]' -
Exemple de réponse
Le paramètre PublicIpAddress indique l'adresse IP publique de l'instance.
"PublicIpAddress": { "IpAddress": [ "115.29.xxx.xxx" ] }
-
-
Connectez-vous à l'instance ECS.
ssh <username>@<public_ip_address>[root@i-xxx bfZ ~ ]# ssh root@1xx.xx.xx.xx The authenticity of host '1xx.xx.xx.xx (1xx.xx.xx.xx)' can't be established. ECDSA key fingerprint is SHA256:PVyhCaxxx4mecykrU. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '1xx.xx.xx.xx' (ECDSA) to the list of known hosts. root@1xx.xx.xx.xx's password: Welcome to Alibaba Cloud Elastic Compute Service ! Last login: Thu Oct 10 13:31:58 2024 from xxx.67 [root@iZ xxx ugZ ~]#
Nettoyer les ressources
Lorsque vous n'avez plus besoin des ressources, libérez-les afin d'éviter toute facturation supplémentaire.
Choisissez l'opération OpenAPI appropriée pour libérer les ressources. Cet exemple libère toutes les ressources créées lors des étapes précédentes.
-
Supprimez l'instance ECS.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
InstanceId
ID de l'instance : i-bp17f3kzgtzzj91r****
-
Supprimez le groupe de sécurité.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
SecurityGroupId
ID du groupe de sécurité : sg-bp1esyhwfbqeyudt****
-
Supprimez le vSwitch.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
VSwitchId
ID du vSwitch : vsw-bp1nzprm8h7mmnl8t****
-
Supprimez le VPC.
API
Paramètre
Valeur
RegionId
Région : cn-hangzhou
VpcId
ID du VPC : vpc-bp1aag0sb9s4i92i3****
Voici un exemple de script :
#!/bin/bash
# Replace the placeholder values with the actual IDs of the resources you want to release.
INSTANCE_ID='i-bpxxxxxxxxxxxz4'
SECURITY_GROUP_ID='sg-bp1esyhwfbqeyudt****'
VSWITCH_ID='vsw-bp1nzprm8h7mmnl8t****'
VPC_ID='vpc-bp1aag0sb9s4i92i3****'
REGION='cn-hangzhou'
echo "Releasing resources..."
# Delete the instance.
aliyun ecs DeleteInstance \
--region ${REGION} \
--InstanceId ${INSTANCE_ID}
# Wait for the instance to be deleted before deleting the security group.
# Add a wait logic here in a production script.
# Delete the security group.
aliyun ecs DeleteSecurityGroup \
--region ${REGION} \
--SecurityGroupId ${SECURITY_GROUP_ID}
# Delete the vSwitch.
aliyun vpc DeleteVSwitch \
--region ${REGION} \
--VSwitchId ${VSWITCH_ID}
# Delete the VPC.
aliyun vpc DeleteVpc \
--region ${REGION} \
--VpcId ${VPC_ID}
echo "Cleanup complete."
Références
Vous pouvez exécuter la commande suivante pour afficher la liste des commandes CLI prises en charge pour ECS.
aliyun ecs --help
Utilisez la syntaxe suivante pour appeler les opérations API ECS. Pour connaître les paramètres détaillés, consultez la documentation de chaque opération.
aliyun ecs <APIName> --<parameter1 value1> --<parameter2 value2> ...