البرمجة

فهم فرق become و become_user في Ansible

عند استخدام أنسيبل، تكون become_user و become ضروريين عندما تحتاج إلى تشغيل الأوامر بصلاحيات مستخدم آخر، مثل المدير النظام (root). لكن هناك فرق بينهما في كيفية تطبيق هذه الصلاحيات.

become_user يحدد المستخدم الذي سيتم تشغيل الأوامر بصلاحياته. مثلاً، إذا كنت تريد تشغيل الأوامر كمستخدم root، يمكنك استخدام:

yaml
become: yes become_user: root

وهذا يعني “قم بتنفيذ الأوامر كمستخدم root”. أما become فهو يشير إلى ما إذا كنت تريد أن تكون كل الأوامر في الملف الذي تكتبه بصلاحيات المستخدم المحدد. على سبيل المثال، إذا كنت تريد تنفيذ الأوامر كمستخدم root، يمكنك استخدام:

yaml
become: yes become_user: root

أو يمكنك استخدام الاختصار التالي:

yaml
become: yes

في هذه الحالة، ستقوم أنسيبل بتنفيذ الأوامر كمستخدم root تلقائياً.

إذا كنت تريد فقط تنفيذ بعض الأوامر كمستخدم معين، يمكنك استخدام become_user فقط دون استخدام become.

المزيد من المعلومات

بالطبع! عندما تستخدم Ansible، يُستخدم become لتحديد ما إذا كنت تريد تنفيذ الأوامر بصلاحيات المستخدم الجديد المحدد في become_user، أم لا. إذا قمت بتعيين become: yes، فسيتم تنفيذ الأوامر بصلاحيات المستخدم الجديد، بينما إذا كانت قيمة become: no، فستُنفذ الأوامر بصلاحيات المستخدم الحالي.

من الجيد أيضاً أن تعرف أنه يُمكنك استخدام become_method لتحديد كيفية تنفيذ الأوامر بصلاحيات المستخدم الجديد. يمكن أن تكون القيمة sudo (القيمة الافتراضية) أو su أو pbrun أو غيرها، حسب نظام التشغيل الخاص بك.

أيضاً، يُمكنك استخدام become_flags لتحديد علامات إضافية تُرسل إلى الأمر الذي يستخدم للتحويل إلى المستخدم الجديد. مثلاً، يمكنك استخدامها لتمكين تأكيد كلمة المرور عند استخدام su، عبر تعيين become_flags: -i -H، حيث -i يقول لـ su أن يشغل الصف shell بشكل تفاعلي، و -H يقول لـ su أن يعتبر المسار الرئيسي للمستخدم الجديد.

أخيرًا، يُمكنك استخدام ansible_become_pass في الملف ansible.cfg لتحديد كلمة المرور التي يُطلب من المستخدم تقديمها عند التحويل إلى المستخدم الجديد.

زر الذهاب إلى الأعلى