Ansible: Overblik og brug
Webbureau » Digitale nyheder » Ansible: Overblik og brug

Ansible: Overblik og brug

Hvad er'Ansible ? Brugsvejledning? Hvilke konkurrenter? Et lille trick til at målrette et nyt produkt, der har gjort et stærkt indtryk i nogen tid.

Ansible dukkede op i 2012. I oktober 2015 annoncerede Red Hat købet af Ansible, som derefter blev et flagskibsprodukt i sin stak. Dette passer perfekt ind i løsningerne af Red Hat og forstærker argumenter om, hvor let det er at administrere en serverfarm.

Ansible er en løsning til udførelse af implementeringer, opgaveudførelse og konfigurationsstyring på flere maskiner på samme tid. Han er agent mindre og anvendelser SSH at implementere de handlinger, der skal udføres, selv skrevet ind YAML.

dans Ansible, er der mange produkter, der kan være forstyrrende, når du starter. Du hører måske om Ansible Playbooks, Ansible Vault et Ansible Galaxy.

Ansible og modulerne

To ting at vide:

  • Når du bruger Ansible, bruger du moduler. Der er en liste over moduler, der allerede er skrevet, men du kan også skrive dine egne. Du skal skrive det i Python.
  • Du skal angive en domæne/IP-gruppe eller gruppe, hvor handlingen skal bruges.

eksempel:

Vi vil kontrollere, at vores maskine er god up med modulet ping.

1
2
3
4
5
$ ansible localhost -m ping
lokalvært | SUCCES => {
"ændret": falsk,
"ping": "pong"
}

At bruge noget andet end localhost, såsom et sæt domæner, skal du udfylde filen /etc/ansible/hosts.

1
2
3
[baptiste-donaux.fr]
www.baptiste-donaux.fr
me.baptiste-donaux.fr
1
2
3
4
5
6
7
8
9
10
$ ansible -m ping baptiste-donaux.fr
me.baptiste-donaux.fr | succes >> {
"ændret": falsk,
"ping": "pong"
}
www.baptiste-donaux.fr | succes >> {
"ændret": falsk,
"ping": "pong"
}

Og det er sådan, vi bekræfter, at a pool af servere i god stand up . Her er listen over de tilstedeværende basismoduler.

Når du forstår, hvordan et modul fungerer, kan du bruge alle de andre moduler på samme måde. Når du bruger et modul, kan du give argumenter (argument -a).

For eksempel hvordan man kører én kommando over mange.

1
2
3
4
5
6
$ ansible -m skal -a "docker -version" baptiste-donaux.fr
me.baptiste-donaux.fr | vellykket | rc=0 >>
Docker version 1.12.1, build 23cf638
www.baptiste-donaux.fr | vellykket | rc=0 >>
Docker version 1.12.1, build 23cf638

Men sørg også for, at en pakke er installeret.

1
2
3
4
$ ansible -m apt -a "navn=vim tilstand=nutid" www.baptiste-donaux.fr
www.baptiste-donaux.fr | succes >> {
"ændret": falsk
}

Eller bare opdater en eller flere servere.

1
2
3
4
5
6
7
8
9
10
11
12
$ ansible -m apt -a "update_cache=ja" www.baptiste-donaux.fr
www.baptiste-donaux.fr | succes >> {
"ændret": falsk
}
$ ansible -m apt -a "opgradering=dist" www.baptiste-donaux.fr
www.baptiste-donaux.fr | succes >> {
"ændret": falsk,
"besked": "Læser pakkelister...nBygger afhængighedstræ...nLæser statusoplysninger...n0 opgraderet, 0 nyinstalleret, 0 til at fjerne og 0 ikke opgraderet.n",
"stderr": "",
"stdout": "Læser pakkelister...nBygger afhængighedstræ...nLæser statusoplysninger...n0 opgraderet, 0 nyinstalleret, 0 til at fjerne og 0 ikke opgraderet.n"
}

Ansible og Playbooks (velkommen til den sande verden)

At styre en maskinpark med ordrer er allerede godt, og det er frem for alt grundlaget forAnsible. På trods af dette er det svært at forestille sig at spille et scenarie ved at udføre kommandoer efter hinanden. Heldigvis for os, ansible-playbook er her for det!

Playbook til nemt at håndtere opgaver

Scenarier er skrevet i YAML. Her er et lille eksempel.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
– værter: baptiste-donaux.fr
opgaver:
– navn: Tilføj APT-nøgle til Docker-depot
apt_key:
nøgleserver: "hkp://p80.pool.sks-keyservers.net:80"
id: 58118E89F3A912897C070ADBF76221572C52609D
– navn: Tilføj APT Docker-depot
apt_repository: repos='deb https://apt.dockerproject.org/repo debian-jessie main' tilstand=nuværende
– navn: Opdater APT-cache med nyt lager
passende: update_cache=Ja
– navn: Installer docker-engine-pakken, hvis den ikke gør deteksisterer ikke
apt: navn = docker-motor tilstand = til stede
– navn: Aktiver og start Docker-tjenesten
systemd: aktiveret=ja tilstand=startet navn=docker
– navn: InstallPython
apt: navn=pythontilstand=nuværende
– navn: Installer PIP
apt: navn=python-pip-tilstand=til stede
– navn: docker-py afhængighed
pip: navn = docker-py
– navn: Træk Nginx-billede
docker_image: navn=nginx pull=ja
– navn: Opret en Nginx-beholder
docker_container:
navn: proxy
billede: nginx
offentliggjorte_porte:
– "80:80"
tilstand: tilstede
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ ansible my_playbook.yml
SPIL [baptiste-donaux.fr] ***************************************** * **********
OPGAVE [opsætning] ********************************************** ********************
ok: [baptiste-donaux.fr]
OPGAVE [Tilføj APT-nøgle forum Docker repository] ****************************************
ok: [baptiste-donaux.fr]
OPGAVE [Tilføj APT Docker repository] ********************************************* ****
ok: [baptiste-donaux.fr]
OPGAVE [Opdater APT-cache med nyt lager] ************************************
ok: [baptiste-donaux.fr]
OPGAVE [Installer docker-engine-pakke if det gør det ikkeeksisterer ikke] ***********************
ok: [baptiste-donaux.fr]
OPGAVE [Installer Python] ********************************************* *************
ok: [baptiste-donaux.fr]
OPGAVE [Installer PIP] ********************************************* ***************
ok: [baptiste-donaux.fr]
OPGAVE [docker-py afhængighed] ********************************************* *********
ok: [baptiste-donaux.fr]
OPGAVE [Nginx Image Pull] ********************************************* ***********
ok: [baptiste-donaux.fr]
OPGAVE [Opret en Nginx-beholder] ********************************************* *****
ok: [baptiste-donaux.fr]
SPIL RESUME************************************************** *************************
baptiste-donaux.fr: ok=10 ændret=0 uopnåelig=0 mislykkedes=0

Og det er ikke noget nemmere. Ud over at køre et komplet scenarie på et sæt servere, hvis en af ​​dem findes ved en fejl, en fil .prøve igen oprettes, og ved at genstarte kommandoen genoptages scenariet, hvor du slap.

Genstart nemt dit scenarie og fortsæt, hvor du slap

Ansible Galaxy og Vault

Galaxy og hvor du opbevarer dine mods

Ansible-Galaxy er en Hub til at dele dine moduler. Det fungerer lidt ligesom Docker-hub til Docker-billeder.

Vault og hvordan man beskytter følsomme oplysninger

I nogle tilfælde skal du gemme følsomme oplysninger i dine scenarier (adgangskode osv.). I stedet for at gemme disse oplysninger i almindelig tekst, kan du indkode/afkode dens filer.

Et lille eksempel vil ikke skade.

1
2
3
4
# my_playbook.yml
– værter: localhost
opgaver:
- skal: sshpass -s “fooo” scp -r /bar baz@localhost:/qux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Indkod din fil med Vault
$ansible-vault krypter my_playbook.yml
Ny Vault-adgangskode:
Bekræft New Vault-adgangskode:
Kryptering lykkedes
# Vis den kodede spillebog
$ kat my_playbook.yml
$ANSIBLE_VAULT;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
# Brug den kodede spillebog uden at afkode den først
$ ansible-playbook my_playbook.yml –ask-vault-pass
Vault-adgangskode:
...

Det er nemt at beskytte dine spillebøger med Ansible Vault

Konklusion

Denne artikel har til formål at præsentere Ansible og vis, hvordan det kan forenkle dine opgaver. Du er velkommen til at give feedback, forbedre og/eller rette dette indlæg.

★ ★ ★ ★ ★