Ansible: Pregled in uporaba
Spletna agencija » Digitalne novice » Ansible: Pregled in uporaba

Ansible: Pregled in uporaba

kaj je'Možno ? Kako ga uporabljati? Kateri tekmovalci? Majhen trik za ciljanje na nov izdelek, ki že nekaj časa pušča močan vtis.

Možno se je pojavil leta 2012. Oktobra 2015 je Red Hat napovedal nakup Ansible, ki je nato postal vodilni izdelek v njegovem nizu. To se popolnoma prilega rešitvam Red Hat in krepi argumente o enostavnosti upravljanja farme strežnikov.

Možno je rešitev za izvajanje uvajanj, izvajanje nalog in upravljanje konfiguracije na več strojih hkrati. On je agent manj in uporabe SSH za izvedbo ukrepov, ki jih je treba izvesti, sami zapisali v YAML.

Dans Možno, obstaja veliko izdelkov, ki so lahko moteči na začetku. Morda boste slišali za Ansible Playbook, Ansible trezor et Odgovorna galaksija.

Ansible in moduli

Vedeti morate dve stvari:

  • Ko uporabljate Možno, uporabljate module. Seznam modulov je že napisan, lahko pa napišete tudi svojega. Napisati ga boste morali v Pythonu.
  • Navesti morate domeno/skupino IP ali skupino, kjer naj se dejanje uporabi.

PRIMER:

Preverili bomo, ali je naš stroj dober up z modulom ping.

1
2
3
4
5
$ ansible localhost -m ping
lokalni gostitelj | USPEH => {
"spremenjen": false,
"ping": "pong"
}

Uporabiti kaj drugega kot localhost, kot je niz domen, morate dokončati datoteko /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 | uspeh >> {
"spremenjen": false,
"ping": "pong"
}
www.baptiste-donaux.fr | uspeh >> {
"spremenjen": false,
"ping": "pong"
}

In tako preverimo, da a bazen strežnikov v dobrem up . Tukaj je seznam prisotnih osnovnih modulov.

Ko razumete, kako modul deluje, lahko na enak način uporabljate vse druge module. Ko uporabljate modul, lahko podate argumente (argument -a).

Na primer, kako zagnati en ukaz čez več.

1
2
3
4
5
6
$ ansible -m lupina -a “docker –različica” baptiste-donaux.fr
me.baptiste-donaux.fr | uspešen | rc=0 >>
Docker različica 1.12.1, zgradba 23cf638
www.baptiste-donaux.fr | uspešen | rc=0 >>
Docker različica 1.12.1, zgradba 23cf638

Prepričajte se tudi, da je paket nameščen.

1
2
3
4
$ ansible -m apt -a “ime=vim stanje=prisotno” www.baptiste-donaux.fr
www.baptiste-donaux.fr | uspeh >> {
"spremenjen": false
}

Ali preprosto posodobite enega ali več strežnikov.

1
2
3
4
5
6
7
8
9
10
11
12
$ ansible -m apt -a “update_cache=yes” www.baptiste-donaux.fr
www.baptiste-donaux.fr | uspeh >> {
"spremenjen": false
}
$ ansible -m apt -a “upgrade=dist” www.baptiste-donaux.fr
www.baptiste-donaux.fr | uspeh >> {
"spremenjen": false,
»sporočilo«: »Branje seznamov paketov ... n Gradnja drevesa odvisnosti ... n Branje informacij o stanju ... n0 nadgrajenih, 0 na novo nameščenih, 0 za odstranitev in 0 nenadgrajenih.n«,
“stderr”: "",
"stdout": »Branje seznamov paketov ... n Gradnja drevesa odvisnosti ... n Branje informacij o stanju ... n0 nadgrajenih, 0 na novo nameščenih, 0 za odstranitev in 0 nenadgrajenih.n«
}

Ansible in Playbooks (dobrodošli v resničnem svetu)

Upravljanje flote strojev z naročili je že dobro in je predvsem osnova zaMožno. Kljub temu si je težko predstavljati igranje scenarija z izvajanjem ukazov enega za drugim. Na našo srečo, ansible-playbook je tukaj za to!

Playbook za enostavno upravljanje nalog

Scenariji so napisani v YAML. Tukaj je majhen primer.

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
– gostitelji: baptiste-donaux.fr
naloge:
– ime: Dodajte ključ APT za repozitorij Docker
apt_key:
strežnik ključev: “hkp://p80.pool.sks-keyservers.net:80”
id: 58118E89F3A912897C070ADBF76221572C52609D
– ime: Dodajte repozitorij APT Docker
apt_repository: repos='deb https://apt.dockerproject.org/repo debian-jessie main' stanje=sedanje
– ime: Posodobite predpomnilnik APT z novim repozitorijem
primerno: update_cache=ja
– ime: Namestite paket docker-engine, če se nene obstaja
apt: name=docker-engine state=present
– ime: omogoči in zaženi storitev Docker
systemd: omogočeno=da stanje=začeto ime=docker
– ime: InstallPython
apt: ime=python stanje=prisotno
– ime: Namesti PIP
apt: ime=python-pip stanje=prisotno
– ime: odvisnost docker-py
pip: ime=docker-py
– ime: Potegnite sliko Nginx
docker_image: ime=nginx pull=da
– ime: Ustvari vsebnik Nginx
docker_container:
ime: proxy
slika: nginx
objavljena_vrata:
– “80:80”
stanje: prisotno
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
IGRAJ [baptiste-donaux.fr] ***************************************** * ***********
NALOGA [nastavitev] *********************************************** *********************
ok: [baptiste-donaux.fr]
NALOGA [Dodaj ključ APT za Docker repozitorij] ****************************************
ok: [baptiste-donaux.fr]
NALOGA [Dodaj repozitorij APT Docker] ******************************************* ****
ok: [baptiste-donaux.fr]
NALOGA [Posodobi predpomnilnik APT z novim repozitorijem] ************************************
ok: [baptiste-donaux.fr]
NALOGA [Namesti paket docker-engine if ne grene obstaja] ***********************
ok: [baptiste-donaux.fr]
NALOGA [Namesti Python] ********************************************* *************
ok: [baptiste-donaux.fr]
NALOGA [Namesti PIP] ********************************************* ****************
ok: [baptiste-donaux.fr]
NALOGA [odvisnost docker-py] ******************************************* *********
ok: [baptiste-donaux.fr]
NALOGA [Nginx Image Pull] ******************************************** *************
ok: [baptiste-donaux.fr]
NALOGA [Ustvari vsebnik Nginx] ******************************************* *****
ok: [baptiste-donaux.fr]
IGRAJ POVZETEK**************************************************** ** *********************
baptiste-donaux.fr: ok=10 spremenjeno=0 nedosegljivo=0 neuspešno=0

In to ni nič preprostejšega. Poleg izvajanja celotnega scenarija na nizu strežnikov, če se na enem od njih najde napaka, datoteka .ponoviti bo ustvarjen in s ponovnim zagonom ukaza se bo scenarij nadaljeval tam, kjer ste končali.

Preprosto znova zaženite svoj scenarij in nadaljujte tam, kjer ste končali

Galaksija Ansible in trezor

Galaxy in kje shraniti svoje modifikacije

Ansible-Galaxy je središče za skupno rabo vaših modulov. Deluje nekoliko podobno Dock pesto za slike Docker.

Trezor in kako zaščititi občutljive podatke

V nekaterih primerih boste morali v svojih scenarijih shraniti občutljive podatke (geslo itd.). Namesto shranjevanja teh informacij v navadnem besedilu lahko kodirate/dekodirate njegove datoteke.

Majhen primer ne bo škodil.

1
2
3
4
# my_playbook.yml
– gostitelji: localhost
naloge:
– lupina: sshpass -p “fuj” 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
# Kodirajte svojo datoteko z Vaultom
$ansible-vault encrypt my_playbook.yml
Novo geslo za trezor:
Potrdite novo geslo za trezor:
Šifriranje uspešno
# Prikažite kodirano knjigo iger
$ cat my_playbook.yml
$ANSIBLE_VAULT;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
# Uporabite kodirano knjigo iger, ne da bi jo najprej dekodirali
$ ansible-playbook my_playbook.yml –ask-vault-pass
Geslo za trezor:
...

Z Ansible Vault je enostavno zaščititi svoje knjige iger

zaključek

Namen tega članka je predstaviti Možno in pokažite, kako lahko poenostavi vaše naloge. Pošljite povratne informacije, izboljšajte in/ali popravite to objavo.

★ ★ ★ ★ ★