关于 pulumi-cli
用于查阅 Pulumi CLI 命令的技能,涵盖项目创建、堆栈与配置管理,以及基础设施状态操作。还介绍部署流程、资源导入、状态恢复、后端和 CI 非交互设置。
主要功能
- 01项目与部署命令
- 02堆栈和配置管理
- 03状态导出、导入与修复
- 04导入现有云资源
- 05CI/CD 环境设置
- 06后端登录选项
适用场景
- 01预览并部署基础设施变更
- 02管理堆栈设置和密钥
- 03处理状态异常并恢复
- 04在 CI/CD 中运行 Pulumi 命令
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dirien/ claude-skills --skill pulumi-cli安装后在 Claude Code 中输入/pulumi-cli确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonreferences/pulumi-cli-commands.mdpulumi-environment-variables.mdpulumi-state-management.md详细介绍
Pulumi CLI 技能
快速命令参考
部署工作流
# 1. Create new project
pulumi new typescript # Interactive
pulumi new aws-typescript --name myapp --stack dev --yes # Non-interactive
# 2. Preview changes
pulumi preview # Interactive preview
pulumi preview --diff # Show detailed diff
# 3. Deploy
pulumi up # Interactive deployment
pulumi up --yes # Non-interactive
pulumi up --skip-preview --yes # Skip preview step
# 4. View outputs
pulumi stack output
pulumi stack output --json
# 5. Tear down
pulumi destroy --yes
堆栈管理
# List stacks
pulumi stack ls
# Create and select stacks
pulumi stack init dev
pulumi stack select prod
# View stack info
pulumi stack
pulumi stack history
# Stack outputs
pulumi stack output
pulumi stack output bucketName --show-secrets
# Remove stack
pulumi stack rm dev --yes
状态操作
# Refresh state from cloud
pulumi refresh --yes
# Export/import state
pulumi stack export --file backup.json
pulumi stack import --file backup.json
# Delete resource from state (keeps cloud resource)
pulumi state delete 'urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::my-bucket'
# Move resource between stacks (preferred over delete+import)
# This is a single atomic operation that transfers state without touching cloud resources
pulumi state move --source dev --dest prod 'urn:...'
# Protect critical resources
pulumi state protect 'urn:...'
配置
# Set config values
pulumi config set aws:region us-west-2
pulumi config set dbPassword secret --secret
# Get config
pulumi config get aws:region
pulumi config # List all
# Link ESC environment (see language-specific skills for ESC details)
pulumi config env add myorg/myproject-dev
常用标志
| 标志 | 说明 |
|---|---|
--yes / -y | 跳过确认提示 |
--stack / -s | 指定堆栈名称 |
--parallel / -p | 限制并发操作数 |
--target | 指定目标资源 URN |
--refresh | 操作前刷新状态 |
--diff | 显示详细差异 |
--json | 以 JSON 格式输出 |
--skip-preview | 跳过预览步骤 |
--suppress-outputs | 隐藏堆栈输出 |
CI/CD 快速设置
以下三个环境变量对于在 CI/CD 中以非交互方式运行 Pulumi 至关重要——如果没有 PULUMI_CI=true,Pulumi 可能会提示输入并导致流水线挂起:
# Required environment variables (all three are important)
export PULUMI_ACCESS_TOKEN=pul-xxx # Authentication token
export PULUMI_CI=true # Disables interactive prompts
export PULUMI_SKIP_UPDATE_CHECK=true # Avoids update check delays
# Typical CI workflow
pulumi login # Authenticates via PULUMI_ACCESS_TOKEN
pulumi stack select prod # Select target stack explicitly
pulumi preview # Always preview before deploying
pulumi up --yes # --yes for non-interactive confirmation
导入现有资源
# Import single resource
pulumi import aws:s3/bucket:Bucket my-bucket existing-bucket-name
# Bulk import from file
pulumi import --file resources.json
resources.json 格式:
{
"resources": [
{"type": "aws:s3/bucket:Bucket", "name": "my-bucket", "id": "existing-bucket-name"}
]
}
状态恢复模式
在 Pulumi 外部删除的资源
pulumi refresh --yes
# Or manually remove from state:
pulumi state delete 'urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::deleted-bucket'
卡住的待处理操作
pulumi refresh --clear-pending-creates --yes
# Or:
pulumi cancel --yes
pulumi state repair
状态损坏
# Backup current state
pulumi stack export --file current.json
# Try repair
pulumi state repair
# Or restore from history
pulumi stack export --version <previous-version> --file good.json
pulumi stack import --file good.json
URN 格式
urn:pulumi:<stack>::<project>::<type>::<name>
Example:
urn:pulumi:dev::myproject::aws:s3/bucket:Bucket::my-bucket
后端选项
# Pulumi Cloud (default)
pulumi login
# Self-hosted backends
pulumi login s3://my-bucket
pulumi login azblob://my-container
pulumi login gs://my-bucket
pulumi login file://~/.pulumi-state
参考资料
- references/pulumi-cli-commands.md - 完整的命令文档
- references/pulumi-state-management.md - 状态操作与恢复
- references/pulumi-environment-variables.md - CI/CD 环境变量
评论
支持 Markdown