الفلاتر
طريقة البحث
  • الكلمات العادية تجد الأسماء والنصوص والأمثلة.
  • "كلمتان" تجد العبارة بالضبط.
  • --name أو -x تجد خيارًا.
  • #كلمة تبحث داخل الأوامر فقط.
  • @grep تجد الدروس والمعامل التي تستخدم grep.
  • الفلاتر: cat:network · in:labs · level:rhcsa · ch:8 · root:yes. ضع ! قبل كلمة لاستبعادها. OR بين الكلمات تعني إحداها.
  • ↑ ↓ للتنقل · Enter للفتح · Esc للإغلاق · / للبحث

pulumi

البنية التحتية ككود بلغة برمجة حقيقية (TypeScript و Python و Go و C#) — معاينة وتطبيق مثل Terraform.

المستوى
أداة DevOps
المجموعة
البنية التحتية ككود والسحابة
يحتاج root
لا
الحزمة
pulumi

ماذا يفعل

‏pulumi يصف موارد السحابة بكود عادي: حلقات ودوال وأصناف واختبارات. مثل Terraform يحفظ حالة، ويعرض معاينة للتغييرات ثم يطبقها (up). المكدس (stack) نسخة واحدة من المشروع (dev و staging و prod) لها إعداداتها وحالتها.

الحالة تُحفظ في Pulumi Cloud، أو في واجهة خلفية خاصة بك (S3 و Azure Blob ومجلد محلي). الأسرار في الإعدادات مشفّرة.

طريقة الكتابة

pulumi COMMAND [OPTIONS]

الأجزاء الرئيسية

الأوامر

new TEMPLATE
بدء مشروع (مثلًا azure-typescript).
preview
عرض ما سيتغيّر.
up
إنشاء الموارد أو تغييرها.
destroy
حذف كل موارد المكدس.
stack init|select|ls|output
إنشاء / اختيار / عرض المكدسات، وعرض المخرجات.
config set [--secret] KEY VALUE
ضبط قيمة إعدادات (أو سرّ مشفّر).
refresh
قراءة الحالة الحقيقية من السحابة.
import TYPE NAME ID
إدخال مورد موجود تحت إدارة Pulumi.
login [URL]
اختيار الواجهة الخلفية للحالة (file:// و s3:// و azblob://).
state delete URN
حذف مورد من الحالة فقط.
cancel
إيقاف تحديث جارٍ.

الخيارات 8

الأكثر استخدامًا

الخيارات

-s, --stack NAME
استخدام هذا المكدس.
-y, --yes
بدون سؤال (CI).
--diff
عرض فروق مفصّلة.
--target URN
هذا المورد فقط.
--refresh
التحديث من الواقع قبل التغيير.
--skip-preview
عدم عرض المعاينة أولًا.
--non-interactive
بدون أسئلة أو ألوان (CI).
--json
مخرجات JSON.

أمثلة 10

$ مستخدم عادي# بصلاحية root (أو مع sudo)

  1. 1بدء مشروع Azure جديد بـ TypeScript

    pulumi new azure-typescript -n shop-infra
  2. 2حفظ الحالة في تخزينك (بدون Pulumi Cloud)

    pulumi login azblob://pulumi-state
    pulumi login s3://acme-pulumi-state
  3. 3برنامج صغير (TypeScript)

    cat index.ts
    import * as resources from "@pulumi/azure-native/resources";
    import * as storage from "@pulumi/azure-native/storage";
    const rg = new resources.ResourceGroup("rg-shop");
    const sa = new storage.StorageAccount("stshop", {
      resourceGroupName: rg.name, kind: "StorageV2", sku: { name: "Standard_LRS" },
      minimumTlsVersion: "TLS1_2", allowBlobPublicAccess: false,
    });
    export const account = sa.name;
  4. 4المعاينة ثم التطبيق

    pulumi preview --diff
    pulumi up
  5. 5مكدسات لكل بيئة

    pulumi stack init prod
    pulumi config set azure-native:location westeurope
    pulumi config set --secret dbPassword 'S3cr3t!'
  6. 6قراءة مخرج

    pulumi stack output account
  7. 7في CI بدون أسئلة

    pulumi up --stack prod --yes --non-interactive
  8. 8إيجاد الانحراف (تغييرات يدوية)

    pulumi refresh --stack prod --yes
  9. 9إدخال مورد موجود

    pulumi import azure-native:resources:ResourceGroup rg-old /subscriptions/SUB/resourceGroups/rg-old
  10. 10حذف مكدس اختبار بالكامل

    pulumi destroy --stack dev --yes
    pulumi stack rm dev

انتبه

  • ‏destroy يحذف موارد حقيقية. احمِ المهمة بـ protect: true.
  • الكود يستطيع فعل أي شيء — اجعل البرنامج بسيطًا ومراجَعًا مثل كود التطبيق.
  • انسخ الواجهة الخلفية للحالة احتياطيًا. ضياع الحالة يعني أن Pulumi ينسى ما أنشأه.

الملفات

Pulumi.yaml
اسم المشروع وبيئة التشغيل.
Pulumi.STACK.yaml
إعدادات مكدس واحد (الأسرار مشفّرة).

نصائح للحفظ

  • ‏Terraform و OpenTofu لهما وظائف وأمثلة أكثر، و Pulumi شائع في فرق المطوّرين.

رموز الخروج

0تم.
255خطأ.

الدليل الكامل

هذه الصفحة تشرح الأمر بكلمات بسيطة. الدليل الأصلي فيه كل التفاصيل.

في الطرفية: man pulumi