Skip to content

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=present

Mapping-format

- apt:
    pkg: vim
    state: present

Folded scalar-format (Vikt skalär)

- apt: >
    pkg=vim
    state=present

Du 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: 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

Repository-nyckel

- 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: hi@example.com

Referens: 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"  # Kommentar

Referens: 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 uppstart

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 existerar
    removes: /path/file  # Hoppa över om filen inte existerar
    chdir: /path        # Byt till denna katalog före körning

Exempel 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örning

Referens: 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änk

Referens: 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 skapas

Referens: 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 skapas

Referens: template-modul

Lokala operationer

Lokal körning

- name: Utför operation lokalt
  local_action: shell echo hello

Debug-utdata

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

Referens: debug-modul