Mahdollista: Yleiskatsaus ja käyttö
Mikä on'Ansible ? Kuinka käyttää sitä? Mitkä kilpailijat? Pieni temppu kohdistaa uuteen tuotteeseen, joka on tehnyt vahvan vaikutuksen jo jonkin aikaa.
Ansible ilmestyi vuonna 2012. Lokakuussa 2015 Red Hat ilmoitti ostavansa Ansiblen, josta tuli sitten lippulaiva tuote. Tämä sopii täydellisesti ratkaisuihin Red Hat ja vahvistaa argumentteja palvelinfarmin hallinnan helppoudesta.
Ansible on ratkaisu käyttöönottojen, tehtävien suorittamisen ja konfiguroinnin hallintaan useilla koneilla samanaikaisesti. Hän on agentti vähemmän ja käyttötarkoitukset SSH toteuttaa suoritettavat toimet, itse kirjoitettuna YAML.
sisään Ansible, on monia tuotteita, jotka voivat olla häiritseviä aloittaessaan. Saatat kuulla aiheesta Ansible pelikirja, Ansible Holvi et Ansible Galaxy.
Ansible ja moduulit
Kaksi asiaa:
- Kun käytät Ansible, käytät moduuleja. Luettelo moduuleista on jo kirjoitettu, mutta voit myös kirjoittaa omia. Sinun on kirjoitettava se Pythonissa.
- Sinun on annettava toimialue/IP-ryhmä tai ryhmä, jossa toimintoa tulee käyttää.
Exemple:
Tarkistamme, että koneemme on kunnossa up moduulin kanssa ping.
1
2
3
4
5
|
$ ansible localhost -m ping
localhost | MENESTYS => {
"muuttunut": väärä,
"ping": "pong"
}
|
Käyttää jotain muuta kuin localhost, kuten verkkotunnuksia, sinun on täydennettävä tiedosto /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 | menestys >> {
"muuttunut": väärä,
"ping": "pong"
}
www.baptiste-donaux.fr | menestys >> {
"muuttunut": väärä,
"ping": "pong"
}
|
Ja näin varmistamme, että a pool palvelimia kunnossa up . Tässä on luettelo olemassa olevista perusmoduuleista.
Kun ymmärrät moduulin toiminnan, voit käyttää kaikkia muita moduuleja samalla tavalla. Moduulia käytettäessä voit antaa argumentteja (argumentti -a).
Esimerkiksi kuinka yksi komento suoritetaan useille.
1
2
3
4
5
6
|
$ ansible -m kuori -a "telakka - versio" baptiste-donaux.fr
me.baptiste-donaux.fr | onnistunut | rc=0 >>
Docker-versio 1.12.1, versio 23cf638
www.baptiste-donaux.fr | onnistunut | rc=0 >>
Docker-versio 1.12.1, versio 23cf638
|
Mutta varmista myös, että paketti on asennettu.
1
2
3
4
|
$ ansible -m apt -a "nimi=vim state = nykyinen" www.baptiste-donaux.fr
www.baptiste-donaux.fr | menestys >> {
"muuttunut": väärä
}
|
Tai vain päivitä yksi tai useampi palvelin.
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 | menestys >> {
"muuttunut": väärä
}
$ ansible -m apt -a "päivitys=dist" www.baptiste-donaux.fr
www.baptiste-donaux.fr | menestys >> {
"muuttunut": väärä,
"viesti": "Luetaan pakettiluetteloita...nRiippuvuuspuuta rakennetaan...nLuetaan tilatietoja...n0 päivitetty, 0 äskettäin asennettu, 0 poistettavaa ja 0 ei päivitetty.n",
"stderr": "",
"stdout": "Luetaan pakettiluetteloita...nRiippuvuuspuuta rakennetaan...nLuetaan tilatietoja...n0 päivitetty, 0 äskettäin asennettu, 0 poistettavaa ja 0 ei päivitetty.n"
}
|
Ansible ja Playbooks (tervetuloa todelliseen maailmaan)
Konekaluston hallinta tilauksilla on jo hyvää ja se on ennen kaikkea perustaAnsible. Tästä huolimatta on vaikea kuvitella skenaarion pelaamista suorittamalla komentoja peräkkäin. onneksi meille, mahdollinen leikkikirja on täällä sitä varten!
Skenaariot on kirjoitettu YAML-kielellä. Tässä pieni esimerkki.
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
|
-isännät: baptiste-donaux.fr
tehtävät:
- nimi: Lisää APT-avain Docker-tietovarastoon
apt_key:
avainpalvelin: "hkp://p80.pool.sks-keyservers.net:80"
id: 58118E89F3A912897C070ADBF76221572C52609D
- nimi: Lisää APT Docker -arkisto
apt_repository: repos='deb https://apt.dockerproject.org/repo debian-jessie main' tila = nykyinen
- nimi: Päivitä APT-välimuisti uudella arkistolla
sopiva: update_cache=Joo
- nimi: Asenna docker-engine-paketti, jos eiei ole olemassa
apt: nimi=docker-moottorin tila=nykyinen
– nimi: Ota käyttöön ja käynnistä Docker-palvelu
systemd: käytössä=kyllä tila=käynnistetty nimi=telakka
– nimi: InstallPython
apt: nimi=python state=present
– nimi: Asenna PIP
apt: nimi=python-pip state=present
– nimi: Docker-py-riippuvuus
pip: nimi=docker-py
– nimi: Vedä Nginx-kuva
docker_image: nimi=nginx pull=yes
– nimi: Luo Nginx-säilö
docker_container:
nimi: välityspalvelin
kuva: nginx
julkaistu_portit:
- "80:80"
tila: läsnä
|
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
PELAA [baptiste-donaux.fr] ********************************************* * **********
TEHTÄVÄ [asennus] ************************************************** *********************
ok: [baptiste-donaux.fr]
TASK [Lisää APT-avain varten Docker-arkisto] ********************************************
ok: [baptiste-donaux.fr]
TEHTÄVÄ [Lisää APT Docker -varasto] *********************************************** ****
ok: [baptiste-donaux.fr]
TASK [Päivitä APT-välimuisti uudella arkistolla] ****************************************
ok: [baptiste-donaux.fr]
TASK [Asenna docker-moottoripaketti if se ei teeei ole olemassa] **************************
ok: [baptiste-donaux.fr]
TEHTÄVÄ [Asenna Python] ************************************************* *************
ok: [baptiste-donaux.fr]
TEHTÄVÄ [Asenna PIP] ************************************************* ***************
ok: [baptiste-donaux.fr]
TASK [docker-py riippuvuus] *********************************************** *********
ok: [baptiste-donaux.fr]
TEHTÄVÄ [Nginx Image Pull] ************************************************ *************
ok: [baptiste-donaux.fr]
TEHTÄVÄ [Luo Nginx-säiliö] *********************************************** *****
ok: [baptiste-donaux.fr]
PLAY RECAP**************************************************** **************************
baptiste-donaux.fr: ok=10 muutettu=0 tavoittamaton=0 epäonnistunut=0
|
Eikä se ole sen yksinkertaisempaa. Täydellisen skenaarion suorittamisen lisäksi joukolla palvelimia, jos jokin niistä löytyy virheellisesti, tiedosto .yritä uudelleen luodaan ja käynnistämällä komennon uudelleen skenaario jatkuu siitä, mihin jäit.
Ansible Galaxy ja Holvi
Galaxy ja missä säilytät modit
Ansible-Galaxy on keskitin moduulien jakamiseen. Se toimii vähän kuin Docker-napa Docker-kuville.
Holvi ja arkaluonteisten tietojen suojaaminen
Joissakin tapauksissa sinun on tallennettava arkaluonteisia tietoja skenaarioissasi (salasana jne.). Sen sijaan, että tallentaisit nämä tiedot pelkkänä tekstinä, voit koodata tai purkaa sen tiedostot.
Pieni esimerkki ei haittaa.
1
2
3
4
|
# my_playbook.yml
-isännät: localhost
tehtävät:
- kuori: sshpass -p "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
|
# Koodaa tiedostosi Holvilla
$ansible-vault salaa my_playbook.yml
Uusi Holvin salasana:
Vahvista uusi Holvin salasana:
Salaus onnistui
# Näytä koodattu pelikirja
$ kissa my_playbook.yml
$ANSIBLE_VAULT;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
# Käytä koodattua pelikirjaa purkamatta sitä ensin
$ ansible-playbook my_playbook.yml –ask-vault-pass
Holvin salasana:
...
|
Yhteenveto
Tämän artikkelin tarkoituksena on esitellä Ansible ja näyttää, kuinka se voi yksinkertaistaa tehtäviäsi. Voit vapaasti antaa palautetta, parantaa ja/tai korjata tätä viestiä.