task automation using ansible playbooks
Μάθετε την αυτοματοποίηση εργασιών χρησιμοποιώντας βιβλία παιχνιδιού Ansible και θησαυρούς Ansible για την προστασία ευαίσθητων δεδομένων:
Στο προηγούμενο σεμινάριο Ansible # 1 , μάθαμε για τα διάφορα στοιχεία του Ansible και πώς να εγκαταστήσουμε και να ρυθμίσουμε αυτό το εργαλείο με διάφορες ενότητες. Είδαμε επίσης πώς χρησιμοποιούνται οι ενότητες για την εκτέλεση μιας λειτουργίας ή εργασίας.
Σε αυτό το μέρος, θα εξετάσουμε την αυτοματοποίηση εργασιών χρησιμοποιώντας βιβλία παιχνιδιού Ansible και θησαυρούς Ansible για την προστασία ευαίσθητων δεδομένων.
Προτεινόμενη ανάγνωση => Οδηγός εκμάθησης για DevOps
ο καλύτερος επεξεργαστής κειμένου για το python mac
Τι θα μάθετε:
- Αβίαστα βιβλία
- Δημιουργία Playbook με παραδείγματα
- Ακατάλληλος θάλαμος
- Περίληψη
- Συνιστώμενη ανάγνωση
Αβίαστα βιβλία
Έχουμε δει πώς να εκτελέσουμε μεμονωμένες εργασίες ή μεμονωμένες εργασίες χρησιμοποιώντας Ενότητες, αλλά τι γίνεται αν πρέπει να εκτελέσετε πολλές εργασίες; Τα Playbook βοηθούν να τα εκτελέσετε με σενάριο.
Τα Playbook καθορίζουν μεταβλητές, διαμορφώσεις, βήματα ανάπτυξης, εκχώρηση ρόλων, εκτέλεση πολλαπλών εργασιών. Για Π.χ. COPY / DELETE Αρχεία και φάκελοι, εγκατάσταση πακέτων, έναρξη υπηρεσιών. Επομένως, πρωταρχικά βιβλία παιχνιδιού ορίζονται για να ενορχηστρώσουν τα βήματα σε πολλούς υπολογιστές ή διακομιστές και να τα μεταφέρουν σε μια συγκεκριμένη επιθυμητή κατάσταση.
Το Playbook είναι γραμμένο σε Μορφή YAML με επέκταση αρχείου .yml. Κάποιος πρέπει να είναι πολύ προσεκτικός με τη μορφή και την ευθυγράμμιση που το καθιστά πολύ ευαίσθητο.
Περιέχει τις ακόλουθες ενότητες:
- Κάθε βιβλίο παιχνιδιού ξεκινά με 3 παύλες «-»
- Ενότητα κεντρικού υπολογιστή - Καθορίζει τις μηχανές προορισμού στις οποίες θα πρέπει να εκτελείται το playbook. Αυτό βασίζεται στο αρχείο αποθέματος Ansible.
- Μεταβλητή ενότητα - Αυτό είναι προαιρετικό και μπορεί να δηλώσει όλες τις μεταβλητές που απαιτούνται στο playbook. Θα εξετάσουμε επίσης μερικά παραδείγματα.
- Ενότητα εργασιών - Αυτή η ενότητα παραθέτει όλες τις εργασίες που πρέπει να εκτελεστούν στο μηχάνημα προορισμού. Προσδιορίζει τη χρήση των ενοτήτων. Κάθε εργασία έχει ένα όνομα που είναι μια μικρή περιγραφή του τι θα κάνει η εργασία και θα αναφέρεται κατά την εκτέλεση του βιβλίου αναπαραγωγής.
Για παράδειγμα,
Εάν χρειαστεί να εγκαταστήσουμε και να ρυθμίσουμε το Tomcat θα αποτελείται από τις ακόλουθες εργασίες:
- Λήψη και εγκατάσταση του Tomcat
- Διαμορφώστε το Tomcat
- Ξεκινήστε το Tomcat
Ομοίως, ένα άλλοΠαράδειγμαΓια τη χρήση του Tomcat που χρησιμοποιείται στη συνεχή παράδοση του DevOps, οι εργασίες θα μπορούσαν να είναι οι εξής:
- Διακοπή εφαρμογής
- Απεγκαταστήστε την εφαρμογή
- Εγκαταστήστε μια νέα έκδοση του αρχείου WAR.
- Ξεκινήστε την εφαρμογή
Δείγμα μορφής Playbook
--- Playbook start - hosts: webservers Specify the group or servers as per inventory to execute tasks become: true tasks: - name: Copy Tomcat ZIP file to install location Short description of the task copy: src=/home/ansible/niranjan/apache-tomcat-8.5.31.tar.gz dest=/opt/niranjan/tomcat
Στο παραπάνω σενάριο δείτε την ευθυγράμμιση ξεκινώντας από την κορυφή και πρέπει να διατηρηθεί αλλιώς θα λάβετε σφάλματα σύνταξης.
Για να εκτελέσετε οποιοδήποτε βιβλίο αναπαραγωγής χρησιμοποιήστε την ακόλουθη εντολή
$ ansible-playbook
Για να ελέγξετε το βιβλίο αναπαραγωγής για σφάλματα σύνταξης
$ ansible-playbook --syntax-check
Για να δείτε τη λίστα κεντρικών υπολογιστών
$ ansible-playbook --list-hosts
Δημιουργία Playbook με παραδείγματα
Σε αυτήν την ενότητα, θα δούμε πολλά παραδείγματα για το πώς να δημιουργήσετε βιβλία αναπαραγωγής τα οποία ίσως χρειαστεί να εκτελείτε τακτικά. Αυτά τα βιβλία θα πρέπει να δημιουργηθούν και να εκτελεστούν από τον υπολογιστή ελέγχου.
Αποθηκεύστε όλα τα παρακάτω βιβλία αναπαραγωγής σε ένα αρχείο .yml και εκτελέστε όπως φαίνεται παρακάτω.
$ ansible-playbook filename.yml
Παράδειγμα 1: Δημιουργήστε το αρχείο στους υπολογιστές-στόχους ή στους διακομιστές, όπως αναφέρεται στο αρχείο αποθέματος και στην ομάδα του διακομιστή ιστού, αποθηκεύστε τον παρακάτω κώδικα με επέκταση .yml και εκτελέστε το βιβλίο αναπαραγωγής.
- hosts: webservers become: true tasks: - name: Create a file file: path=/home/ansible/niranjan.txt state=touch
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε το αρχείο ενότητα για τη δημιουργία του αρχείου.
Παράδειγμα 2: Δημιουργήστε έναν κατάλογο με τη λειτουργία ως 775 και κάτοχος / ομάδα ως Ansible.
--- - hosts: webservers become: true tasks: - name: Create directory file: path=/home/ansible/niranjan state=directory mode=775 owner=ansible group=ansible
Παράδειγμα 3: Δημιουργήστε πολλούς καταλόγους. Για να δημιουργήσετε πολλούς καταλόγους με μία μόνο εργασία μπορείτε να χρησιμοποιήσετε το βρόχο with_items δήλωση. Έτσι, όταν εκτελείτε το παρακάτω playbook ερμηνεύεται ως 3 διαφορετικές εργασίες.
--- - hosts: webservers become: true tasks: - name: Create multiple directories file: path={{item}} state=directory with_items: - '/home/ansible/vn1' - '/home/ansible/vn2' - '/home/ansible/vn3'
Παράδειγμα 4: Δημιουργήστε έναν χρήστη. Ας δούμε το χρήστης ενότητα για τη δημιουργία και διαγραφή χρηστών στο playbook.
--- - hosts: webservers become: true tasks: - name: Create User user: name=niranjan password=niranjan groups=ansible shell=/bin/bash
Παράδειγμα 5: Κατάργηση χρήστη. Η αφαίρεση ενός χρήστη είναι πολύ εύκολη και θα χρειαστεί κατάσταση να ρυθμιστεί σε απών . Αυτό είναι ισοδύναμο με το userdel εντολή στο Linux.
--- - hosts: webservers become: true tasks: - name: Remove User user: name=niranjan state=absent remove=yes force=yes
Στο παραπάνω βιβλίο αναπαραγωγής, αφαίρεση = ναι θα καταργήσει τον αρχικό κατάλογο και δύναμη = ναι θα καταργήσει τα αρχεία στον κατάλογο.
Παράδειγμα 6: Αντιγράψτε το περιεχόμενο σε ένα αρχείο χρησιμοποιώντας τη μονάδα αντιγραφής.
Εάν πρέπει να αντιγράψετε ένα αρχείο στους υπολογιστές ή τους διακομιστές προορισμού χρησιμοποιήστε το src και προορισμός στη μονάδα αντιγραφής.
--- - hosts: webservers become: true tasks: - name: Copy content to file copy: content='Hello World Niranjan
' dest=/home/ansible/niranjan.txt
Για παράδειγμα,
copy: src=/home/ansible/niranjan.txt dest=/tmp/niranjan.txt
Παράδειγμα 7: Αντικαταστήστε όλες τις εμφανίσεις μιας συμβολοσειράς.
Χρησιμοποιώντας αντικαθιστώ ενότητα μπορούμε να αντικαταστήσουμε μια λέξη με μια άλλη λέξη. Η μονάδα αντικατάστασης θα χρειαστεί 3 παραμέτρους, δηλαδή «διαδρομή», «regexp» (για να βρείτε τη συγκεκριμένη λέξη) και «αντικατάσταση» (παρέχοντας μια άλλη λέξη για αντικατάσταση).
- hosts: webservers tasks: - name: Replace example replace: path: /home/ansible/niranjan.txt regexp: 'hello' replace: 'world'
Παράδειγμα 8: Αρχειοθετήστε ή ZIP αρχεία και φακέλους
Χρησιμοποιώντας το Ansible αρχείο ενότητα μπορείτε να συμπιέσετε αρχεία ή φακέλους σε μορφή 'zip', '.gz' ή 'bz2'.
Σημείωση : Τα αρχεία ή οι φάκελοι που θα συμπιεστούν πρέπει να είναι διαθέσιμοι στους διακομιστές προορισμού και πρέπει να έχουν εγκατεστημένα τα πακέτα για tar, bzip2, gzip, zip. Για να εγκαταστήσετε αυτά τα πακέτα, μπορείτε να έχετε ξεχωριστή εργασία βιβλίου αναπαραγωγής.
--- - hosts: all become: true tasks: - name: Ansible zip file example archive: path: /home/ansible/niranjan.txt dest: /home/ansible/niranjan.zip format: zip
Το παραπάνω βιβλίο αναπαραγωγής θα συμπιέσει το αρχείο niranjan.txt στο αρχείο niranjan.zip
--- - hosts: all tasks: - name: Ansible zip multiple files example archive: path: - /home/ansible/niranjan1.txt - /home/ansible/niranjan2.txt dest: /home/ansible/niranjan.zip format: zip
Το παραπάνω βιβλίο αναπαραγωγής θα συμπιέσει πολλά αρχεία στο αρχείο niranjan.zip.
- hosts: all tasks: - name: Ansible zip directory example archive: path: - /home/ansible dest: /home/ansible/niranjan.zip format: zip
Το παραπάνω βιβλίο αναπαραγωγής θα συμπιέσει όλα τα αρχεία στον κατάλογο / home / ansible.
Παράδειγμα 9: Εργασία με ημερομηνία και χρονική σήμανση
Η χρήση της ημερομηνίας και της χρονικής σήμανσης του συστήματος βοηθά σε συγκεκριμένη κατάσταση ή σκοπούς καταγραφής. Τα γεγονότα Ansible παρέχουν πρόσβαση σε απομακρυσμένους ή στοχευμένους διακομιστές ημερομηνία και ώρα. Έτσι μπορούμε να χρησιμοποιήσουμε το ενότητα εντοπισμού σφαλμάτων για να εκτυπώσετε την έξοδο μαζί με το που χαρακτηριστικό όπως φαίνεται παρακάτω.
--- - hosts: webservers become: true tasks: - name: Date and Time Example in Ansible debug: var=ansible_date_time.date
Το παραπάνω βιβλίο αναπαραγωγής εμφανίζει την ημερομηνία.
--- - hosts: webservers become: true tasks: - name: Date and Time Example in Ansible debug: var=ansible_date_time.time
Το παραπάνω βιβλίο αναπαραγωγής εμφανίζει την ώρα.
- hosts: all tasks: - name: Ansible timestamp filename example command: touch niranjan{{ansible_date_time.date}}.log
Το παραπάνω playbook θα δημιουργήσει ένα δυναμικό αρχείο με βάση την τρέχουσα ημερομηνία για Π.χ . niranjan2018-07-15.log
Παράδειγμα 10: Παράδειγμα μεταβλητών
Οι μεταβλητές χρησιμοποιούνται για την αποθήκευση τιμών. Στο παρακάτω παράδειγμα δηλώνω τη μεταβλητή όνομα με αξία Νιράντζαν . Η έξοδος θα είναι Νιράντζαν .
- hosts: all vars: name: niranjan tasks: - name: Ansible Basic Variable Example debug: msg: '{{ name }}'
Μπορούμε επίσης να έχουμε έναν πίνακα ή μια λίστα μεταβλητών όπως παρακάτω Παράδειγμα .
- hosts: all vars: name: - Vasudevamurthy - Niranjan tasks: - name: Ansible Array Example debug: msg: '{{ name(1) }}'
Η ευρετηρίαση του πίνακα ξεκινά από το ZERO (0). Εξ ου και η έξοδος στο παραπάνω παράδειγμα θα είναι Niranjan.
Παράδειγμα 11: Καταχωρίστε μεταβλητές
Μπορούμε επίσης να καταγράψουμε την έξοδο οποιασδήποτε εργασίας σε μια μεταβλητή μητρώου.
- hosts: all tasks: - name: Ansible register variable basic example shell: 'find *.txt' args: chdir: '/home/Ansible' register: reg_output - debug: var: reg_output
Σημείωση: Για εμφάνιση - χρησιμοποιήστε το χαρακτηριστικό msg και για να καταγράψετε οποιαδήποτε τιμή χρησιμοποιήστε το χαρακτηριστικό var στη μονάδα - debug
Παράδειγμα 12: Playbook για εγκατάσταση του επεξεργαστή vim και του GIT στους διακομιστές ή τους υπολογιστές προορισμού.
Σε αυτό το βιβλίο αναπαραγωγής, χρησιμοποιήσαμε το ναι ενότητα για την εγκατάσταση της τελευταίας έκδοσης των πακέτων λογισμικού.
--- - hosts: webservers become: true tasks: - name: Install Package yum: name=vim,git state=latest
Παράδειγμα 13: Εγκαταστήστε τον διακομιστή Apache. Αποθηκεύστε τον παρακάτω κώδικα και εκτελέστε το playbook όπως φαίνεται παρακάτω.
--- - hosts: webservers become: true tasks: - name: Install Package yum: name=httpd state=present - name: Start httpd service service: name=httpd state=started
Εκτός από το ναι ενότητα, το υπηρεσία Το module χρησιμοποιείται επίσης για την εκκίνηση της υπηρεσίας httpd. Οι εργασίες εκτελούνται συγχρόνως από πάνω προς τα κάτω.
Παράδειγμα 14: Εγκαταστήστε το JDK
Το ακόλουθο βιβλίο αναπαραγωγής θα αυτοματοποιήσει την εγκατάσταση του JDK 8 σε όλους τους υπολογιστές-στόχους ή διακομιστές. Το JDK αποτελεί προϋπόθεση για τα περισσότερα από τα άλλα πακέτα λογισμικού όπως το Maven ή το Tomcat.
--- - hosts: webservers become: true vars: download_url: http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm tasks: - name: Download JDK 8 RPM file command: 'wget --no-check-certificate --no-cookies --header 'Cookie: oraclelicense=accept-securebackup-cookie' {{download_url}} ' - name: Install JDK 8 command: 'rpm -ivh jdk-8u171-linux-x64.rpm'
Παράδειγμα 15: Εγκαταστήστε το Maven
Οι εργασίες που εκτελούνται είναι η λήψη του αρχείου maven από τη διεύθυνση URL χρησιμοποιώντας το get_url module, εξαγάγετε το αρχείο που κατεβάσατε, μετακινήστε το σε μικρότερο κατάλογο, ενημερώστε και εκτελέστε το προφίλ όπου το maven προστίθεται στη διαδρομή.
--- - hosts: webservers become: true tasks: - name: Download Maven get_url: url=http://www-us.apache.org/dist/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz dest=/opt/niranjan/apache-maven-3.5.3-bin.tar.gz - name: Extract Maven command: tar xvf /opt/niranjan/apache-maven-3.5.3-bin.tar.gz -C /opt/niranjan - name: Move to a smaller directory command: mv /opt/niranjan/apache-maven-3.5.3 /opt/niranjan/maven - name: Update Profile copy: content='export M2_HOME=/opt/niranjan/maven
' dest=/etc/profile.d/maven.sh # lineinfile is used to add additional or append lines to existing files. - lineinfile: path: /etc/profile.d/maven.sh line: 'export PATH=${M2_HOME}/bin:${PATH}' - name: Source profile shell: source /etc/profile.d/maven.sh
Παράδειγμα 16: Εγκαταστήστε το Tomcat 8
Το παρακάτω playbook βοηθά στην εγκατάσταση και εκκίνηση του Tomcat 8 στους υπολογιστές ή τους διακομιστές προορισμού.
Μπορείτε να κάνετε κλικ εδώ για να αντιγράψετε την τοποθεσία συνδέσμου της τελευταίας έκδοσης του Tomcat 8. Κάντε κλικ στο εδώ για τη διεύθυνση URL που περιέχει το αρχείο tarcat 8 tar που έχω χρησιμοποιήσει σε αυτό το βιβλίο αναπαραγωγής.
--- - hosts: webservers become: true gather_facts: no tasks: - name: Download Tomcat get_url: url=http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.tar.gz dest=/home/ansible - name: Extract the file downloaded tomcat file command: tar xvf apache-tomcat-8.5.32.tar.gz - name: Move the Tomcat directory to a smaller one command: mv apache-tomcat-8.5.32 tomcat - name: Change Ownership and group of the Tomcat directory file: path=/home/ansible/tomcat owner=ansible group=ansible mode=775 state=directory recurse=yes - name: Start Tomcat command: nohup /home/ansible/tomcat/bin/startup.sh # Execute command even after you have exited from the shell prompt become: true become_user: ansible
Παράδειγμα 17: pre_tasks, post_tasks και ετικέτες
Μπορείς να χρησιμοποιήσεις pre_tasks και post_tasks για να εκτελέσετε συγκεκριμένες εργασίες πριν ή μετά την εκτέλεση της κύριας εργασίας.
Κανονικά σε ένα βιβλίο αναπαραγωγής, έχετε τόσες πολλές εργασίες που εκτελούνται. Τι γίνεται αν πρέπει να εκτελέσετε μόνο μια συγκεκριμένη εργασία; Οι ετικέτες είναι η απάντηση σε αυτό. Ας δούμε την παρακάτω επιλογή που έχει και τις 3 επιλογές. Έχει 2 εργασίες, δηλαδή μία με TAG και μία χωρίς TAG.
--- - name: Pre , Post tasks and Tags example hosts: localhost become: true tags: - niranjan pre_tasks: - debug: msg='Started task with tag - niranjan. tasks: - name: Going to execute the main task debug: msg='Currently in the target server' post_tasks: - debug: msg='Completed task with tag - niranjan. - name: Play without tags hosts: localhost become: true tasks: - name: Command to list files shell: ls -lrt > niranjan.txt
Ας δούμε τι συμβαίνει κατά την εκτέλεση του βιβλίου αναπαραγωγής με την επιλογή –list-tags
$ ansible-playbook preposttagseg.yml --list-tags
Η παραπάνω έξοδος φαίνεται καλύτερη και καθαρή. Το Play # 1 έχει ετικέτα niranjan, αλλά το Play # 2 δεν έχει ετικέτες.
Εάν πρέπει να εκτελέσετε τις εργασίες με την ετικέτα niranjan, τότε η εντολή για εκτέλεση θα ήταν:
η προεπιλεγμένη πύλη δεν είναι διαθέσιμη τα Windows 10 συνεχίζουν να συμβαίνουν
$ ansible-playbook preposttagseg.yml --tags niranjan
Η δεύτερη αναπαραγωγή δεν εκτελείται και το αρχείο δεν έχει δημιουργηθεί.
Παράδειγμα 18: Χειριστές
Οποιοδήποτε πακέτο λογισμικού θα έχει αρχεία διαμόρφωσης και οποιεσδήποτε αλλαγές σε αυτό θα ισχύουν μόνο κατά την επανεκκίνηση της υπηρεσίας. Επομένως, πρέπει να ρυθμίσετε την υπηρεσία για επανεκκίνηση. Για Π.χ. Στο παρακάτω playbook αν το εκτελέσετε πολλές φορές, η υπηρεσία θα επανεκκινήσει ούτως ή άλλως ανεξάρτητα από τις αλλαγές που έχουν γίνει ή όχι, κάτι που δεν είναι σωστό.
--- - hosts: webservers tasks: - name: Install the apache Package yum: name=httpd state=latest - name: Copy httpd configuration file copy: src=/home/ansible/httpd.final dest=/etc/httpd/conf/httpd.conf - name: Copy index.html file copy: src=/home/ansible/index.html dest=/var/www/html
# This service below is executed irrespective of changes done or not to any config files - name: Start and Enable httpd service service: name=httpd state= restarted enabled=yes
Επομένως, πρέπει να επανεκκινήσουμε την υπηρεσία μόνο εάν οι αλλαγές γίνουν σε αρχεία διαμόρφωσης. Χειριστές παρέχετε αυτήν τη δυνατότητα.
Έτσι, η σωστή ροή με τους χειριστές θα ήταν να έχουμε ένα κοινοποιώ επιλογή.
--- - hosts: webservers become: true tasks: - name: Install httpd package yum: name=httpd state=latest - name: Copy the httpd configuration file copy: src=/home/ansible/httpd.final dest=/etc/httpd/conf/httpd.conf - name: Copy index.html file copy: src=/home/ansible/index.html dest=/var/www/html notify: - restart httpd - name: Start httpd service service: name=httpd state=started enabled=yes handlers: - name: restart httpd service: name=httpd state=restarted
Έτσι, για πρώτη φορά, ο διακομιστής Apache θα εγκατασταθεί και θα ξεκινήσει. Ακόμα κι αν εκτελέσετε ξανά το βιβλίο αναπαραγωγής χωρίς αλλαγές, η υπηρεσία httpd δεν θα επανεκκινηθεί καθώς έχει ήδη ξεκινήσει.
Εάν υπάρχουν οποιεσδήποτε αλλαγές στα αρχεία διαμόρφωσης ή εάν αλλάξουν τα αρχεία HTML τότε, μόλις εκτελεστεί το βιβλίο αναπαραγωγής, ο χειριστής ειδοποιείται για επανεκκίνηση της υπηρεσίας. Το όνομα στην ενότητα ειδοποίησης και οι χειριστές πρέπει να είναι το ίδιο. Ο χειριστής γράφεται όπως κάθε άλλη εργασία, αλλά καλείται μόνο εάν υπάρχουν αλλαγές.
Ακατάλληλος θάλαμος
Τις περισσότερες φορές όταν ευαίσθητα ή εμπιστευτικά δεδομένα πρέπει να προστατεύονται στο βιβλίο αναπαραγωγής, τότε μπορεί να κρυπτογραφηθεί και όχι να τα διατηρεί σε ένα αρχείο κειμένου το οποίο είναι ευανάγνωστο από όλους. Το Ansible Vault σάς επιτρέπει να κρυπτογραφείτε το βιβλίο αναπαραγωγής για την προστασία των εμπιστευτικών δεδομένων.
Για παράδειγμα, εξετάστε την ακόλουθη εργασία όπου αντιγράφεται μια εμπιστευτική σύμβαση εργασίας.
Σε τέτοιες περιπτώσεις, θα χρειαστείτε ένα Ansible Vault.
--- - hosts: webservers become: true tasks: - name: Copying Confidential Job Agreement copy: content='This is a Confidential Job Agreement' dest=/home/ansible/jobagreement.txt
Ακολουθούν τα βήματα που πρέπει να ακολουθήσετε για την κρυπτογράφηση των παραπάνω αρχείων playbook.
# 1) Δημιουργία νέων κρυπτογραφημένων αρχείων
Για να δημιουργήσετε νέα κρυπτογραφημένα αρχεία με θησαυροφυλάκιο χρησιμοποιήστε το ansible-θησαυροφυλάκιο δημιουργία εντολή.
$ ansible-vault create jobagreement.yml
Μετά την επιβεβαίωση του κωδικού πρόσβασης θα ανοίξει ένα παράθυρο επεξεργασίας για να προσθέσετε περιεχόμενο στο αρχείο.
Το Ansible θα κρυπτογραφήσει τα περιεχόμενα όταν κλείσετε το αρχείο. Αντί να δείτε το πραγματικό περιεχόμενο, θα δείτε κρυπτογραφημένα μπλοκ.
# 2) Για να κρυπτογραφήσετε ένα υπάρχον αρχείο yml χρησιμοποιήστε τα ακόλουθα
$ ansible-vault encrypt existingfile.yml
Θα ζητηθεί ξανά κωδικός πρόσβασης για κρυπτογράφηση.
# 3) Προβολή κρυπτογραφημένου αρχείου
Χρησιμοποιήστε την εντολή θέα στο δωμάτιο για να δείτε τα πραγματικά περιεχόμενα του αρχείου.
$ ansible-vault view jobagreement.yml
Θα σας ζητηθεί ξανά ο κωδικός πρόσβασης για να δείτε τα περιεχόμενα του αρχείου.
# 4) Επεξεργασία κρυπτογραφημένων αρχείων
Εάν πρέπει να επεξεργαστείτε το αρχείο χρησιμοποιήστε την εντολή επεξεργασία ansible-vault
$ ansible-vault edit users.yml
Εισαγάγετε τον κωδικό πρόσβασης για να επεξεργαστείτε το αρχείο.
# 5) Αλλαγή κωδικού πρόσβασης των κρυπτογραφημένων αρχείων
Χρησιμοποιήστε την εντολή aneyible-θησαυροφυλάκιο για να αλλάξετε τον κωδικό πρόσβασης του αρχείου.
$ ansible-vault rekey jobagreement.yml
# 6) Εκτελέστε ένα κρυπτογραφημένο αρχείο βιβλίου αναπαραγωγής Ansible
Χρησιμοποιήστε την επιλογή –sas-vault-pass με την εντολή ansible-playbook.
$ ansible-playbook users.yml --ask-vault-pass
# 7) Μη αυτόματη αποκρυπτογράφηση των κρυπτογραφημένων αρχείων
Χρησιμοποιήστε την εντολή ansible-vault decrypt.
$ ansible-vault decrypt jobagreement.yml
Περίληψη
Λοιπόν σε αυτό το σεμινάριο, είδαμε τις δύο πιο σημαντικές πτυχές της διαχείρισης διαμόρφωσης που είναι Playible βιβλία και προστασία ευαίσθητων δεδομένων χρησιμοποιώντας το Ansible Vaults.
Τα παραπάνω παραδείγματα του βιβλίου παιχνιδιού θα σας έδιναν μια ιδέα για το πώς να αυτοματοποιήσετε διάφορες εργασίες σε διαφορετικά σενάρια κατά την παράδοση του λογισμικού.
Στο επερχόμενο σεμινάριό μας, θα δούμε πώς να διαμορφώσουμε το Playbook χρησιμοποιώντας ρόλους Ansible, να ενσωματωθούμε με τον Jenkins και την πιο σημαντική πτυχή για να δουλέψουμε με λειτουργικές μονάδες Ansible S3 και EC2 για τη διαχείριση των παρουσιών AWS (Δημιουργία και τερματισμός παρουσιών EC2).
δωρεάν πρόγραμμα επεξεργασίας σεναρίου shell για windows
Εκπαιδευτικό πρόγραμμα PREV | ΕΠΟΜΕΝΟ Φροντιστήριο
Συνιστώμενη ανάγνωση
- Ansible Tutorial: Εγκατάσταση και χρήση με Ansible Modules
- Εντολές αυτοματισμού SeeTest: Λεπτομερής επεξήγηση με παραδείγματα
- Ansible Roles, Integration with Jenkins in DevOps και EC2 Modules
- Πώς να αναπτύξετε δοκιμαστικά σενάρια χρησιμοποιώντας τα 5 πιο δημοφιλή πλαίσια αυτοματισμού δοκιμών (παραδείγματα)
- Πλαίσιο αυτοματοποίησης δοκιμής χωρίς script: Εργαλεία και παραδείγματα
- Εκμάθηση Python DateTime με παραδείγματα
- Αποκοπή εντολής στο Unix με παραδείγματα
- Δοκιμή αυτοματισμού - Είναι μια εξειδικευμένη καριέρα; Μπορούν οι κανονικοί δοκιμαστές να αυτοματοποιήσουν επίσης;