Ansible-moduler Lathund (Cheat Sheet)
Ansible är ett kraftfullt automatiseringsverktyg för IT-drift. Denna artikel kommer att presentera användningen av 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=presentMapping-format
- apt:
pkg: vim
state: presentFolded scalar-format (Vikt skalär)
- apt: >
pkg=vim
state=presentDu kan använda vilket som helst av ovanstående format för att definiera uppgifter. För korta deklarationer rekommenderas enradsformatet; för längre deklarationer rekommenderas mapping-formatet.
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: presentRepository-nyckel
- 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: hi@example.comReferens: git_config-modul
Användarhantering
- user:
state: present # Status: närvarande
name: git # Användarnamn
system: yes # Systemanvändare
shell: /bin/sh # Inloggningsskal
groups: admin # Grupper
comment: "Git Version Control" # KommentarReferens: user-modul
Hantering av tjänster (Service Management)
- service:
name: nginx # Namn på tjänsten
state: started # Status: startad
enabled: yes # Om tjänsten ska aktiveras vid uppstartReferens: service-modul
Shell-relaterat
shell-kommando
- shell: apt-get install nginx -yExtra alternativ
- shell: echo hello
args:
creates: /path/file # Hoppa över om filen existerar
removes: /path/file # Hoppa över om filen inte existerar
chdir: /path # Byt till denna katalog före körningExempel på kommando över flera rader
- 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 existerar
removes: /path/file # Hoppa över om filen inte existerar
chdir: /path # Byt till denna katalog före körningReferens: script-modul
Filoperationer
Filhantering
- file:
path: /etc/dir
state: directory # Typ: katalog|fil|länk|hård länk|touch|saknas
# Valfria parametrar:
owner: bin # Ägare
group: wheel # Grupp
mode: 0644 # Behörigheter
recurse: yes # Rekursivt skapande
force: yes # Tvinga skapande av symbolisk länkReferens: file-modul
Filkopiering
- copy:
src: /app/config/nginx.conf # Källfil
dest: /etc/nginx/nginx.conf # Målplats
# Valfria parametrar:
owner: user # Ägare
group: user # Grupp
mode: 0644 # Behörigheter
backup: yes # Om säkerhetskopia ska skapasReferens: copy-modul
Mallar (Templates)
- template:
src: config/redis.j2 # Källfil för mall
dest: /etc/redis.conf # Målplats
# Valfria parametrar:
owner: user # Ägare
group: user # Grupp
mode: 0644 # Behörigheter
backup: yes # Om säkerhetskopia ska skapasReferens: template-modul
Lokala operationer
Lokal körning
- name: Utför operation lokalt
local_action: shell echo helloDebug-utdata
- debug:
msg: "Hello {{ var }}"Referens: debug-modul