Nom du modèle
ACS-ECS-ConfigureDocker : installation ou désinstallation de Docker par lots
Description du modèle
Installe ou désinstalle Docker sur plusieurs instances Elastic Compute Service (ECS) simultanément.
Type de modèle
Automatisé
Propriétaire
Alibaba Cloud
Paramètres d'entrée
|
Paramètre |
Description |
Type |
Obligatoire |
Valeur par défaut |
Limite |
|
action |
Type d'opération. |
String |
Oui |
||
|
targets |
Instances cibles. |
Json |
Oui |
||
|
regionId |
ID de la région. |
String |
Non |
{{ ACS::RegionId }} |
|
|
rateControl |
Paramètres de contrôle du débit d'exécution des tâches. |
Json |
Non |
{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10} |
|
|
OOSAssumeRole |
Rôle RAM endossé par CloudOps Orchestration Service (OOS). |
String |
Non |
"" |
Paramètres de sortie
|
Paramètre |
Description |
Type |
|
commandOutput |
String |
Politique d'autorisation requise pour exécuter le modèle
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:GetApplicationGroup"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Détails
Pour plus d'informations, consultez le fichier ACS-ECS-ConfigureDocker.yml sur GitHub.
Contenu du modèle
FormatVersion: OOS-2019-06-01
Description:
en: Installs or uninstalls Docker on multiple ECS instances.
name-en: ACS-ECS-ConfigureDocker
categories:
- run_command
Parameters:
regionId:
Type: String
Label:
en: Region ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
action:
Type: String
Label:
en: Action
AllowedValues:
- install
- uninstall
targets:
Type: Json
Label:
en: Target Instance
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
rateControl:
Label:
en: Rate Control
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOS Assume Role
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Obtains the specified ECS instances.
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: runCommand
Action: 'ACS::ECS::RunCommand'
Properties:
commandContent: |-
#!/bin/bash
yum --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
if [ "{{action}}" = "install" ]; then
yum install -y docker
if [ $? -ne 0 ]; then
echo "Docker installation failed. Check your command." >&2;
exit 1;
fi
exit 0;
elif [ "{{action}}" = "uninstall" ]; then
yum remove -y docker
if [ $? -ne 0 ]; then
echo "Docker uninstallation failed. Check your command." >&2;
exit 1;
fi
exit 0;
else
echo "The command for the action parameter must be install or uninstall." >& 2
exit 1;
fi
fi
apt-get --help > /dev/null 2>&1
if [ $? -eq 0 ]; then
if [ "{{action}}" = "install" ]; then
apt-get -y update && apt-get -y install docker.io
if [ $? -ne 0 ]; then
echo "Docker installation failed. Check your command." >&2;
exit 1;
fi
exit 0;
elif [ "{{action}}" = "uninstall" ]; then
apt-get -y remove docker.io
if [ $? -ne 0 ]; then
echo "Docker uninstallation failed. Check your command." >&2;
exit 1;
fi
exit 0;
else
echo "The command for the action parameter must be install or uninstall." >& 2
exit 1;
fi
fi
echo "Unknown package installer. Only yum and apt-get are supported." >&2;
exit 1;
instanceId: '{{ ACS::TaskLoopItem }}'
commandType: RunShellScript
Loop:
Items: '{{ getInstance.instanceIds }}'
RateControl: '{{ rateControl }}'
Outputs:
commandOutputs:
AggregateType: 'Fn::ListJoin'
AggregateField: commandOutput
Outputs:
commandOutput:
Type: String
ValueSelector: invocationOutput
Outputs:
commandOutput:
Type: String
Value: '{{ runCommand.commandOutputs }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- action
Label:
default:
en: Configure Parameters
- Parameters:
- regionId
- targets
Label:
default:
en: Select ECS Instances
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
en: Advanced Options