---
# System prepended metadata

title: VS Code Server (Linux) 多用戶環境手動部署指南

---

# VS Code Server (Linux) 多用戶環境手動部署指南

## 📋 目錄

1. [概述](#概述)
2. [系統需求](#系統需求)
3. [架構設計](#架構設計)
4. [手動部署步驟](#手動部署步驟)
5. [用戶管理](#用戶管理)
6. [安全性配置](#安全性配置)
7. [故障排除](#故障排除)
8. [維護和監控](#維護和監控)
9. [擴展和自動化](#擴展和自動化)

## 概述

本指南將協助您手動建立一個多用戶的 VS Code Server 環境，其中每個 Linux 用戶都擁有自己獨立的 code-server 實例。這種架構確保了完全的用戶隔離，每個用戶只能存取自己的家目錄，無法跨用戶瀏覽或存取資料。

### 🎯 主要特色

- **完全用戶隔離**: 每個用戶只能存取自己的家目錄
- **獨立服務**: 每個用戶有自己的 systemd 服務
- **獨立端口**: 每個用戶使用不同的端口
- **獨立配置**: 每個用戶有自己的密碼和配置
- **嚴格權限控制**: 基於 Linux 用戶權限的安全機制
- **自動重啟**: systemd 服務自動重啟機制
- **完整日誌**: 詳細的安裝和運行日誌

### 🏗️ 架構概念

```
┌─────────────────────────────────────────────────────────────┐
│                    EC2 Instance (Amazon Linux 2023)        │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────┐    ┌─────────────────┐                │
│  │   User: apple   │    │  User: orange   │                │
│  │   Port: 8080    │    │   Port: 8081    │                │
│  │   PID: 6763     │    │   PID: 6882     │                │
│  └─────────────────┘    └─────────────────┘                │
├─────────────────────────────────────────────────────────────┤
│              Global code-server Installation                │
│                    /opt/code-server                         │
├─────────────────────────────────────────────────────────────┤
│                    systemd Services                         │
│          code-server-apple.service                          │
│          code-server-orange.service                         │
└─────────────────────────────────────────────────────────────┘
```

## 系統需求

### AWS 資源需求

- **EC2 實例**: t3.medium 或更高規格
- **作業系統**: Amazon Linux 2023
- **儲存空間**: 至少 20GB EBS 儲存
- **網路**: 公共 IP 和適當的安全群組設定
- **記憶體**: 建議 4GB 以上（每個用戶約需 200-500MB）

### 本地環境需求

- AWS CLI 已安裝並配置
- SSH 客戶端
- 具備 EC2、VPC 和 IAM 權限的 AWS 帳戶
- 基本的 Linux 系統管理知識

### 軟體需求

- Node.js (會自動安裝)
- code-server 4.9.1 (相容版本)
- systemd (Amazon Linux 2023 內建)
- 基本開發工具 (git, curl, wget 等)

## 架構設計

### 用戶隔離機制

1. **Linux 用戶隔離**: 每個 VS Code Server 實例以不同的 Linux 用戶身份運行
2. **檔案系統隔離**: 每個用戶只能存取自己的家目錄
3. **程序隔離**: 每個用戶有獨立的 code-server 程序
4. **網路隔離**: 每個用戶使用不同的端口

### 服務架構

```
用戶 apple:
├── Linux User: apple
├── Home Directory: /home/apple/
├── Workspace: /home/apple/workspace/
├── Config: /home/apple/.config/code-server/
├── Service: code-server-apple.service
├── Port: 8080
└── Process: PID 6763

用戶 orange:
├── Linux User: orange
├── Home Directory: /home/orange/
├── Workspace: /home/orange/workspace/
├── Config: /home/orange/.config/code-server/
├── Service: code-server-orange.service
├── Port: 8081
└── Process: PID 6882
```

## 手動部署步驟

### 步驟 1: 建立 AWS 基礎設施

#### 1.1 建立 SSH 金鑰對

```bash
# 建立新的金鑰對
aws ec2 create-key-pair \
    --key-name multi-user-vscode-key \
    --region us-east-1 \
    --query 'KeyMaterial' \
    --output text > multi-user-vscode-key.pem

# 設定金鑰權限
chmod 400 multi-user-vscode-key.pem
```

#### 1.2 建立安全群組

```bash
# 建立安全群組
SECURITY_GROUP_ID=$(aws ec2 create-security-group \
    --group-name multi-user-vscode-sg \
    --description "Multi-User VS Code Server Security Group" \
    --region us-east-1 \
    --query 'GroupId' --output text)

echo "安全群組 ID: $SECURITY_GROUP_ID"
```

#### 1.3 設定安全群組規則

```bash
# 開放 SSH 端口 (22)
aws ec2 authorize-security-group-ingress \
    --group-id $SECURITY_GROUP_ID \
    --protocol tcp \
    --port 22 \
    --cidr 0.0.0.0/0 \
    --region us-east-1

# 開放 VS Code Server 端口 (8080-8090，預留給多個用戶)
for port in {8080..8090}; do
    aws ec2 authorize-security-group-ingress \
        --group-id $SECURITY_GROUP_ID \
        --protocol tcp \
        --port $port \
        --cidr 0.0.0.0/0 \
        --region us-east-1
done
```

### 步驟 2: 啟動 EC2 實例

#### 2.1 建立用戶資料腳本

建立 `user-data-multi-user.sh` 檔案：

```bash
#!/bin/bash

# 多用戶 VS Code Server 初始化腳本
exec > >(tee /var/log/multi-user-vscode-install.log) 2>&1

log_info() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [INFO] $1"
}

log_error() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR] $1"
}

log_info "開始多用戶 VS Code Server 初始化..."

# 更新系統
log_info "更新系統套件..."
dnf update -y

# 安裝必要套件
log_info "安裝必要套件..."
dnf install -y curl wget tar gzip nodejs npm git htop net-tools

# 下載並安裝 code-server（全域安裝）
log_info "下載 code-server..."
cd /tmp
DOWNLOAD_URL="https://github.com/coder/code-server/releases/download/v4.9.1/code-server-4.9.1-linux-amd64.tar.gz"

# 重試機制下載
for i in {1..3}; do
    if wget "$DOWNLOAD_URL" -O code-server.tar.gz; then
        log_info "code-server 下載成功"
        break
    else
        log_error "下載失敗，重試 $i/3"
        sleep 5
    fi
done

# 解壓並安裝到全域位置
log_info "安裝 code-server..."
tar -xzf code-server.tar.gz
mv code-server-4.9.1-linux-amd64 /opt/code-server
ln -sf /opt/code-server/bin/code-server /usr/local/bin/code-server

# 建立管理腳本目錄
mkdir -p /opt/vscode-management

log_info "基礎環境設定完成，準備建立用戶..."

# 建立完成標記
touch /tmp/base-install-complete
```

#### 2.2 啟動實例

```bash
# 啟動 EC2 實例
INSTANCE_ID=$(aws ec2 run-instances \
    --image-id ami-0c02fb55956c7d316 \
    --count 1 \
    --instance-type t3.medium \
    --key-name multi-user-vscode-key \
    --security-group-ids $SECURITY_GROUP_ID \
    --user-data file://user-data-multi-user.sh \
    --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=Multi-User-VSCode-Server},{Key=Project,Value=MultiUserVSCode}]" \
    --region us-east-1 \
    --query 'Instances[0].InstanceId' \
    --output text)

echo "實例已啟動: $INSTANCE_ID"
```

#### 2.3 等待實例啟動

```bash
# 等待實例運行
aws ec2 wait instance-running --instance-ids $INSTANCE_ID --region us-east-1

# 獲取公共 IP
PUBLIC_IP=$(aws ec2 describe-instances \
    --instance-ids $INSTANCE_ID \
    --region us-east-1 \
    --query 'Reservations[0].Instances[0].PublicIpAddress' \
    --output text)

echo "實例公共 IP: $PUBLIC_IP"
```

### 步驟 3: 建立用戶和配置

等待實例完全啟動後（約 3-5 分鐘），SSH 連線到實例進行用戶設定。

#### 3.1 SSH 連線到實例

```bash
# SSH 連線
ssh -i multi-user-vscode-key.pem ec2-user@$PUBLIC_IP
```

#### 3.2 建立第一個用戶 (apple)

在實例上執行以下指令：

```bash
# 設定變數
USERNAME="apple"
USER_PORT="8080"
USER_PASSWORD="appleCode2024!"

# 建立用戶
sudo useradd -m -s /bin/bash "$USERNAME"
echo "$USERNAME:$USER_PASSWORD" | sudo chpasswd

# 建立工作目錄
sudo -u "$USERNAME" mkdir -p "/home/$USERNAME/workspace"
sudo -u "$USERNAME" mkdir -p "/home/$USERNAME/.config/code-server"

# 建立配置檔案
sudo tee "/home/$USERNAME/.config/code-server/config.yaml" > /dev/null << EOF
bind-addr: 0.0.0.0:$USER_PORT
auth: password
password: $USER_PASSWORD
cert: false
disable-telemetry: true
disable-update-check: true
EOF

# 設定檔案權限
sudo chown "$USERNAME:$USERNAME" "/home/$USERNAME/.config/code-server/config.yaml"
sudo chmod 600 "/home/$USERNAME/.config/code-server/config.yaml"
```

#### 3.3 建立 systemd 服務 (apple)

```bash
# 建立 systemd 服務檔案
sudo tee "/etc/systemd/system/code-server-$USERNAME.service" > /dev/null << EOF
[Unit]
Description=VS Code Server for $USERNAME
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=$USERNAME
Group=$USERNAME
ExecStart=/usr/local/bin/code-server --config /home/$USERNAME/.config/code-server/config.yaml /home/$USERNAME/workspace
WorkingDirectory=/home/$USERNAME/workspace
Environment=HOME=/home/$USERNAME

[Install]
WantedBy=multi-user.target
EOF

# 啟用並啟動服務
sudo systemctl daemon-reload
sudo systemctl enable "code-server-$USERNAME"
sudo systemctl start "code-server-$USERNAME"

# 檢查服務狀態
sudo systemctl status "code-server-$USERNAME"
```

#### 3.4 建立第二個用戶 (orange)

```bash
# 設定變數
USERNAME="orange"
USER_PORT="8081"
USER_PASSWORD="orangeCode2024!"

# 建立用戶
sudo useradd -m -s /bin/bash "$USERNAME"
echo "$USERNAME:$USER_PASSWORD" | sudo chpasswd

# 建立工作目錄
sudo -u "$USERNAME" mkdir -p "/home/$USERNAME/workspace"
sudo -u "$USERNAME" mkdir -p "/home/$USERNAME/.config/code-server"

# 建立配置檔案
sudo tee "/home/$USERNAME/.config/code-server/config.yaml" > /dev/null << EOF
bind-addr: 0.0.0.0:$USER_PORT
auth: password
password: $USER_PASSWORD
cert: false
disable-telemetry: true
disable-update-check: true
EOF

# 設定檔案權限
sudo chown "$USERNAME:$USERNAME" "/home/$USERNAME/.config/code-server/config.yaml"
sudo chmod 600 "/home/$USERNAME/.config/code-server/config.yaml"

# 建立 systemd 服務檔案
sudo tee "/etc/systemd/system/code-server-$USERNAME.service" > /dev/null << EOF
[Unit]
Description=VS Code Server for $USERNAME
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=$USERNAME
Group=$USERNAME
ExecStart=/usr/local/bin/code-server --config /home/$USERNAME/.config/code-server/config.yaml /home/$USERNAME/workspace
WorkingDirectory=/home/$USERNAME/workspace
Environment=HOME=/home/$USERNAME

[Install]
WantedBy=multi-user.target
EOF

# 啟用並啟動服務
sudo systemctl daemon-reload
sudo systemctl enable "code-server-$USERNAME"
sudo systemctl start "code-server-$USERNAME"

# 檢查服務狀態
sudo systemctl status "code-server-$USERNAME"
```

## 擴展和自動化

### 使用 Amazon Q CLI 自動化部署

如果您想要使用 Amazon Q CLI 來自動化整個多用戶部署過程，可以使用以下 prompt：

#### 基本多用戶部署 Prompt

```
請幫我建立一個多用戶的 VS Code Server 環境，需要包含以下要求：

1. 在 AWS EC2 上使用 t3.medium 實例和 Amazon Linux 2023
2. 建立兩個用戶：apple 和 orange
3. 每個用戶有獨立的 code-server 實例和端口（8080, 8081）
4. 完全的用戶隔離，每個用戶只能存取自己的家目錄
5. 使用 systemd 管理每個用戶的服務
6. 自動生成 SSH 金鑰和安全群組
7. 建立完整的管理腳本和監控工具

安全要求：
- 每個用戶有獨立的密碼和配置檔案
- 嚴格的檔案權限控制
- 無法跨用戶存取資料

管理功能：
- 用戶專屬的狀態檢查腳本
- 全域的用戶管理工具
- 自動化的用戶添加/移除功能
- 完整的日誌記錄和監控

請提供完整的部署腳本、管理工具和使用說明。
```

#### 進階功能 Prompt

```
基於上述多用戶 VS Code Server 環境，請額外加入以下進階功能：

1. 自動化管理：
   - 用戶添加/移除腳本
   - 密碼重設功能
   - 服務健康檢查

2. 監控和維護：
   - 效能監控腳本
   - 自動備份機制
   - 日誌輪轉配置

3. 安全性增強：
   - HTTPS 支援（自簽名憑證）
   - 防火牆配置
   - 存取來源 IP 限制

4. 擴展性：
   - 支援動態添加更多用戶
   - 自動端口分配
   - 負載監控和警報

請提供完整的腳本和配置檔案。
```

### 容器化部署（進階）

對於更進階的部署，您可以考慮使用 Docker 容器：

```dockerfile
# Dockerfile 範例
FROM codercom/code-server:4.9.1

USER root

# 安裝額外工具
RUN apt-get update && apt-get install -y \
    git \
    curl \
    wget \
    && rm -rf /var/lib/apt/lists/*

# 建立用戶
ARG USERNAME=developer
ARG USER_UID=1000
ARG USER_GID=$USER_UID

RUN groupadd --gid $USER_GID $USERNAME \
    && useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME

USER $USERNAME
WORKDIR /home/$USERNAME

# 設定 code-server
ENV PASSWORD=secure_password
EXPOSE 8080

CMD ["code-server", "--bind-addr", "0.0.0.0:8080", "/home/$USERNAME/workspace"]
```

### 負載平衡（企業級）

對於企業級部署，可以考慮使用 Application Load Balancer：

```bash
# 建立 ALB 目標群組
aws elbv2 create-target-group \
    --name vscode-multi-user-targets \
    --protocol HTTP \
    --port 8080 \
    --vpc-id $VPC_ID \
    --health-check-path / \
    --health-check-interval-seconds 30

# 註冊目標
aws elbv2 register-targets \
    --target-group-arn $TARGET_GROUP_ARN \
    --targets Id=$INSTANCE_ID,Port=8080 Id=$INSTANCE_ID,Port=8081
```

## 總結

本指南提供了完整的多用戶 VS Code Server 手動部署流程，包括：

✅ **完整的部署步驟**: 從 AWS 基礎設施到用戶配置  
✅ **安全性配置**: 用戶隔離和權限控制  
✅ **管理工具**: 自動化腳本和監控功能  
✅ **故障排除**: 常見問題和解決方案  
✅ **維護指南**: 備份、監控和效能優化  
✅ **擴展方案**: 自動化和企業級部署選項  

通過遵循本指南，您可以建立一個安全、穩定、可擴展的多用戶 VS Code Server 環境，每個用戶都擁有完全隔離的開發環境。

### 🎯 關鍵特色回顧

1. **完全用戶隔離**: 每個 Linux 用戶只能存取自己的家目錄
2. **獨立服務架構**: 每個用戶有自己的 systemd 服務和端口
3. **嚴格權限控制**: 基於 Linux 用戶權限的安全機制
4. **自動化管理**: 完整的腳本化管理工具
5. **監控和維護**: 健康檢查、備份和效能監控
6. **可擴展性**: 支援動態添加更多用戶

### 📱 快速開始檢查清單

- [ ] 建立 AWS 基礎設施（EC2、安全群組、金鑰）
- [ ] 安裝 code-server 基礎環境
- [ ] 建立用戶 apple（端口 8080）
- [ ] 建立用戶 orange（端口 8081）
- [ ] 配置 systemd 服務
- [ ] 建立管理腳本
- [ ] 測試用戶隔離
- [ ] 驗證網路存取
- [ ] 設定監控和備份

### 🔗 相關資源

- [code-server 官方文檔](https://coder.com/docs/code-server)
- [systemd 服務管理](https://www.freedesktop.org/software/systemd/man/systemd.service.html)
- [AWS EC2 用戶指南](https://docs.aws.amazon.com/ec2/)
- [Amazon Linux 2023 文檔](https://docs.aws.amazon.com/linux/)

---

**文件版本**: v1.0  
**最後更新**: 2025-08-02  
**適用系統**: Amazon Linux 2023  
**code-server 版本**: 4.9.1  
**作者**: Amazon Q CLI Assistant

---

## 使用 Amazon Q Developer CLI 自動化部署

本章節將詳細說明如何使用 Amazon Q Developer CLI 來自動化完成上述所有的部署、配置與連線工作。通過正確的 prompt，您可以一鍵完成整個多用戶 VS Code Server 環境的建立。

### 🤖 Amazon Q Developer CLI 簡介

Amazon Q Developer CLI 是一個強大的 AI 助手工具，可以通過自然語言 prompt 來自動生成和執行複雜的部署腳本。對於多用戶 VS Code Server 的部署，Q CLI 可以：

- 自動生成完整的部署腳本
- 處理 AWS 資源建立和配置
- 建立用戶隔離和安全配置
- 生成管理和監控工具
- 提供故障排除和維護指南

### 📝 基礎部署 Prompt

#### 完整環境部署 Prompt

```
請幫我建立一個完整的多用戶 VS Code Server 環境，具體需求如下：

**基礎架構需求**：
- 使用 AWS EC2 t3.medium 實例，Amazon Linux 2023
- 自動建立 SSH 金鑰對和安全群組
- 開放必要端口：SSH (22)、VS Code Server (8080-8090)
- 部署在 us-east-1 區域

**用戶配置需求**：
- 建立兩個用戶：apple 和 orange
- apple 用戶使用端口 8080，密碼 "appleCode2024!"
- orange 用戶使用端口 8081，密碼 "orangeCode2024!"
- 每個用戶有獨立的工作目錄 /home/[用戶名]/workspace

**安全隔離需求**：
- 完全的 Linux 用戶隔離，每個用戶只能存取自己的家目錄
- 無法跨用戶瀏覽或存取資料
- 每個用戶有獨立的 systemd 服務 (code-server-[用戶名].service)
- 嚴格的檔案權限控制

**軟體配置需求**：
- 安裝 code-server 4.9.1 版本（避免 GLIBC 相容性問題）
- 使用 systemd 管理服務，支援自動重啟
- 每個服務監聽 0.0.0.0:[端口]
- 禁用遙測和更新檢查

**管理工具需求**：
- 為每個用戶建立專屬的狀態檢查腳本 (check-my-vscode.sh)
- 為每個用戶建立專屬的重啟腳本 (restart-my-vscode.sh)
- 建立全域的用戶管理腳本 (check-all-users.sh, restart-all-users.sh)
- 建立用戶添加/移除的自動化腳本

**輸出需求**：
- 完整的部署腳本，包含錯誤處理和重試機制
- 本地狀態檢查腳本
- 詳細的部署資訊文件
- 使用說明和故障排除指南

請確保所有腳本都包含適當的日誌記錄和錯誤處理。
```

#### 進階功能增強 Prompt

```
基於上述多用戶 VS Code Server 環境，請額外實現以下進階功能：

**監控和維護功能**：
- 建立健康檢查腳本，每 5 分鐘檢查服務狀態
- 建立效能監控腳本，記錄 CPU、記憶體、磁碟使用率
- 建立自動備份腳本，每日備份用戶工作目錄和配置
- 設定日誌輪轉，避免日誌檔案過大

**安全性增強**：
- 支援 HTTPS 配置（自簽名憑證）
- 建立防火牆配置腳本
- 支援限制存取來源 IP 的功能
- 密碼複雜度檢查和重設功能

**自動化管理**：
- 動態用戶添加腳本，自動分配端口
- 用戶移除腳本，包含資料備份選項
- 批量用戶管理功能
- 服務狀態監控和自動恢復

**擴展性功能**：
- 支援添加更多用戶（最多 10 個用戶）
- 負載監控和警報機制
- 容器化部署選項
- 負載平衡配置範例

請提供完整的腳本實現和配置檔案。
```

### 🔧 特定功能 Prompt

#### 用戶管理自動化 Prompt

```
請為我的多用戶 VS Code Server 環境建立一個完整的用戶管理系統：

**核心功能**：
- 添加新用戶：自動分配端口、建立目錄、配置服務
- 移除用戶：停止服務、備份資料、清理資源
- 修改用戶：更改密碼、端口、配置
- 列出用戶：顯示所有用戶狀態和存取資訊

**安全要求**：
- 確保新用戶完全隔離
- 自動設定正確的檔案權限
- 驗證端口可用性
- 檢查用戶名衝突

**管理腳本需求**：
- manage-users.sh：主要管理腳本
- 支援指令：add, remove, list, status, password, restart
- 包含使用說明和錯誤處理
- 自動更新安全群組規則

**使用範例**：
```bash
./manage-users.sh add banana 8082
./manage-users.sh remove banana
./manage-users.sh list
./manage-users.sh password apple
```

請提供完整的實現和使用文檔。
```

#### 監控和警報系統 Prompt

```
請為多用戶 VS Code Server 環境建立一個完整的監控和警報系統：

**監控指標**：
- 服務狀態：每個用戶的 code-server 服務是否運行
- 系統資源：CPU、記憶體、磁碟使用率
- 網路狀態：端口監聽狀態和連線數
- 用戶活動：最後存取時間和活躍度

**警報機制**：
- 服務停止時自動重啟並發送通知
- 資源使用率超過 80% 時發出警告
- 磁碟空間不足時清理日誌
- 異常登入嘗試檢測

**報告功能**：
- 每日系統狀態報告
- 每週用戶使用統計
- 效能趨勢分析
- 故障事件記錄

**實現需求**：
- 使用 cron 定期執行監控腳本
- 支援郵件通知（可選）
- 生成 HTML 格式的報告
- 包含圖表和趨勢分析

請提供完整的監控系統實現。
```

#### 安全性配置 Prompt

```
請為多用戶 VS Code Server 環境實現全面的安全性配置：

**網路安全**：
- 配置 iptables/firewalld 規則
- 支援 IP 白名單功能
- DDoS 防護基本配置
- 端口掃描檢測

**存取控制**：
- 實現 HTTPS 支援（Let's Encrypt 或自簽名）
- 雙因素認證整合（可選）
- 會話超時配置
- 密碼策略強化

**系統安全**：
- 定期安全更新腳本
- 檔案完整性檢查
- 異常行為檢測
- 安全日誌分析

**合規性**：
- 存取日誌記錄
- 用戶活動審計
- 資料加密配置
- 備份加密

請提供完整的安全配置腳本和最佳實踐指南。
```

### 🚀 部署執行 Prompt

#### 一鍵部署 Prompt

```
請執行以下一鍵部署流程：

1. **環境準備**：
   - 檢查 AWS CLI 配置和權限
   - 驗證必要的工具和依賴
   - 建立工作目錄和日誌檔案

2. **AWS 資源建立**：
   - 建立 SSH 金鑰對：multi-user-vscode-key
   - 建立安全群組：multi-user-vscode-sg
   - 配置安全群組規則（22, 8080-8090）
   - 啟動 EC2 實例：t3.medium, Amazon Linux 2023

3. **軟體安裝和配置**：
   - 安裝 code-server 4.9.1
   - 建立用戶 apple 和 orange
   - 配置 systemd 服務
   - 建立管理腳本

4. **驗證和測試**：
   - 檢查服務狀態
   - 測試網路連線
   - 驗證用戶隔離
   - 生成存取資訊

5. **輸出結果**：
   - 部署摘要報告
   - 用戶存取資訊
   - 管理指令清單
   - 故障排除指南

請執行完整的部署流程並提供詳細的執行日誌。
```

### 🔍 故障排除 Prompt

#### 診斷和修復 Prompt

```
我的多用戶 VS Code Server 環境遇到問題，請幫我診斷和修復：

**當前狀況**：
- 實例 ID: [請填入您的實例 ID]
- 公共 IP: [請填入您的公共 IP]
- 問題描述: [請描述具體問題，如：用戶無法連線、服務無法啟動等]

**診斷需求**：
1. 檢查 EC2 實例狀態和網路連通性
2. 驗證安全群組和防火牆配置
3. 檢查每個用戶的服務狀態
4. 分析系統資源使用情況
5. 檢查日誌檔案中的錯誤訊息

**修復需求**：
1. 自動修復常見問題
2. 重啟失敗的服務
3. 修正配置檔案錯誤
4. 更新權限設定
5. 提供預防措施建議

**輸出需求**：
- 詳細的診斷報告
- 具體的修復步驟
- 修復後的驗證結果
- 預防措施建議

請提供完整的診斷和修復方案。
```

#### 效能優化 Prompt

```
請幫我優化多用戶 VS Code Server 環境的效能：

**當前環境**：
- EC2 實例類型: t3.medium
- 用戶數量: 2 (apple, orange)
- 預期擴展: 最多 5-10 個用戶

**優化目標**：
1. 減少記憶體使用量
2. 提高響應速度
3. 優化磁碟 I/O
4. 改善網路效能

**優化範圍**：
- code-server 配置優化
- 系統核心參數調整
- 服務啟動參數優化
- 資源限制配置

**監控需求**：
- 效能基準測試
- 優化前後對比
- 持續效能監控
- 瓶頸識別和解決

請提供完整的效能優化方案和實施步驟。
```

### 📊 使用技巧和最佳實踐

#### 1. Prompt 撰寫技巧

**明確性**：
- 提供具體的技術需求和版本號
- 明確指定配置參數和端口號
- 詳細描述安全性和隔離需求

**完整性**：
- 包含所有必要的功能需求
- 指定輸出格式和檔案結構
- 要求錯誤處理和日誌記錄

**可執行性**：
- 要求提供完整的腳本和配置
- 包含驗證和測試步驟
- 提供使用說明和範例

#### 2. 分階段部署策略

**第一階段 - 基礎環境**：
```
請先建立基礎的 AWS 環境和 code-server 安裝，包含：
- EC2 實例和網路配置
- code-server 基礎安裝
- 基本的安全群組設定
```

**第二階段 - 用戶配置**：
```
基於已建立的基礎環境，請添加多用戶配置：
- 建立 apple 和 orange 用戶
- 配置獨立的服務和端口
- 實現用戶隔離機制
```

**第三階段 - 管理工具**：
```
請為現有環境添加管理和監控工具：
- 用戶管理腳本
- 狀態監控工具
- 備份和維護腳本
```

#### 3. 錯誤處理和重試

**問題診斷 Prompt**：
```
我在執行 [具體步驟] 時遇到以下錯誤：
[錯誤訊息]

請幫我：
1. 分析錯誤原因
2. 提供具體的解決步驟
3. 預防類似問題的措施
4. 驗證修復結果的方法
```

**重新部署 Prompt**：
```
我需要重新部署環境，請幫我：
1. 清理現有資源（如果存在）
2. 重新執行完整的部署流程
3. 包含之前遇到問題的修復措施
4. 提供更詳細的驗證步驟
```

### 🎯 實際使用範例

#### 完整部署流程

1. **開啟 Amazon Q Developer CLI**
2. **執行基礎部署**：
   ```
   請幫我建立一個多用戶 VS Code Server 環境，包含 apple 和 orange 兩個用戶，每個用戶有獨立的 code-server 實例和完全的用戶隔離。使用 AWS EC2 t3.medium 實例和 Amazon Linux 2023，自動建立所有必要的 AWS 資源。
   ```

3. **等待部署完成並檢查結果**

4. **如需添加功能**：
   ```
   請為我的多用戶 VS Code Server 環境添加監控和管理工具，包含健康檢查、自動備份和用戶管理腳本。
   ```

5. **故障排除（如需要）**：
   ```
   我的用戶 apple 無法連線到 VS Code Server，請幫我診斷問題並提供修復方案。實例 IP 是 [您的IP]。
   ```

#### 進階配置範例

**HTTPS 配置**：
```
請為我的多用戶 VS Code Server 環境啟用 HTTPS，使用自簽名憑證，並更新所有相關的配置檔案和防火牆規則。
```

**負載平衡配置**：
```
請幫我設計一個負載平衡方案，支援多個 VS Code Server 實例，並提供 AWS Application Load Balancer 的配置範例。
```

**容器化部署**：
```
請將我的多用戶 VS Code Server 環境容器化，使用 Docker 和 Docker Compose，每個用戶運行在獨立的容器中。
```

### 💡 提示和建議

#### 1. 準備工作

在使用 Amazon Q Developer CLI 之前，請確保：
- AWS CLI 已正確配置
- 具備必要的 AWS 權限
- 了解基本的 Linux 系統管理
- 準備好所需的配置參數

#### 2. 最佳實踐

**Prompt 優化**：
- 使用具體的技術術語
- 提供完整的需求描述
- 要求包含錯誤處理
- 指定輸出格式

**分步執行**：
- 先建立基礎環境
- 逐步添加功能
- 每步都進行驗證
- 保存重要的配置資訊

**文檔記錄**：
- 保存所有生成的腳本
- 記錄配置參數
- 建立操作手冊
- 定期備份配置

#### 3. 常見問題預防

**權限問題**：
```
請確保所有腳本都包含適當的權限檢查和設定，特別是用戶隔離和檔案權限。
```

**網路問題**：
```
請包含網路連通性檢查和防火牆配置驗證。
```

**服務管理**：
```
請確保所有服務都正確配置為自動啟動，並包含健康檢查機制。
```

### 🔚 總結

使用 Amazon Q Developer CLI 可以大大簡化多用戶 VS Code Server 環境的部署和管理。通過正確的 prompt，您可以：

✅ **一鍵部署**：自動建立完整的多用戶環境  
✅ **智能配置**：自動處理用戶隔離和安全設定  
✅ **完整工具**：生成所有必要的管理和監控腳本  
✅ **故障排除**：快速診斷和修復問題  
✅ **持續優化**：根據需求調整和擴展環境  

記住，好的 prompt 是成功自動化的關鍵。請根據您的具體需求調整上述範例，並始終要求包含錯誤處理、日誌記錄和驗證步驟。

---

**Amazon Q Developer CLI 使用指南版本**: v1.0  
**最後更新**: 2025-08-02  
**適用於**: 多用戶 VS Code Server 環境自動化部署
