باستخدام 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'
في مقتطف دليل التشغيل أعلاه ، قمنا بتنفيذ تصبح ، تصبح ، مستخدمًا ، وغير ذلك من التوجيهات.
- تصبح_طريقة : هذا يعيّن طريقة تصعيد الامتياز ، مثل su أو sudo.
- تعليمات تصبح مستخدمًا : هذا يحدد المستخدم لتشغيل الأمر كـ؛ هذا لا يعني أن تصبح: نعم.
- تصبح أعلام : هذا يحدد العلامات لاستخدامها في المهمة المحددة.
يمكنك الآن تشغيل دليل التشغيل أعلاه باستخدام 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.