Skip to content

Ansible-moduler Lathund

Ansible är ett kraftfullt automatiseringsverktyg. Denna artikel introducerar hur man använder dess vanligaste moduler.

Format

Grundläggande filstruktur

---
- hosts: production
  remote_user: root
  tasks:
  - ···

Placera dina moduler under tasks.

Uppgiftsformat (Task Format)

Enradsformat

- apt: pkg=vim state=present

Mappingsformat (Mapping)

- apt:
    pkg: vim
    state: present

Vikt skalärformat (Folded Scalar)

- apt: >
    pkg=vim
    state=present

Du kan använda vilket som helst av ovanstående format för att definiera uppgifter. Enradsformat rekommenderas för korta deklarationer, och mappingsformat rekommenderas för längre deklarationer.

Moduler

Aptitude

Pakethantering

- apt:
    pkg: nodejs
    state: present # absent | latest
    update_cache: yes
    force: no

Deb-paketfil

- apt:
    deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"

Hantering av programvarukällor (Repositories)

- apt_repository:
    repo: "deb https://··· raring main"
    state: present

Nyckel för programvarukälla

- apt_key:
    id: AC40B2F7
    url: "http://···"
    state: present

Git-relaterat

- git:
    repo: git://github.com/
    dest: /srv/checkout
    version: master
    depth: 10
    bare: yes

Referens: git-modul

Git-konfiguration

- git_config:
    name: user.email
    scope: global # local | system
    value: [email protected]

Referens: git_config-modul

Användarhantering

- user:
    state: present    # Status: närvarande
    name: git        # Användarnamn
    system: yes      # Systemanvändare
    shell: /bin/sh   # Inloggnings-shell
    groups: admin    # Grupper
    comment: "Git versionskontroll"  # Kommentar

Referens: user-modul

Tjänstehantering

- service:
    name: nginx      # Tjänstenamn
    state: started   # Status: startad
    enabled: yes     # Aktivera vid start

Referens: service-modul

Shell-relaterat

shell-kommando

- shell: apt-get install nginx -y

Extra alternativ

- shell: echo hello
  args:
    creates: /path/file  # Hoppa över om filen finns
    removes: /path/file  # Hoppa över om filen inte finns
    chdir: /path        # Byt till denna katalog före körning

Exempel på flerraderskommando

- shell: |
    echo "hello there"
    echo "multiple lines"

Referens: shell-modul

Skriptkörning

- script: /x/y/script.sh
  args:
    creates: /path/file  # Hoppa över om filen finns
    removes: /path/file  # Hoppa över om filen inte finns  
    chdir: /path        # Byt till denna katalog före körning

Referens: script-modul

Filoperationer

Filhantering

- file:
    path: /etc/dir
    state: directory # Typ: directory|file|link|hard|touch|absent

    # Valfria parametrar:
    owner: bin      # Ägare
    group: wheel    # Grupp
    mode: 0644      # Rättigheter
    recurse: yes    # Rekursivt
    force: yes      # Tvinga skapande av mjuk länk

Referens: file-modul

Filkopiering

- copy:
    src: /app/config/nginx.conf   # Källfil
    dest: /etc/nginx/nginx.conf   # Destination


    # Valfria parametrar:
    owner: user     # Ägare
    group: user     # Grupp
    mode: 0644      # Rättigheter
    backup: yes     # Säkerhetskopiera om den finns

Referens: copy-modul

Mall (Template)

- template:
    src: config/redis.j2       # Källfil för mall
    dest: /etc/redis.conf      # Destination

    # Valfria parametrar:
    owner: user     # Ägare
    group: user     # Grupp
    mode: 0644      # Rättigheter
    backup: yes     # Säkerhetskopiera om den finns

Referens: template-modul

Lokala åtgärder

Lokal körning

- name: Kör operationen lokalt
  local_action: shell echo hello

Debug-utdata

- debug:
    msg: "Hello {{ var }}"

Referens: debug-modul

title: “Πίνακας συντομεύσεων για ενότητες Ansible” date: 2025-04-22T15:09:28+08:00 keywords: “Εκμάθηση ενοτήτων Ansible, ενότητες αυτοματοποίησης, Ansible Playbook, εργαλεία λειτουργίας IT, διαμόρφωση διακομιστή, αυτοματοποιημένη ανάπτυξη” description: “Ένα ολοκληρωμένο εγχειρίδιο αναφοράς για τις ενότητες Ansible, που καλύπτει τη χρήση κοινών ενοτήτων για το χειρισμό αρχείων, τη διαχείριση πακέτων, τον έλεγχο υπηρεσιών κ.λπ., για να σας βοηθήσει να δημιουργήσετε ισχυρές λύσεις αυτοματοποίησης.” draft: false tags: [“python”, “ansible”] programming: [“devops”]

Το 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