Πίνακας συντομεύσεων για ενότητες Ansible
Το Ansible είναι ένα ισχυρό εργαλείο αυτοματοποίησης. Αυτό το άρθρο παρουσιάζει τη χρήση των πιο κοινών ενοτήτων του.
Μορφή (Format)
Βασική δομή αρχείου
---
- hosts: production
remote_user: root
tasks:
- ···Παρακαλώ τοποθετήστε τις ενότητες σας κάτω από το tasks.
Μορφή εργασίας (Task Format)
Μορφή μιας γραμμής
- apt: pkg=vim state=presentΜορφή χαρτογράφησης (Mapping)
- apt:
pkg: vim
state: presentΜορφή διπλωμένου βαθμωτού (Folded Scalar)
- apt: >
pkg=vim
state=presentΜπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις παραπάνω μορφές για να ορίσετε εργασίες. Η μορφή μιας γραμμής συνιστάται για σύντομες δηλώσεις και η μορφή χαρτογράφησης για μεγαλύτερες.
Ενότητες (Modules)
Aptitude (Διαχείριση πακέτων)
Διαχείριση πακέτων
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noΑρχείο πακέτου Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Διαχείριση αποθετηρίων (Repositories)
- apt_repository:
repo: "deb https://··· raring main"
state: presentΚλειδί αποθετηρίου
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentΣχετικά με το Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesΑναφορά: ενότητα git
Διαμόρφωση Git
- git_config:
name: user.email
scope: global # local | system
value: [email protected]Αναφορά: ενότητα git_config
Διαχείριση χρηστών
- user:
state: present # Κατάσταση: παρόν
name: git # Όνομα χρήστη
system: yes # Χρήστης συστήματος
shell: /bin/sh # Shell σύνδεσης
groups: admin # Ομάδες
comment: "Έλεγχος εκδόσεων Git" # ΣχόλιοΑναφορά: ενότητα user
Διαχείριση υπηρεσιών
- service:
name: nginx # Όνομα υπηρεσίας
state: started # Κατάσταση: ξεκίνησε
enabled: yes # Ενεργοποίηση κατά την εκκίνησηΑναφορά: ενότητα service
Σχετικά με το Shell
Εντολή shell
- shell: apt-get install nginx -yΠρόσθετες επιλογές
- shell: echo hello
args:
creates: /path/file # Παράλειψη αν το αρχείο υπάρχει
removes: /path/file # Παράλειψη αν το αρχείο δεν υπάρχει
chdir: /path # Αλλαγή σε αυτόν τον κατάλογο πριν από την εκτέλεσηΠαράδειγμα εντολής πολλαπλών γραμμών
- shell: |
echo "hello there"
echo "multiple lines"Αναφορά: ενότητα shell
Εκτέλεση σεναρίου (Script)
- script: /x/y/script.sh
args:
creates: /path/file # Παράλειψη αν το αρχείο υπάρχει
removes: /path/file # Παράλειψη αν το αρχείο δεν υπάρχει
chdir: /path # Αλλαγή σε αυτόν τον κατάλογο πριν από την εκτέλεσηΑναφορά: ενότητα script
Λειτουργίες αρχείων
Διαχείριση αρχείων
- file:
path: /etc/dir
state: directory # Τύπος: directory|file|link|hard|touch|absent
# Προαιρετικές παράμετροι:
owner: bin # Ιδιοκτήτης
group: wheel # Ομάδα
mode: 0644 # Δικαιώματα
recurse: yes # Αναδρομικά
force: yes # Αναγκαστική δημιουργία μαλακού συνδέσμουΑναφορά: ενότητα file
Αντιγραφή αρχείου
- copy:
src: /app/config/nginx.conf # Αρχείο προέλευσης
dest: /etc/nginx/nginx.conf # Προορισμός
# Προαιρετικές παράμετροι:
owner: user # Ιδιοκτήτης
group: user # Γруппа
mode: 0644 # Δικαιώματα
backup: yes # Δημιουργία αντιγράφου ασφαλείας εάν υπάρχειΑναφορά: ενότητα copy
Πρότυπο (Template)
- template:
src: config/redis.j2 # Αρχείο προέλευσης προτύπου
dest: /etc/redis.conf # Προορισμός
# Προαιρετικές παράμετροι:
owner: user # Ιδιοκτήτης
group: user # Γруппа
mode: 0644 # Δικαιώματα
backup: yes # Δημιουργία αντιγράφου ασφαλείας εάν υπάρχειΑναφορά: ενότητα template
Τοπικές ενέργειες
Τοπική εκτέλεση
- name: Εκτέλεση λειτουργίας τοπικά
local_action: shell echo helloΈξοδος αποσφαλμάτωσης (Debug)
- debug:
msg: "Hello {{ var }}"Αναφορά: ενότητα debug