روابط سريعة
PowerShell 7 عبارة عن لغة برمجة وصدفة متعددة الاستخدامات. الآن بعد أن أصبحت مشتركة بين الأنظمة الأساسية، يحتاج معظم مسؤولي النظام إلى طريقة لنشر اللغة على أنظمة متعددة تلقائيًا. ولتحقيق هذه الغاية، يعد Ansible نظامًا مثاليًا لإنشاء أدلة تشغيل سهلة الاستخدام لنشر PowerShell 7 إلى أكبر عدد ممكن من الأنظمة.
إذا لم تكن على دراية بـ Ansible، فهي لغة نشر يمكن للمرء من خلالها كتابة قواعد اللعبة لإرسال سلسلة من الأوامر إلى الأنظمة وإرشادهم بشأن ما يجب القيام به. على عكس العديد من أنظمة التكوين الأخرى، فهو لا يتطلب وكيلًا على النظام المستهدف. وهذا يجعل من السهل الاستخدام والإعداد.
في هذه المقالة، سنستكشف كيفية إنشاء دليل Ansible بسيط لتثبيت PowerShell 7 على أنظمة متعددة.
تثبيت Ansible على نظامي التشغيل Windows وLinux
من السهل جدًا تثبيت Ansible على نظام Linux. تحتوي معظم أنظمة الحزم لتوزيعات Linux على هذا المدمج. عدد قليل من الطرق الشائعة للتثبيت Ansible هي كما يلي:
يعد Windows حالة فريدة من نوعها، حيث أن Ansible غير متوفر كحزمة Windows. أسهل طريقة لتثبيت Ansible للاستخدام على Windows هي استخدام نظام Windows الفرعي لنظام التشغيل Linux (WSL). هذا هو المثيل الافتراضي لنظام التشغيل Linux الذي يعمل بالتوازي مع نظام التشغيل Windows. بعد تثبيت هذا، يمكنك استخدام نفس أوامر التثبيت داخل WSL لتثبيت Ansible.
إعداد Ansible
هناك بعض المكونات الأساسية التي نحتاج إلى تثبيت PowerShell 7 عليها. والجدير بالذكر أننا نحتاج إلى ملف مضيفين لتحديد المواقع المستهدفة. هناك العديد من الطرق لإعداد هذا، ولكن عادةً ما تعمل بنية المجلدات الموضحة أدناه بشكل جيد.
داخل
inventories
الدليل، سنقوم بإنشاء ملف
hosts
ملف يحتوي على كافة الأنظمة التي نريد استهدافها من خلال قواعد اللعبة لدينا. ملف مضيفين بسيط يقوم بإنشاء مجموعة من المضيفين ضمن ملف
production
العلامة موضحة أدناه. التعليقات مفيدة لإخبارك باسم المضيف الفعلي للأنظمة.
(production)
100.100.10.10
100.100.10.11
100.100.10.12
100.100.10.13
يمكنك إنشاء مجموعات متعددة من المضيفين ويمكن أن يتواجد نفس المضيف في مجموعات متعددة. وهذا يجعل تجميع هؤلاء المضيفين و”وضع علامات عليهم” أسهل لإدارتهم لاحقًا للقيام بأدوار أكثر تعقيدًا.
إنشاء كتاب اللعب لدينا
الآن بعد أن حصلنا على ملف المضيفين، يمكننا البدء في إنشاء قواعد اللعبة الخاصة بنا. للقيام بذلك، دعونا أولاً نقوم بإنشاء مجلد جديد ضمن المجلد playbooks مجلد يحتوي على كتاب اللعب الخاص بنا. في هذه الحالة سوف نسميها deploy-powershell. ضمن هذا المجلد سوف نقوم بإنشاء الملف التالي main.yml. ال main.yml الملف هو نقطة الدخول الأساسية لقواعد اللعبة. ليس من الضروري أن يتم تسميتها main.yml لكنها اتفاقية مشتركة.
- name: Install PowerShell 7
hosts: all
tasks:
- name: Download and Add Powershell Key to Apt-Get Keyring
apt_key:
url: "https://packages.microsoft.com/keys/microsoft.asc"
state: present- name: Add Powershell Repository into /etc/apt/sources.list - Bionic
apt_repository:
repo: 'deb (arch=amd64) bionic main'
state: present
- name: Install Powershell
apt:
pkg: powershell
state: latest
force: yes
توسيع قواعد اللعبة لدينا للمضيفين الآخرين
في الوقت الحالي، يتعامل دليل التشغيل الخاص بنا مع أنظمة Ubuntu Linux فقط. لتحديث هذا، يمكننا استخدام الشروط الشرطية Ansible لجعلها أكثر قوة. دعونا نوسع هذا لدعم أنظمة Redhat Linux وFedora.
للسماح بدعم أنظمة تثبيت الحزم الأخرى، نستخدم when شرط مشروط. من خلال قراءة ansible_distribution القيمة، يمكننا أن نقول لـ Ansible أنه يستهدف توزيعات معينة فقط لأوامر محددة.
- name: Install PowerShell 7
hosts: all
tasks:
- name: Download and Add Powershell Key to Apt-Get Keyring
apt_key:
url: "https://packages.microsoft.com/keys/microsoft.asc"
state: present- name: Add Powershell Repository into /etc/apt/sources.list - Ubuntu
apt_repository:
repo: 'deb (arch=amd64) bionic main'
state: present
when: ansible_distribution == 'Ubuntu'
- name: Add repository - Fedora
yum_repository:
name: microsoft
description: Microsoft Repository
baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
when: ansible_distribution == 'Fedora'
- name: Add repository - RedHat
yum_repository:
name: microsoft
description: Microsoft Repository
baseurl: "https://packages.microsoft.com/config/rhel/7/prod.repo"
when: ansible_distribution == 'RedHat'
- name: Install Powershell Package
apt:
pkg: powershell
state: latest
force: yes
when: ansible_distribution == 'Ubuntu'
- name: Install the PowerShell Package
yum:
name: powershell
state: latest
when: ansible_distribution == 'RedHat'
- name: Install the PowerShell Package
dnf:
name: powershell
state: latest
when: ansible_distribution == 'Fedora'
تشغيل كتاب اللعب الخاص بنا
تم إعداد قواعد اللعبة لدينا، لذا دعونا نمضي قدمًا ونقوم بتثبيت هذا فعليًا على الأنظمة التي نريدها. للقيام بذلك، سوف نقوم بتشغيل سطر الأوامر التالي.
ansible-playbook /path/to/main.yml -i /path/to/hosts
أثناء تشغيل هذا، سنحصل على نتائج كل خطوة لكل مضيف يتم تشغيل دليل التشغيل ضده ومعدل نجاحه. سيتم تشغيل كل أمر على كل نظام أثناء تشغيل دليل التشغيل، وهذا يعني أن كل أمر يحتاج إلى إكماله قبل الانتقال إلى الأمر التالي. بالإضافة إلى الشرط when سوف تظهر كتخطي ضمن النتائج.
خاتمة
يسهّل Ansible تثبيت PowerShell على أنظمة متعددة في وقت واحد. بمجرد تثبيت PowerShell 7 على تلك الأنظمة، يمكنك أيضًا استخدام Ansible لتكوين Shell للتسجيل والوصول عن بعد وإمكانيات أخرى لتسهيل الانتقال من Windows PowerShell أو PowerShell Core إلى PowerShell 7 الموحد الجديد.
يتيح لك Ansible مع PowerShell توزيع PowerShell بسرعة وسهولة على العديد من الأنظمة المختلفة بطريقة مرنة ومريحة.
(العلامات للترجمة)لينكس(ر)مايكروسوفت