Ściąga z modułów Ansible
Ansible to potężne narzędzie do automatyzacji operacji IT. W tym artykule przedstawimy 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 jednowierszowy
- apt: pkg=vim state=presentFormat mapowania (Mapping)
- apt:
pkg: vim
state: presentFormat skalarny złożony (Folded Scalar)
- apt: >
pkg=vim
state=presentDo definiowania zadań można użyć dowolnego z powyższych formatów. W przypadku krótkich deklaracji zaleca się format jednowierszowy; w przypadku dłuższych zaleca się format mapowania.
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 (Źródła oprogramowania)
- 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: yesOdnośnik: moduł git
Konfiguracja Git
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comOdnośnik: 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 # Powłoka logowania
groups: admin # Grupy
comment: "Git Version Control" # KomentarzOdnośnik: moduł user
Zarządzanie usługami
- service:
name: nginx # Nazwa usługi
state: started # Stan: uruchomiona
enabled: yes # Czy włączać przy starcieOdnośnik: 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 # Przejdź do tego katalogu przed wykonaniemPrzykład poleceń wielowierszowych
- shell: |
echo "hello there"
echo "multiple lines"Odnośnik: 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 # Przejdź do tego katalogu przed wykonaniemOdnośnik: moduł script
Operacje na plikach
Zarządzanie plikami
- file:
path: /etc/dir
state: directory # Typ: katalog|plik|link|hardlink|touch|nieobecny
# Parametry opcjonalne:
owner: bin # Właściciel
group: wheel # Grupa
mode: 0644 # Uprawnienia
recurse: yes # Tworzenie rekurencyjne
force: yes # Wymuś utworzenie linku symbolicznegoOdnośnik: 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 # Czy tworzyć kopię zapasowąOdnośnik: moduł copy
Szablony (Templates)
- 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 # Czy tworzyć kopię zapasowąOdnośnik: moduł template
Operacje lokalne
Wykonywanie lokalne
- name: Wykonaj operację lokalnie
local_action: shell echo helloWyjście debugowania (Debug)
- debug:
msg: "Hello {{ var }}"Odnośnik: moduł debug