Skip to content

Πίνακας συντομεύσεων για ενότητες 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