أصبح التوجيه Ansible لتشغيل الأوامر كمستخدم محدد

Ansible Become Directive Run Commands



باستخدام Ansible ، يمكنك إجراء عمليات مختلفة على الأجهزة البعيدة باستخدام أوامر أولية أو كتب اللعب Ansible. بشكل افتراضي ، يتم تنفيذ كتاب اللعب Ansible على المضيف البعيد بنفس المستخدم على جهاز التحكم Ansible. هذا يعني أنك إذا احتجت إلى تشغيل أمر ما كمستخدم آخر على الجهاز البعيد ، فستحتاج إلى تحديده بشكل صريح في كتاب التشغيل Ansible.

لتنفيذ وظيفة تشغيل الأوامر كمستخدم آخر ، ستحتاج إلى استخدام ميزة sudo المتوفرة في أنظمة Linux. يسمح لك التوجيه Ansible بتشغيل الأوامر كمستخدم محدد.







يتم تحديد معلومات المستخدم في دليل التشغيل Ansible باستخدام متغيرات تصبح ، مثل تصبح_مرورًا ، لتحديد كلمة مرور المستخدم تصبح مستخدمًا ، وكذلك أي مستخدم يمكنه تشغيل الأمر.



كيفية تشغيل Ansible Tasks كجذر

لتشغيل أمر محدد كمستخدم جذر في Ansible ، يمكنك تنفيذ الأمر يصبح وتعيين القيمة على 'true'. يؤدي القيام بذلك إلى إخبار Ansible بتنفيذ sudo بدون أي وسيطات عند تشغيل الأمر.



على سبيل المثال ، ضع في اعتبارك أن كتاب اللعب Ansible يقوم بتحديث حزمة MySQL-server ثم يعيد تشغيلها. في عمليات Linux العادية ، ستحتاج إلى تسجيل الدخول كمستخدم أساسي لأداء مثل هذه المهام. في Ansible ، يمكنك ببساطة استدعاء الأمر الذي أصبح: نعم ، كما هو موضح أدناه:





- المضيفون: الكل

أصبح:نعم

مهام:

- الاسم: تشغيل أنسبلكمانظام الجذر والتحديث

يم:

الاسم: خادم الخلية

الدولة: الأحدث

- اسم:

service.service:
الاسم: mysqld

الحالة: إعادة التشغيل

في دليل التشغيل أعلاه ، استخدمنا الأمر الذي أصبح أمرًا ولم نحدد اسم المستخدم الذي أصبح مستخدمًا ، نظرًا لأن أي أوامر تحت التوجيه تصبح تعمل كجذر افتراضيًا.

هذا مشابه لتحديده على النحو التالي:



- المضيفون: الكل

أصبح:نعم

تصبح_المستخدم: الجذر

مهام:

- الاسم: تشغيل أنسبلكمانظام الجذر والتحديث

يم:
الاسم: خادم الخلية

الدولة: الأحدث

- الاسم: service.service:

الاسم: mysqld

الحالة: إعادة التشغيل

كيفية تشغيل Ansible Tasks as Sudo

لتشغيل مهمة Ansible كمستخدم محدد ، بدلاً من المستخدم الأساسي العادي ، يمكنك استخدام التوجيه Bec_user وتمرير اسم المستخدم الخاص بالمستخدم لتنفيذ المهمة. يشبه هذا تمامًا استخدام الأمر sudo -u في نظام التشغيل Unix.

لتنفيذ التوجيه Bec_user ، يجب عليك تنشيط الأمر الذي يصبح للمستخدم أولًا ، حيث لا يمكن استخدام هذا الأمر الذي يصبح مستخدمًا بدون تنشيط هذا التوجيه.

ضع في اعتبارك الدليل التالي ، حيث يتم تشغيل الأمر باعتباره لا أحد المستخدمين.

- الاسم: تشغيل أأمر كمامستخدم آخر(لا أحد)
أمر:ملاحظةمن

أصبح:حقيقية

تصبح_طريقة:إنه

تصبح_المستخدم: لا أحد

تصبح علامات:'-s / bin / bash'

في مقتطف دليل التشغيل أعلاه ، قمنا بتنفيذ تصبح ، تصبح ، مستخدمًا ، وغير ذلك من التوجيهات.

  1. تصبح_طريقة : هذا يعيّن طريقة تصعيد الامتياز ، مثل su أو sudo.
  2. تعليمات تصبح مستخدمًا : هذا يحدد المستخدم لتشغيل الأمر كـ؛ هذا لا يعني أن تصبح: نعم.
  3. تصبح أعلام : هذا يحدد العلامات لاستخدامها في المهمة المحددة.

يمكنك الآن تشغيل دليل التشغيل أعلاه باستخدام ansible-playbook filename.yml ورؤية النتيجة بنفسك. بالنسبة للمهام ذات الإخراج ، قد تحتاج إلى تنفيذ وحدة التصحيح.

كيفية تشغيل Ansible تصبح مع كلمة المرور

لتشغيل توجيه يتطلب كلمة مرور ، يمكنك إخبار Ansible بطلب كلمة مرور عند استدعاء دليل التشغيل المحدد.

على سبيل المثال ، لتشغيل كتاب التشغيل بكلمة مرور ، أدخل الأمر أدناه:

ansible-playbook يصبح_pass.yml- مهمة تصبح تمرير

يمكنك أيضًا تحديد علامة -K ، والتي تؤدي عمليات مماثلة للأمر أعلاه. على سبيل المثال:

ansible-playbook يصبح_pass.yml-إلى

بمجرد التحديد ، ستتم مطالبتك بكلمة مرور عند تنفيذ المهام.

ملاحظة : يمكنك أيضًا استخدام الأمر يصبح التوجيهي في أوامر Ansible AD HOC الأولية باستخدام العلامة -b. لمعرفة المزيد ، تحقق من الوثائق الواردة أدناه:

https://linkfy.to/becomeDocumentation

استنتاج

بعد قراءة هذه المقالة ، يجب أن تعرف الآن كيفية استخدام توجيه Ansible BECOME لإجراء تصعيد الامتيازات لمختلف المهام.

لأسباب أمنية ، من الأفضل تطبيق القيود على الحسابات المختلفة وتحديد وقت استخدامها بشكل صريح. لذلك ، يعد تصعيد الامتيازات جانبًا مهمًا من استخدام sudo و su في Ansible.