Ansible: Ħarsa ġenerali u Użu
X'inhi'Ansible ? Kif tużah? Liema kompetituri? Trick żgħir biex timmira prodott ġdid li ilu jagħmel impressjoni qawwija għal xi żmien.
Ansible deher fl-2012. F'Ottubru 2015, Red Hat ħabbret l-akkwist ta 'Ansible, li mbagħad sar prodott ewlieni fil-munzell tiegħu. Dan jidħol perfettament fis-soluzzjonijiet ta ' Red Hat u jsaħħaħ l-argumenti dwar il-faċilità tal-ġestjoni ta’ server farm.
Ansible hija soluzzjoni għat-twettiq ta 'skjeramenti, eżekuzzjoni tal-kompiti u ġestjoni tal-konfigurazzjoni fuq magni multipli fl-istess ħin. Hu aġent inqas u użi SSH biex jimplimentaw l-azzjonijiet li għandhom jitwettqu, huma stess miktuba fihom IAML.
Dans Ansible, hemm ħafna prodotti li jistgħu jkunu inkwetanti meta jibdew. Inti tista 'tisma' dwar Ansible Playbook, Ansible Vault et Galaxy Ansible.
Ansible u l-moduli
Żewġ affarijiet li għandek tkun taf:
- Meta tuża Ansible, tuża moduli. Hemm lista ta 'moduli diġà miktuba, iżda tista' wkoll tikteb tiegħek stess. Ikollok bżonn tiktebha f'Python.
- Trid tagħti dominju/grupp IP jew grupp fejn għandha tintuża l-azzjoni.
eżempju:
Aħna niċċekkjaw li l-magna tagħna hija tajba up mal-modulu ping.
1
2
3
4
5
|
$ ansible localhost -m ping
localhost | SUĊĊESS => {
"inbidel": falza,
"ping": "pong"
}
|
Biex tuża xi ħaġa oħra għajr localhost, bħal sett ta 'dominji, trid timla l-fajl /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 | suċċess >> {
"inbidel": falza,
"ping": "pong"
}
www.baptiste-donaux.fr | suċċess >> {
"inbidel": falza,
"ping": "pong"
}
|
U dan huwa kif nivverifikaw li a pool ta 'servers fil-tajba up . Hawnhekk hawn il-lista tal-moduli bażiċi preżenti.
Ladarba tifhem kif jaħdem modulu, tista' tuża l-moduli l-oħra kollha bl-istess mod. Meta tuża modulu, tista' tagħti argumenti (argument -a).
Per eżempju, kif tmexxi kmand wieħed fuq ħafna.
1
2
3
4
5
6
|
$ ansible -m qoxra -a "docker -verżjoni" baptiste-donaux.fr
me.baptiste-donaux.fr | suċċess | rc=0 >>
Verżjoni Docker 1.12.1, ibni 23cf638
www.baptiste-donaux.fr | suċċess | rc=0 >>
Verżjoni Docker 1.12.1, ibni 23cf638
|
Imma kun żgur ukoll li pakkett ikun installat.
1
2
3
4
|
$ ansible -m apt -a "isem=vim state=present" www.baptiste-donaux.fr
www.baptiste-donaux.fr | suċċess >> {
"inbidel": falza
}
|
Jew sempliċiment taġġorna server wieħed jew aktar.
1
2
3
4
5
6
7
8
9
10
11
12
|
$ ansible -m apt -a "update_cache=iva" www.baptiste-donaux.fr
www.baptiste-donaux.fr | suċċess >> {
"inbidel": falza
}
$ ansible -m apt -a "upgrade=dist" www.baptiste-donaux.fr
www.baptiste-donaux.fr | suċċess >> {
"inbidel": falza,
“msg”: "Qari tal-listi tal-pakketti...nNibni siġra tad-dipendenza...nQari ta' informazzjoni dwar l-istat...n0 aġġornat, 0 installat ġdid, 0 biex jitneħħa u 0 mhux aġġornat.n",
“stderr”: "",
"stdout": "Qari tal-listi tal-pakketti...nNibni siġra tad-dipendenza...nQari ta' informazzjoni dwar l-istat...n0 aġġornat, 0 installat ġdid, 0 biex jitneħħa u 0 mhux aġġornat.n"
}
|
Ansible u Playbooks (merħba fid-dinja vera)
Il-ġestjoni ta 'flotta ta' magni b'ordnijiet hija diġà tajba, u hija fuq kollox il-bażi ta 'Ansible. Minkejja dan, huwa diffiċli li wieħed jimmaġina tilgħab xenarju billi tesegwixxi kmandi wieħed wara l-ieħor. Fortunatament għalina, ansible-playbook qiegħed hawn għal dak!
Ix-xenarji huma miktuba f'YAML. Hawn eżempju żgħir.
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
|
– hosts: baptiste-donaux.fr
kompiti:
– isem: Żid ċavetta APT għar-repożitorju Docker
apt_key:
keyserver: "hkp://p80.pool.sks-keyservers.net:80"
id: 58118E89F3A912897C070ADBF76221572C52609D
– isem: Żid repożitorju APT Docker
apt_repository: repos='deb https://apt.dockerproject.org/repo debian-jessie main' stat=preżent
– isem: Aġġorna l-cache APT b'repożitorju ġdid
apt: update_cache=iva
– isem: Installa pakkett docker-engine jekk ma jagħmilx hekkma jeżistux
apt: name=docker-engine state=present
– isem: Attiva u tibda s-servizz Docker
systemd: enabled=iva stat=beda isem=docker
– isem: InstallPython
apt: name=python state=present
– isem: Installa PIP
apt: name=python-pip state=present
– isem: dipendenza docker-py
pip: name=docker-py
– isem: Iġbed l-immaġni Nginx
docker_image: name=nginx pull=iva
– isem: Oħloq kontenitur Nginx
docker_container:
isem: prokura
immaġni: nginx
portijiet_pubblikati:
– “80:80”
stat: preżenti
|
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
PLAY [baptiste-donaux.fr] ***************************************** * **********
XOGĦOL [setup] ************************************************ ************************
ok: [baptiste-donaux.fr]
TASK [Żid iċ-ċavetta APT għall Repożitorju Docker] ****************************************
ok: [baptiste-donaux.fr]
KOMPITU [Żid repożitorju APT Docker] ******************************************** ****
ok: [baptiste-donaux.fr]
KOMPITU [Aġġorna l-cache APT b'repożitorju ġdid] ****************************************
ok: [baptiste-donaux.fr]
TASK [Installa l-pakkett docker-engine if ma jagħmilx hekkma teżistix] **********************
ok: [baptiste-donaux.fr]
TASK [Installa Python] ********************************************* *************
ok: [baptiste-donaux.fr]
TASK [Installa PIP] ********************************************* ****************
ok: [baptiste-donaux.fr]
TASK [dipendenza ta' docker-py] ******************************************** *********
ok: [baptiste-donaux.fr]
TASK [Nginx Image Pull] ******************************************** * ************
ok: [baptiste-donaux.fr]
KOMPITU [Oħloq kontenitur Nginx] ******************************************** *****
ok: [baptiste-donaux.fr]
PLAY RIPARAZZJONI************************************************ **********************
baptiste-donaux.fr: ok=10 mibdula=0 ma jistax jintlaħaq=0 fallew=0
|
U dan mhu xejn aktar sempliċi. Minbarra t-tmexxija ta 'xenarju komplut fuq sett ta' servers, jekk wieħed minnhom jinstab bi żball, fajl .erġa pprova se jinħoloq u billi terġa 'tibda l-kmand, ix-xenarju jerġa' jibda minn fejn ħallejt.
Ansible Galaxy u Vault
Galaxy u fejn taħżen il-mods tiegħek
Ansible-Galaxy huwa Hub biex taqsam il-moduli tiegħek. Jaħdem daqsxejn simili Ċentru tad-Docker għall-immaġini Docker.
Vault u kif tipproteġi informazzjoni sensittiva
F'xi każijiet, ser ikollok bżonn taħżen informazzjoni sensittiva fix-xenarji tiegħek (password, eċċ.). Pjuttost milli taħżen din l-informazzjoni f'test sempliċi, tista 'tikkodifika/dekodifika l-fajls tagħha.
Eżempju żgħir ma jweġġax.
1
2
3
4
|
# my_playbook.yml
– hosts: localhost
kompiti:
– qoxra: 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
|
# Kodifika l-fajl tiegħek bil-Vault
$ansible-vault encrypt my_playbook.yml
Password ġdida tal-Vault:
Ikkonferma l-password il-ġdida tal-Vault:
Encryption b'suċċess
# Uri l-playbook kodifikat
$ qattus my_playbook.yml
$ANSIBLE_VAULT;1.1;AES256
34396264333338636331323838386331393664623065383463663661373436643764336536326662
6238626432373334356436613935306630376461633136650a316561316531323937633963643032
64643239616561653864346132356537656536313030656532373733316262663536396438383262
3463373265636232640a626364306666373665303633663630353132383764323530646438383737
31336163633631373162356339633739356461656130353533306137613436663333383137376366
62383533393262376362393565386133306432323266393034616331333932663266613739653538
36663666333938323961343231366266323430376234376363353662386366373061636434613763
35653139316465613562613834373434636238643661633434326661303438666233313732653338
3264
# Uża l-playbook kodifikat mingħajr ma tiddekodifikah l-ewwel
$ ansible-playbook my_playbook.yml –ask-vault-pass
Password tal-kaxxa-forti:
...
|
konklużjoni
Dan l-artikolu għandu l-għan li jippreżenta Ansible u uri kif tista' tissimplifika l-kompiti tiegħek. Ħossok liberu li tipprovdi feedback, ittejjeb u/jew tikkoreġi din il-kariga.