Το Ansible Become Direction για την εκτέλεση εντολών ως καθορισμένου χρήστη

Ansible Become Directive Run Commands



Χρησιμοποιώντας το Ansible, μπορείτε να εκτελέσετε διάφορες λειτουργίες σε απομακρυσμένα μηχανήματα χρησιμοποιώντας ακατέργαστες εντολές ή Ansible playbooks. Από προεπιλογή, ένα Ansible playbook εκτελείται στον απομακρυσμένο κεντρικό υπολογιστή με τον ίδιο χρήστη στο χειριστήριο Ansible. Αυτό σημαίνει ότι αν χρειαστεί να εκτελέσετε μια εντολή ως άλλος χρήστης στο απομακρυσμένο μηχάνημα, θα πρέπει να την καθορίσετε ρητά στο Ansible playbook σας.

Για να εφαρμόσετε τη λειτουργικότητα της εκτέλεσης εντολών ως άλλου χρήστη, θα πρέπει να χρησιμοποιήσετε τη δυνατότητα sudo που είναι διαθέσιμη σε συστήματα Linux. Η οδηγία Ansible become σας επιτρέπει να εκτελείτε εντολές ως καθορισμένος χρήστης.







Οι πληροφορίες του χρήστη καθορίζονται σε ένα Ansible playbook χρησιμοποιώντας τις μεταβλητές γίνει, όπως το turn_pass, για να καθορίσουν τον κωδικό πρόσβασης του χρήστη γίνει_χρήστη, καθώς και ποιος χρήστης μπορεί να εκτελέσει την εντολή.



Τρόπος εκτέλεσης απαντήσιμων εργασιών ως ρίζα

Για να εκτελέσετε μια συγκεκριμένη εντολή ως χρήστης ρίζας στο Ansible, μπορείτε να εφαρμόσετε την οδηγία γίνει και να ορίσετε την τιμή σε 'true'. Με αυτόν τον τρόπο, ο Ansible θα εφαρμόσει το sudo χωρίς ορίσματα κατά την εκτέλεση της εντολής.



Για παράδειγμα, σκεφτείτε ένα Ansible playbook που ενημερώνει το πακέτο διακομιστή MySQL και μετά το επανεκκινεί. Σε κανονικές λειτουργίες Linux, θα πρέπει να συνδεθείτε ως ο βασικός χρήστης για να εκτελέσετε τέτοιες εργασίες. Στο Ansible, μπορείτε απλά να καλέσετε την οδηγία γίνει: ναι, όπως φαίνεται παρακάτω:





- οικοδεσπότες: όλοι

γίνομαι:Ναί

καθήκοντα:

- όνομα: Ansible τρέξιμοόπως καιroot και ενημέρωση sys

yum:

όνομα: mysql-server

κατάσταση: τελευταία

- όνομα:

service.service:
όνομα: mysqld

κατάσταση: επανεκκίνηση

Στο παραπάνω playbook, χρησιμοποιήσαμε την οδηγία γίνει και δεν καθορίσαμε τον χρήστη become_user, καθώς τυχόν εντολές κάτω από την οδηγία γίνει εκτελούνται ως root από προεπιλογή.

Αυτό είναι παρόμοιο με το να το προσδιορίσετε ως:



- οικοδεσπότες: όλοι

γίνομαι:Ναί

γίνει_χρήστης: ρίζα

καθήκοντα:

- όνομα: Ansible τρέξιμοόπως καιroot και ενημέρωση sys

yum:
όνομα: mysql-server

κατάσταση: τελευταία

- όνομα: service.service:

όνομα: mysqld

κατάσταση: επανεκκίνηση

Πώς να εκτελέσετε απαντώμενες εργασίες ως Sudo

Για να εκτελέσετε μια εργασία Ansible ως συγκεκριμένος χρήστης και όχι ως κανονικός χρήστης ρίζας, μπορείτε να χρησιμοποιήσετε την οδηγία become_user και να περάσετε το όνομα χρήστη του χρήστη για να εκτελέσετε την εργασία. Αυτό μοιάζει με τη χρήση της εντολής sudo -u στο Unix.

Για να εφαρμόσετε την οδηγία γίνει_χρήστης, πρέπει πρώτα να ενεργοποιήσετε την οδηγία γίνετε, καθώς ο χρήστης become_user είναι άχρηστος χωρίς αυτήν την οδηγία ενεργοποιημένη.

Εξετάστε το ακόλουθο playbook, στο οποίο η εντολή εκτελείται ως ο χρήστης nobody.

- όνομα: Εκτέλεση αεντολή όπως καιάλλος χρήστης(κανείς)
εντολή:ΥΣΤΕΡΟΓΡΑΦΟτου

γίνομαι:αληθής

γίνει_μέθοδος:του

γίνει_χρήστης: κανένας

γίνουν_σημάδες:'-s /bin /bash'

Στο παραπάνω απόσπασμα από το playbook, εφαρμόσαμε τις οδηγίες που έγιναν, έγιναν_χρήστες και άλλες.

  1. γίνει_μέθοδος : Αυτό ορίζει τη μέθοδο κλιμάκωσης προνομίων, όπως su ή sudo.
  2. να γίνει_χρήστης : Αυτό καθορίζει τον χρήστη για εκτέλεση της εντολής ως; αυτό δεν σημαίνει ότι γίνεται: ναι.
  3. γίνουν_σημαίες : Αυτό ορίζει τις σημαίες που θα χρησιμοποιηθούν για την καθορισμένη εργασία.

Τώρα μπορείτε να εκτελέσετε το παραπάνω playbook με το ansible-playbook filename.yml και να δείτε το αποτέλεσμα μόνοι σας. Για εργασίες με έξοδο, ίσως χρειαστεί να εφαρμόσετε τη μονάδα εντοπισμού σφαλμάτων.

Πώς να εκτελέσετε το Ansible γίνει με τον κωδικό πρόσβασης

Για να εκτελέσετε μια οδηγία για το οποίο απαιτείται κωδικός πρόσβασης, μπορείτε να πείτε στο Ansible να ζητήσει κωδικό πρόσβασης όταν επικαλεστείτε το καθορισμένο βιβλίο αναπαραγωγής.

Για παράδειγμα, για να εκτελέσετε ένα playbook με κωδικό πρόσβασης, εισαγάγετε την παρακάτω εντολή:

ansible-playbook become_pass.yml--ask-become-pass

Μπορείτε επίσης να καθορίσετε τη σημαία -K, η οποία εκτελεί παρόμοιες λειτουργίες με την παραπάνω εντολή. Για παράδειγμα:

ansible-playbook become_pass.yml-ΠΡΟΣ ΤΟ

Μόλις καθοριστεί, θα σας ζητηθεί κωδικός πρόσβασης κατά την εκτέλεση των εργασιών.

ΣΗΜΕΙΩΣΗ : Μπορείτε επίσης να χρησιμοποιήσετε την οδηγία become στις πρώτες εντολές Ansible AD HOC χρησιμοποιώντας τη σημαία -b. Για να μάθετε περισσότερα, ελέγξτε την τεκμηρίωση που παρέχεται παρακάτω:

https://linkfy.to/becomeDocumentation

συμπέρασμα

Αφού διαβάσετε αυτό το άρθρο, θα πρέπει τώρα να γνωρίζετε πώς να χρησιμοποιήσετε την οδηγία Ansible BECOME για να εκτελέσετε κλιμάκωση προνομίων για διάφορες εργασίες.

Για λόγους ασφαλείας, είναι καλύτερο να εφαρμόσετε περιορισμούς για διάφορους λογαριασμούς και να προσδιορίσετε ρητά πότε χρησιμοποιούνται. Έτσι, η κλιμάκωση των προνομίων είναι μια σημαντική πτυχή της χρήσης του sudo και του su στο Ansible.