متغيرات البيئة والأسرار
تعلّموا إدارة المعلومات الحساسة والتهيئات الخاصة بالبيئات بأمان ضمن GitHub Actions.
متغيرات البيئة والأسرار درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
متغيرات البيئة والأسرار: الأساسيات
مرحبًا بك في الدرس الثالث! تحتاج غالبًا في CI/CD إلى تهيئة مساراتك بقيم ديناميكية أو معلومات حساسة.
وهنا تصبح متغيرات البيئة والأسرار ضرورية. فهي تتيح لمهام سير العمل التكيف مع السيناريوهات المختلفة والتعامل مع البيانات الحساسة بأمان.
لماذا نستخدمها في CI/CD؟
تخيل أنك تنشر إلى بيئات مختلفة (التطوير والتجهيز والإنتاج)، أو تتصل بخدمات خارجية باستخدام مفاتيح API.
- المرونة: تتيح لك متغيرات البيئة تغيير السلوك دون تعديل ملف سير العمل.
- الأمان: تحمي الأسرار البيانات الحساسة، مثل كلمات المرور ورموز API، من الكشف عنها.
- إعادة الاستخدام: عرّف الإعدادات مرة واحدة واستخدمها عبر مهام أو خطوات متعددة.
متغيرات البيئة في Actions
متغير البيئة هو قيمة ذات اسم ديناميكي يمكن أن تؤثر في طريقة سلوك العمليات قيد التشغيل. وفي GitHub Actions، تُعد هذه المتغيرات أساسية لجعل مهام سير العمل قابلة للتهيئة.
يمكنك تعريف متغيرات البيئة الخاصة بك أو استخدام العديد من المتغيرات المضمنة التي يوفرها GitHub Actions.
متغيرات البيئة المضمنة في GitHub Actions
يوفر GitHub Actions تلقائيًا العديد من متغيرات البيئة المفيدة والمحددة مسبقًا. وتمنحك هذه المتغيرات معلومات سياقية عن المستودع وتشغيل سير العمل وغير ذلك.
على سبيل المثال، تمثل GITHUB_SHA تجزئة الإيداع، وتمثل GITHUB_REF اسم الفرع أو الوسم الذي شغّل سير العمل.
يمكنك الوصول إليها باستخدام كائن السياق github في التعبيرات، أو مباشرةً كمتغيرات shell إذا رُبطت بـ env.
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"متغيرات البيئة المخصصة: نطاق سير العمل
يمكنك تعريف متغيرات البيئة الخاصة بك على مستوى سير العمل أو المهمة. وتتوفر المتغيرات المعرفة على مستوى سير العمل لجميع المهام والخطوات ضمن سير العمل نفسه.
استخدم الكلمة المفتاحية env في المستوى الأعلى من ملف سير العمل لتعيينها.
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableمتغيرات البيئة المخصصة: نطاق المهمة والخطوة
لتلبية الاحتياجات الأكثر تحديدًا، عرّف متغيرات البيئة على مستوى المهمة أو الخطوة. ويتوفر المتغير المعرّف لمهمة ما لجميع خطواتها، بينما يتوفر المتغير على مستوى الخطوة لتلك الخطوة وحدها.
يتيح لك ذلك التحكم الدقيق في إعداداتك.
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyمقدمة إلى أسرار GitHub
تُعد متغيرات البيئة مناسبة للبيانات غير الحساسة، ولكن ماذا عن المعلومات السرية، مثل مفاتيح API أو كلمات مرور قواعد البيانات أو الرموز الخاصة؟
هنا يأتي دور GitHub Secrets. فهي تتيح لك تخزين المعلومات الحساسة بأمان والوصول إليها في مهام سير العمل دون كشفها في تعليمات مستودعك البرمجية أو سجلاته.
- مشفرة: يخزنها GitHub بأمان.
- محجوبة: تُخفى تلقائيًا من سجلات سير العمل.
- وصول مضبوط: لا تتوفر إلا لمهام سير عمل محددة.
إنشاء أسرار GitHub
تُنشأ الأسرار وتُدار من خلال إعدادات المستودع أو المؤسسة على GitHub، وليس مباشرةً في ملفات سير العمل.
- انتقل إلى إعدادات مستودعك.
- انتقل إلى الأسرار والمتغيرات > Actions.
- انقر على سر مستودع جديد (أو سر مؤسسة لتطبيقه على نطاق أوسع).
- أدخل اسمًا (مثل
MY_API_KEY) والصق القيمة.
بعد الحفظ، لن تتمكن من عرض قيمة السر مرة أخرى، بل ستتمكن فقط من تحديثه أو حذفه.
استخدام الأسرار في مهام سير العمل
لاستخدام سر، أشِر إليه باستخدام كائن سياق secrets في سير العمل، بطريقة مشابهة لاستخدام env مع متغيرات البيئة.
يحجب GitHub الأسرار تلقائيًا من السجلات، ويستبدل قيمها بـ *** لمنع كشفها عن طريق الخطأ.
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"أفضل ممارسات أمان الأسرار
تُعد إدارة الأسرار بأمان أمرًا بالغ الأهمية لسلامة خط أنابيب CI/CD. احرص دائمًا على اتباع الإرشادات التالية:
- أقل قدر من الصلاحيات: امنح الوصول إلى الأسرار عند الضرورة القصوى فقط.
- لا تضعها في التعليمات البرمجية مباشرةً: لا تُضمّن الأسرار مباشرةً في ملفات سير العمل أو أي تعليمات برمجية في المستودع.
- تجنب تسجيلها: رغم أن GitHub يحجب الأسرار، تجنب أوامر echo المخصصة التي قد تكشف أجزاءً منها عن طريق الخطأ.
- التدوير بانتظام: غيّر أسرارك دوريًا لتقليل خطر اختراقها.
- خاصة بكل بيئة: استخدم أسرارًا مختلفة لبيئات التطوير والتجهيز والإنتاج.
اختبار سريع: متغيرات البيئة مقابل الأسرار
ما العبارة التي تصف بدقة اختلافًا رئيسيًا أو ميزةً لمتغيرات البيئة والأسرار في GitHub Actions؟
مراجعة: الإعدادات الآمنة
رائع! لقد استكشفتم بنجاح كيفية إدارة الإعدادات في مسارات عمل GitHub Actions.
- متغيرات البيئة تساعدكم على إدخال بيانات ديناميكية غير حساسة إلى عمليات تشغيل مسار العمل، مع إمكانية تكييفها على مستوى مسار العمل أو المهمة أو الخطوة.
- الأسرار ضرورية للتعامل بأمان مع المعلومات الحساسة مثل مفاتيح API، مع ضمان بقائها مشفرة وبعيدة عن شيفرتكم العامة.
- احرصوا دائمًا على اتباع أفضل ممارسات الأمان عند العمل مع الأسرار لحماية عمليات النشر من الثغرات الأمنية.
يضمن إتقان هذه المفاهيم أن تكون مسارات CI/CD لديكم مرنة وآمنة في الوقت نفسه!
الأسئلة الشائعة
هل درس «متغيرات البيئة والأسرار» مجاني؟
نعم — نص درس «متغيرات البيئة والأسرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «متغيرات البيئة والأسرار»؟
تعلّموا إدارة المعلومات الحساسة والتهيئات الخاصة بالبيئات بأمان ضمن GitHub Actions. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «متغيرات البيئة والأسرار»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مقدمة إلى النشر المستمر
- النشر في بيئة التجهيز
- متغيرات البيئة والأسرار
- النشر في الإنتاج باستخدام بوابات الموافقة