--- name: alibabacloud-ecs-scenario-ops description: | Alibaba Cloud ECS scenario-based operations. Use for end-to-end operational scenarios that combine multiple ECS operations into complete workflows: full-stack instance provisioning (VPC + SecurityGroup + Instance), disk expansion with OS resize, adding data disks with formatting, instance migration, and batch operations. Triggers: "create full instance", "provision ecs", "expand disk and resize partition", "add data disk", "format disk", "ecs migration", "batch ecs operations", "ecs scenario", "full stack ecs", "instance with network". source: alibabacloud-ecs-ops --- # ECS Scenario-Based Operations End-to-end operational scenarios combining multiple ECS capabilities into complete workflows. > **Pre-check: Alibaba Cloud CLI must be installed and at least version 3.3.3.** ```bash aliyun version # must be >= 3.3.3 ``` > **Pre-check: Alibaba Cloud Credentials Required** > > ```bash > aliyun configure list > ``` > > If no valid profile exists, STOP and guide user to configure credentials. > > **Pre-check: Aliyun CLI plugin update required** > > ```bash > aliyun configure set --auto-plugin-install true > aliyun plugin update > ``` ## Observability (MUST follow for every aliyun command) Upon loading this skill, generate a random session ID (32-char lowercase hex string) once for the entire session. ``` --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` ## Cost Estimation (MUST before any chargeable scenario) Every scenario below may contain chargeable operations. Before executing **step 1** of any scenario, you **MUST** follow the `alibabacloud-cli-cost-estimation` skill to evaluate the **overall task cost**: 1. **Quote all chargeable steps** up front using `--estimate-cost` and `--estimate-cost-context` as needed. 2. **Present one consolidated cost plan** with each step labelled (`PAY NOW` / `FUTURE` / `REFUND` / `FREE`), plus the total of immediate charges. 3. **Ask for a single confirmation** of the whole scenario, then execute steps in order. 4. If a step fails mid-sequence, stop and re-quote remaining steps before continuing. > The cost evaluation output **must** include a clearly labelled cost summary section so the user can identify it before confirming. See the `alibabacloud-cli-cost-estimation` SKILL.md for the full cost plan format and quoting rules. ## Core Workflow > **IMPORTANT: Parameter Confirmation** — Before executing any command or API call, > ALL user-customizable parameters MUST be confirmed with the user. --- ### Scenario 1: Full-Stack Instance Provisioning Provision a complete ECS instance with VPC, VSwitch, Security Group, and Instance. #### Step 1.1: Check or Create VPC ```bash # Check existing VPCs aliyun vpc describe-vpcs --biz-region-id \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} # Create VPC if needed aliyun vpc create-vpc --biz-region-id \ --cidr-block 10.0.0.0/8 \ --vpc-name "" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} # Wait for VPC Available aliyun vpc describe-vpcs --biz-region-id \ --vpc-id \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 1.2: Create VSwitch ```bash aliyun vpc create-v-switch --biz-region-id \ --zone-id \ --vpc-id \ --cidr-block 10.1.1.0/24 \ --v-switch-name "" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 1.3: Create Security Group with Rules ```bash # Create security group aliyun ecs create-security-group --biz-region-id \ --vpc-id \ --security-group-name "" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} # Add SSH access rule aliyun ecs authorize-security-group --biz-region-id \ --security-group-id \ --ip-protocol tcp \ --port-range 22/22 \ --source-cidr-ip \ --policy accept \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 1.4: Create and Start Instance ```bash aliyun ecs run-instances \ --biz-region-id \ --security-group-id \ --v-switch-id \ --image-id \ --instance-type \ --instance-name \ --system-disk.category cloud_essd \ --system-disk.size 40 \ --instance-charge-type PostPaid \ --internet-max-bandwidth-out 5 \ --internet-charge-type PayByTraffic \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 1.5: Wait for Instance Running ```bash # Poll until instance is Running aliyun ecs describe-instances --biz-region-id \ --instance-ids '[""]' \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` --- ### Scenario 2: Disk Expansion with OS Partition Resize Expand a cloud disk and resize the OS partition in one workflow. #### Step 2.1: Create Snapshot (Safety Backup) ```bash aliyun ecs create-snapshot --disk-id \ --snapshot-name "pre-resize-$(date +%Y%m%d)" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 2.2: Expand Cloud Disk ```bash aliyun ecs resize-disk --disk-id \ --new-size \ --type online \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 2.3: Resize OS Partition (via Cloud Assistant) ```bash # For Linux ext4 filesystem aliyun ecs run-command \ --biz-region-id \ --type RunShellScript \ --command-content "$(echo 'growpart /dev/vda 1 && resize2fs /dev/vda1 && df -h' | base64)" \ --content-encoding Base64 \ --instance-id.1 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} # For Linux xfs filesystem aliyun ecs run-command \ --biz-region-id \ --type RunShellScript \ --command-content "$(echo 'growpart /dev/vda 1 && xfs_growfs /dev/vda1 && df -h' | base64)" \ --content-encoding Base64 \ --instance-id.1 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` --- ### Scenario 3: Add and Format Data Disk Create, attach, and format a new data disk for an existing instance. #### Step 3.1: Create and Attach Data Disk ```bash # Create data disk aliyun ecs create-disk --biz-region-id \ --zone-id \ --disk-category cloud_essd \ --size \ --disk-name "" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} # Attach to instance aliyun ecs attach-disk --instance-id \ --disk-id \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` #### Step 3.2: Format and Mount (via Cloud Assistant) ```bash # Partition, format (ext4), and mount data disk aliyun ecs run-command \ --biz-region-id \ --type RunShellScript \ --command-content "$(echo 'fdisk -u -c /dev/vdb <> /etc/fstab df -h' | base64)" \ --content-encoding Base64 \ --instance-id.1 \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` --- ### Scenario 4: Batch Instance Operations Perform operations on multiple instances simultaneously. ```bash # Batch stop instances for id in ; do aliyun ecs stop-instance --instance-id "$id" \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} done # Batch query instance status aliyun ecs describe-instances --biz-region-id \ --instance-ids '["","",""]' \ --user-agent AlibabaCloud-Agent-Skills/alibabacloud-ecs-scenario-ops/{session-id} ``` ## RAM Policy Combines permissions from all involved ECS operations: - VPC: `vpc:CreateVpc`, `vpc:CreateVSwitch`, `vpc:DescribeVpcs`, `vpc:DescribeVSwitches` - ECS: `ecs:RunInstances`, `ecs:DescribeInstances`, `ecs:CreateSecurityGroup`, `ecs:AuthorizeSecurityGroup` - Disk: `ecs:CreateDisk`, `ecs:AttachDisk`, `ecs:ResizeDisk`, `ecs:CreateSnapshot` - Cloud Assistant: `ecs:RunCommand`, `ecs:DescribeInvocations` > **[MUST] Permission Failure Handling:** When any command fails due to permission errors, read `references/ram-policies.md`, use `ram-permission-diagnose` skill, and pause until permissions are granted. ## Success Verification - **Scenario 1**: Instance in `Running` state, SSH accessible, security group rules correct - **Scenario 2**: Disk size matches new value, `df -h` shows expanded partition - **Scenario 3**: Data disk visible in `lsblk`, mounted at target path, survives reboot - **Scenario 4**: All target instances in expected state ## Cleanup For each scenario, reverse the creation order: 1. Release/delete instances → 2. Delete disks → 3. Delete snapshots → 4. Delete security groups → 5. Delete VSwitches → 6. Delete VPCs