Ściąga z modułów Ansible
Ansible to potężne narzędzie do automatyzacji. Ten artykuł przedstawia sposób użycia jego najpopularniejszych modułów.
Format
Podstawowa struktura pliku
---
- hosts: production
remote_user: root
tasks:
- ···Proszę umieszczać moduły w sekcji tasks.
Format zadań (Task Format)
Format jednolinijkowy
- apt: pkg=vim state=presentFormat mapowania (Mapping)
- apt:
pkg: vim
state: presentFormat skalarny składany
- apt: >
pkg=vim
state=presentDo definiowania zadań można użyć dowolnego z powyższych formatów. Format jednolinijkowy jest zalecany dla krótkich deklaracji, a format mapowania dla dłuższych.
Moduły
Aptitude
Zarządzanie pakietami
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noPlik pakietu Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Zarządzanie repozytoriami
- apt_repository:
repo: "deb https://··· raring main"
state: presentKlucz repozytorium
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentZwiązane z Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesOdniesienie: moduł git
Konfiguracja Git
- git_config:
name: user.email
scope: global # local | system
value: [email protected]Odniesienie: moduł git_config
Zarządzanie użytkownikami
- user:
state: present # Stan: obecny
name: git # Nazwa użytkownika
system: yes # Użytkownik systemowy
shell: /bin/sh # Shell logowania
groups: admin # Grupy
comment: "Kontrola wersji Git" # KomentarzOdniesienie: moduł user
Zarządzanie usługami
- service:
name: nginx # Nazwa usługi
state: started # Stan: uruchomiona
enabled: yes # Włącz przy starcieOdniesienie: moduł service
Związane z Shell
Polecenie shell
- shell: apt-get install nginx -yDodatkowe opcje
- shell: echo hello
args:
creates: /path/file # Pomiń, jeśli plik istnieje
removes: /path/file # Pomiń, jeśli plik nie istnieje
chdir: /path # Przełącz na ten katalog przed wykonaniemPrzykład polecenia wielolinijkowego
- shell: |
echo "hello there"
echo "multiple lines"Odniesienie: moduł shell
Wykonywanie skryptów
- script: /x/y/script.sh
args:
creates: /path/file # Pomiń, jeśli plik istnieje
removes: /path/file # Pomiń, jeśli plik nie istnieje
chdir: /path # Przełącz na ten katalog przed wykonaniemOdniesienie: moduł script
Operacje na plikach
Zarządzanie plikami
- file:
path: /etc/dir
state: directory # Typ: directory|file|link|hard|touch|absent
# Parametry opcjonalne:
owner: bin # Właściciel
group: wheel # Grupa
mode: 0644 # Uprawnienia
recurse: yes # Rekurencyjnie
force: yes # Wymuś utworzenie dowiązania symbolicznegoOdniesienie: moduł file
Kopiowanie plików
- copy:
src: /app/config/nginx.conf # Plik źródłowy
dest: /etc/nginx/nginx.conf # Miejsce docelowe
# Parametry opcjonalne:
owner: user # Właściciel
group: user # Grupa
mode: 0644 # Uprawnienia
backup: yes # Kopia zapasowa, jeśli istniejeOdniesienie: moduuł copy
Szablon (Template)
- template:
src: config/redis.j2 # Plik źródłowy szablonu
dest: /etc/redis.conf # Miejsce docelowe
# Parametry opcjonalne:
owner: user # Właściciel
group: user # Grupa
mode: 0644 # Uprawnienia
backup: yes # Kopia zapasowa, jeśli istniejeOdniesienie: moduł template
Akcje lokalne
Wykonanie lokalne
- name: Wykonaj operację lokalnie
local_action: shell echo helloWyjście debugowania (Debug)
- debug:
msg: "Hello {{ var }}"Odniesienie: moduł debug