Cheat Sheet Ενοτήτων (Modules) 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"Διαχείριση Αποθετηρίων (Πηγές λογισμικού)
- 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: hi@example.comΑναφορά: ενότητα git_config
Διαχείριση Χρηστών
- user:
state: present # Κατάσταση: παρών
name: git # Όνομα χρήστη
system: yes # Χρήστης συστήματος
shell: /bin/sh # Shell σύνδεσης
groups: admin # Ομάδες
comment: "Git Version Control" # ΣχόλιοΑναφορά: ενότητα 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
Εκτέλεση Σεναρίων (Scripts)
- script: /x/y/script.sh
args:
creates: /path/file # Παράλειψη αν το αρχείο υπάρχει
removes: /path/file # Παράλειψη αν το αρχείο δεν υπάρχει
chdir: /path # Μετάβαση σε αυτόν τον κατάλογο πριν την εκτέλεσηΑναφορά: ενότητα script
Λειτουργίες Αρχείων
Διαχείριση Αρχείων
- file:
path: /etc/dir
state: directory # Τύπος: κατάλογος|αρχείο|σύνδεσμος|σκληρός σύνδεσμος|touch|απών
# Προαιρετικές παράμετροι:
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
Πρότυπα (Templates)
- 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