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=presentMappingsformat (Mapping)
- apt:
pkg: vim
state: presentVikt skalärformat (Folded Scalar)
- apt: >
pkg=vim
state=presentDu 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: noDeb-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: presentNyckel för programvarukälla
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentGit-relaterat
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferens: 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" # KommentarReferens: user-modul
Tjänstehantering
- service:
name: nginx # Tjänstenamn
state: started # Status: startad
enabled: yes # Aktivera vid startReferens: service-modul
Shell-relaterat
shell-kommando
- shell: apt-get install nginx -yExtra 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örningExempel 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örningReferens: 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änkReferens: 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 finnsReferens: 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 finnsReferens: template-modul
Lokala åtgärder
Lokal körning
- name: Kör operationen lokalt
local_action: shell echo helloDebug-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