ansible
Introduktion till spelböcker
Sök…
Översikt
I Ansible är en spellista en YAML-fil som innehåller definitionen av hur en server ska se ut. I en spellista definierar du vilka åtgärder Ansible bör vidta för att få servern i det tillstånd du vill ha. Endast det du definierar blir gjort.
Detta är en grundläggande Ansible playbook som installerar git på varje värd som tillhör web
:
---
- name: Git installation
hosts: web
remote_user: root
tasks:
- name: Install Git
apt: name=git state=present
Playbooks struktur
Formatet för en spellista är ganska enkelt, men strikt när det gäller avstånd och layout. En spellista består av pjäser. Ett spel är en kombination av målvärdar och de uppgifter vi vill tillämpa på dessa värdar, så en ritning av en spellista är detta:
För att köra denna spellista kör vi helt enkelt:
ansible-playbook -i hosts my_playbook.yml
Lekens struktur
Här är ett enkelt spel:
- name: Configure webserver with git
hosts: webserver
become: true
vars:
package: git
tasks:
- name: install git
apt: name={{ package }} state=present
Som vi sade tidigare, måste varje pjäs innehålla:
En uppsättning värdar att konfigurera
En lista med uppgifter som ska utföras på dessa värdar
Tänk på ett spel som det som kopplar värdar till uppgifter. Förutom att ange värdar och uppgifter stöder spel också ett antal valfria inställningar. Två vanliga är:
-
name
: en kommentar som beskriver vad stycket handlar om. Ansible kommer att skriva ut detta när spelet börjar köras -
vars
: en lista med variabler och värden
Tags
Spelet innehåller flera uppgifter som kan taggas:
- name: Install applications
hosts: all
become: true
tasks:
- name: Install vim
apt: name=vim state=present
tags:
- vim
- name: Install screen
apt: name=screen state=present
tags:
- screen
Uppgift med tagg 'vim' körs när 'vim' anges i taggar. Du kan ange så många taggar du vill. Det är användbart att använda taggar som "installera" eller "konfigurera". Sedan kan du köra playbook med specificering av taggar eller hopptaggar. För
ansible-playbook my_playbook.yml --tags "tag1,tag2"
ansible-playbook my_playbook.yml --tags "tag2"
ansible-playbook my_playbook.yml --skip-tags "tag1"
Som standard kör alla taggar från Ansible