Ansible: Përmbledhje dhe Përdorimi
Cfare eshte'Ansible ? Si ta përdorim atë? Cilët konkurrentë? Një truk i vogël për të synuar një produkt të ri që ka lënë një përshtypje të fortë për disa kohë.
Ansible u shfaq në vitin 2012. Në tetor 2015, Red Hat njoftoi blerjen e Ansible, e cila më pas u bë një produkt kryesor në grupin e saj. Kjo përshtatet në mënyrë të përkryer në zgjidhjet e Red Hat dhe përforcon argumentet në lidhje me lehtësinë e menaxhimit të një ferme serverash.
Ansible është një zgjidhje për kryerjen e vendosjeve, ekzekutimit të detyrave dhe menaxhimit të konfigurimit në shumë makina në të njëjtën kohë. Ai eshte agjent më pak dhe përdorimet SSH për të zbatuar veprimet që do të kryhen, të shkruara vetë në YAML.
Dans Ansible, ka shumë produkte që mund të jenë shqetësuese kur filloni. Ju mund të dëgjoni për Ansible Playbook, Ansible Vault et Galaxy Ansible.
Ansible dhe modulet
Dy gjëra për të ditur:
- Kur përdorni Ansible, ju përdorni module. Ekziston një listë e moduleve të shkruara tashmë, por ju gjithashtu mund të shkruani tuajat. Do t'ju duhet ta shkruani në Python.
- Ju duhet të jepni një grup ose grup domeni/IP ku duhet të përdoret veprimi.
shembull:
Ne do të kontrollojmë nëse makina jonë është e mirë up me modulin ping.
1
2
3
4
5
|
$ ansible localhost -m ping
localhost | SUKSES => {
"ndryshuar": i rremë,
"ping": "pong"
}
|
Për të përdorur diçka tjetër përveç localhost, të tilla si një grup domenesh, duhet të plotësoni skedarin /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 | sukses >> {
"ndryshuar": i rremë,
"ping": "pong"
}
www.baptiste-donaux.fr | sukses >> {
"ndryshuar": i rremë,
"ping": "pong"
}
|
Dhe kështu verifikojmë se a pishinë i serverëve në gjendje të mirë up . Këtu është lista e moduleve bazë të pranishme.
Pasi të kuptoni se si funksionon një modul, mund të përdorni të gjitha modulet e tjera në të njëjtën mënyrë. Kur përdorni një modul, mund të jepni argumente (argument -a).
Për shembull, si të ekzekutoni një komandë mbi shumë.
1
2
3
4
5
6
|
$ ansible -m guaskë -a "docker - version" baptiste-donaux.fr
me.baptiste-donaux.fr | i suksesshëm | rc=0 >>
Versioni i Docker 1.12.1, ndërtimi 23cf638
www.baptiste-donaux.fr | i suksesshëm | rc=0 >>
Versioni i Docker 1.12.1, ndërtimi 23cf638
|
Por gjithashtu sigurohuni që një paketë të jetë instaluar.
1
2
3
4
|
$ ansible -m apt -a "emri=vim gjendje=e tashme" www.baptiste-donaux.fr
www.baptiste-donaux.fr | sukses >> {
"ndryshuar": i rremë
}
|
Ose thjesht përditësoni një ose më shumë serverë.
1
2
3
4
5
6
7
8
9
10
11
12
|
$ ansible -m apt -a “update_cache=po” www.baptiste-donaux.fr
www.baptiste-donaux.fr | sukses >> {
"ndryshuar": i rremë
}
$ ansible -m apt -a "përmirëso=dizistoj" www.baptiste-donaux.fr
www.baptiste-donaux.fr | sukses >> {
"ndryshuar": i rremë,
"msg": "Leximi i listave të paketave...nNdërtimi i pemës së varësisë...nLeximi i informacionit të gjendjes...n0 i përmirësuar, 0 i sapo instaluar, 0 për t'u hequr dhe 0 i pa përmirësuar.n",
"stderr": "",
"stdout": "Leximi i listave të paketave...nNdërtimi i pemës së varësisë...nLeximi i informacionit të gjendjes...n0 i përmirësuar, 0 i sapo instaluar, 0 për t'u hequr dhe 0 i pa përmirësuar.n"
}
|
Ansible dhe Playbooks (mirësevini në botën e vërtetë)
Menaxhimi i një flote makinerish me porosi është tashmë i mirë, dhe mbi të gjitha është baza eAnsible. Pavarësisht kësaj, është e vështirë të imagjinohet të luash një skenar duke ekzekutuar komanda njëra pas tjetrës. Për fatin tonë, ansible-libër lojërash është këtu për këtë!
Skenarët janë shkruar në YAML. Këtu është një shembull i vogël.
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
|
– nikoqirët: baptiste-donaux.fr
detyrat:
- emri: Shto çelësin APT për depon e Docker
apt_key:
serveri i çelësit: "hkp://p80.pool.sks-keyservers.net:80"
ID: 58118E89F3A912897C070ADBF76221572C52609D
- emri: Shto depo APT Docker
apt_repository: repos='deb https://apt.dockerproject.org/repo debian-jessie main' gjendje=i pranishëm
- emri: Përditëso cache APT me një depo të re
me vend: update_cache=po
- emri: Instaloni paketën e motorit docker nëse nuk e bënnuk ekziston
apt: emri=docker-motor status=present
– emri: Aktivizo dhe nis shërbimin Docker
systemd: aktivizuar=po gjendje=emri i filluar=docker
– emri: InstallPython
me vend: emri=gjendja python=i pranishëm
– emri: Instalo PIP
apt: emri=python-pip gjendje=present
– emri: varësia docker-py
pip: emri=docker-py
– emri: Tërhiq imazhin Nginx
docker_image: emri=nginx pull=po
– emri: Krijo një enë Nginx
docker_container:
emri: përfaqësues
imazhi: nginx
publikuar_portet:
– “80:80”
gjendje: prezente
|
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
LUANI [baptiste-donaux.fr] ***************************************** * **********
DETYRA [konfigurimi] ************************************************** *********************
ok: [baptiste-donaux.fr]
DETYRË [Shto çelësin APT për Depoja e dokerit] ****************************************
ok: [baptiste-donaux.fr]
DETYRË [Shto depon e APT Docker] ******************************************** ****
ok: [baptiste-donaux.fr]
DETYRË [Përditëso cache APT me një depo të re] ************************************
ok: [baptiste-donaux.fr]
DETYRË [Instaloni paketën e motorit docker if nuk kanuk ekziston] **********************
ok: [baptiste-donaux.fr]
DETYRË [Instalo Python] ********************************************* *************
ok: [baptiste-donaux.fr]
DETYRË [Instalo PIP] ********************************************* ****************
ok: [baptiste-donaux.fr]
DETYRË [varësia nga docker-py] ******************************************* *********
ok: [baptiste-donaux.fr]
DETYRA [Tërheqja e imazhit Nginx] ******************************************** *************
ok: [baptiste-donaux.fr]
DETYRË [Krijo një enë Nginx] ******************************************* *****
ok: [baptiste-donaux.fr]
LUANI REKAPIN************************************************ **********************
baptiste-donaux.fr: ok=10 ndryshuar=0 i paarritshëm=0 dështuar=0
|
Dhe kjo nuk është asgjë më e thjeshtë. Përveç ekzekutimit të një skenari të plotë në një grup serverësh, nëse njëri prej tyre gjendet gabimisht, një skedar .riprovo do të krijohet dhe duke rifilluar komandën, skenari do të rifillojë aty ku e keni lënë.
Ansible Galaxy dhe Vault
Galaxy dhe ku të ruani modalitetet tuaja
Ansible-Galaxy është një qendër për të ndarë modulet tuaja. Punon pak si Qendër dokeri për imazhet Docker.
Kasaforta dhe si të mbrohen informacionet e ndjeshme
Në disa raste, do t'ju duhet të ruani informacione të ndjeshme në skenarët tuaj (fjalëkalim, etj.). Në vend që ta ruani këtë informacion në tekst të thjeshtë, ju mund të kodoni/deshifroni skedarët e tij.
Një shembull i vogël nuk do të dëmtojë.
1
2
3
4
|
# my_playbook.yml
– nikoqirët: localhost
detyrat:
- guaskë: 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
|
# Kodoni skedarin tuaj me Vault
$ansible-vault enkripto my_playbook.yml
Fjalëkalimi i ri i Kasafortës:
Konfirmo fjalëkalimin e ri të Kasafortës:
Kriptimi i suksesshëm
# Shfaq librin e koduar të lojërave
$ cat my_playbook.yml
ANSIBLE_VAULT $;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
# Përdorni librin e lojërave të koduar pa e deshifruar më parë
$ ansible-playbook my_playbook.yml –ask-vault-pass
Fjalëkalimi i kasafortës:
...
|
Përfundim
Ky artikull synon të paraqesë Ansible dhe tregoni se si mund të thjeshtojë detyrat tuaja. Mos ngurroni të jepni komente, të përmirësoni dhe/ose korrigjoni këtë postim.