mcpField
P
pulumi-cli

pulumi-cli

github.com/dirienクラウド・DevOps1375 回インストール今日更新
リポジトリ

pulumi-cli について

Pulumi CLIのコマンドを参照するスキルで、プロジェクト作成、スタックと設定の管理、インフラ状態の操作を扱います。デプロイ手順、リソースのインポート、状態復旧、バックエンド、CIでの非対話設定も説明します。

主な機能

  1. 01プロジェクトとデプロイのコマンド
  2. 02スタックと設定の管理
  3. 03状態のエクスポート、インポート、修復
  4. 04既存クラウドリソースのインポート
  5. 05CI/CD環境の設定
  6. 06バックエンドのログイン方法

活用シーン

  1. 01インフラ変更のプレビューとデプロイ
  2. 02スタック設定とシークレットの管理
  3. 03状態の問題からの復旧
  4. 04CI/CDでのPulumiコマンド実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dirien/claude-skills --skill pulumi-cli

インストール後、Claude Code で/pulumi-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
pulumi-cli-commands.md
pulumi-environment-variables.md
pulumi-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詳細な差分を表示します
--jsonJSON 形式で出力します
--skip-previewプレビューの手順をスキップします
--suppress-outputsスタックの出力を非表示にします

CI/CD のクイックセットアップ

CI/CD で Pulumi を非対話的に実行するには、次の 3 つの環境変数が不可欠です。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

参考資料

コメント