Ansible Modules Spiekbriefje
Ansible is een krachtige automatiseringstool voor IT-beheer. Dit artikel introduceert het gebruik van de meest voorkomende modules.
Formaat
Basis bestandsstructuur
---
- hosts: production
remote_user: root
tasks:
- ···Plaats uw modules onder tasks.
Taakformaat (Task Format)
Enkeleregel-formaat
- apt: pkg=vim state=presentMapping-formaat
- apt:
pkg: vim
state: presentGevouwen scalair formaat (Folded Scalar)
- apt: >
pkg=vim
state=presentU kunt elk van de bovenstaande formaten gebruiken om taken te definiëren. Voor korte verklaringen wordt het enkeleregel-formaat aanbevolen; voor langere verklaringen wordt het mapping-formaat aanbevolen.
Modules
Aptitude
Pakketbeheer
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noDeb pakketbestand
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Repositorybeheer (Softwarebronnen)
- apt_repository:
repo: "deb https://··· raring main"
state: presentRepository sleutel
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentGit gerelateerd
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferentie: git module
Git configuratie
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comReferentie: git_config module
Gebruikersbeheer
- user:
state: present # Status: aanwezig
name: git # Gebruikersnaam
system: yes # Systeemgebruiker
shell: /bin/sh # Login shell
groups: admin # Groepen
comment: "Git Version Control" # OpmerkingReferentie: user module
Servicebeheer
- service:
name: nginx # Servicenaam
state: started # Status: gestart
enabled: yes # Inschakelen bij opstartenReferentie: service module
Shell gerelateerd
shell opdracht
- shell: apt-get install nginx -yExtra opties
- shell: echo hello
args:
creates: /path/file # Overslaan als bestand bestaat
removes: /path/file # Overslaan als bestand niet bestaat
chdir: /path # Schakel over naar deze map voor uitvoeringVoorbeeld van opdrachten over meerdere regels
- shell: |
echo "hello there"
echo "multiple lines"Referentie: shell module
Scriptuitvoering
- script: /x/y/script.sh
args:
creates: /path/file # Overslaan als bestand bestaat
removes: /path/file # Overslaan als bestand niet bestaat
chdir: /path # Schakel over naar deze map voor uitvoeringReferentie: script module
Bestandsbewerkingen
Bestandsbeheer
- file:
path: /etc/dir
state: directory # Type: directory|file|link|hardlink|touch|absent
# Optionele parameters:
owner: bin # Eigenaar
group: wheel # Groep
mode: 0644 # Rechten
recurse: yes # Recursief aanmaken
force: yes # Forceren aanmaken symbolische linkReferentie: file module
Bestand kopiëren
- copy:
src: /app/config/nginx.conf # Bronbestand
dest: /etc/nginx/nginx.conf # Doellocatie
# Optionele parameters:
owner: user # Eigenaar
group: user # Groep
mode: 0644 # Rechten
backup: yes # Maak een back-upReferentie: copy module
Sjablonen (Templates)
- template:
src: config/redis.j2 # Sjabloon bronbestand
dest: /etc/redis.conf # Doellocatie
# Optionele parameters:
owner: user # Eigenaar
group: user # Groep
mode: 0644 # Rechten
backup: yes # Maak een back-upReferentie: template module
Lokale bewerkingen
Lokale uitvoering
- name: Voer bewerking lokaal uit
local_action: shell echo helloDebug uitvoer
- debug:
msg: "Hello {{ var }}"Referentie: debug module