
Ez da sekretua ezarpen lehenetsiekin Ansiblek ezin duela bere lana oso azkar egin. Artikuluan horretarako hainbat arrazoi adieraziko ditut eta gutxieneko ezarpen erabilgarriak eskainiko ditut, ziurrenik zure proiektuaren abiadura areagotuko dutenak.
Hemen eta behean Ansible 2.9.x eztabaidatuko dugu, zure modu gogokoenean sortu berri den virtualenv batean instalatu zena.
Instalatu ondoren, sortu "ansible.cfg" fitxategi bat zure playbook ondoan - kokapen honek ezarpen hauek proiektuarekin batera transferitzeko aukera emango dizu, eta automatikoki kargatuko dira.
Kanalizazioa
Batzuek dagoeneko entzun izan dute pipelining-a erabili beharrari buruz, hau da, xede-sistemaren fitxategi-sisteman moduluak ez kopiatzea, baizik eta Base64-n bildutako zip artxibo bat zuzenean Python interpretearen stdin-era transferitzea, baina beste batzuk agian ez, baina egia esan. errealitate bat izaten jarraitzen du: oraindik gutxietsita geratzen da. Zoritxarrez, sudo konfiguratzeko erabiltzen diren Linux banaketa ezagun batzuk ez dira oso ondo lehenespenez; beraz, komando honek tty (terminal) bat behar zuen, beraz, Ansiblek ezarpen oso erabilgarria desgaituta utzi zuen lehenespenez.
pipelining = TrueGertaerak biltzea
Ba al zenekien ezarpen lehenetsiekin, antzezlan bakoitzeko Ansiblek bertan parte hartzen duten ostalari guztien datuen bilketa abiarazten duela? Orokorrean, ez bazenekien, orain badakizu. Hori gerta ez dadin, gertakariak biltzeko eskaera modu esplizitua (esplizitua) edo modu adimenduna gaitu behar duzu. Bertan, aurreko antzezlanetan aurkitu ez ziren anfitrioietatik soilik bilduko dira.
UPD. Kopiatzen duzunean, ezarpen hauetako bat hautatu beharko duzu.
gathering = smart|explicitSsh konexioak berrerabili
Inoiz exekutatu baduzu Ansible arazketa moduan ("v" aukera, bat edo bederatzi aldiz errepikatua), baliteke ssh konexioak etengabe egiten eta hautsi egiten direla konturatu izana. Beraz, pare bat sotiltasun daude hemen ere.
Ssh konexioa aldi berean bi mailatan berrezartzeko urratsa saihestu dezakezu: zuzenean ssh bezeroan eta kudeatzailetik kudeatutako ostalari fitxategiak transferitzean.
Ssh konexio ireki bat berrerabiltzeko, ssh bezeroari beharrezko gakoak pasa besterik ez dago. Ondoren, honako hau egiten hasiko da: ssh konexioa lehen aldiz ezartzean, kontrol-socket deritzona ere sortuko du, ondorengo instalazioetan, socket horren existentzia egiaztatuko du, eta arrakasta izanez gero, berrerabili. dagoen ssh konexioa. Eta honek guztiak zentzua izan dezan, ezar dezagun konexioa mantentzeko ordua aktibo ez dagoenean. Gehiago irakurri dezakezu , eta Ansible-ren testuinguruan ssh bezeroari beharrezko aukerak "birbidaltzea" besterik ez dugu erabiltzen.
ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"Dagoeneko irekita dagoen ssh konexio bat berrerabiltzeko fitxategiak kudeatutako ostalari batera transferitzean, zehaztu beste ezarpen ezezagun bat ssh_transfer_method. Gai honi buruzko dokumentazioa izugarria da eta engainagarria, aukera honek nahiko ondo funtzionatzen duelako! Baina irakurtzen zehazki zer gertatuko den ulertzeko aukera ematen du: dd komandoa kudeatutako ostalarian abiaraziko da, nahi duzun fitxategiarekin zuzenean lan eginez.
transfer_method = pipedBide batez, “garatu” adarrean ezarpen hau ere badago .
Ez izan aiztoaren beldur, izan sardexkaren beldur
Beste ezarpen erabilgarria sardexkak dira. Ostalariekin aldi berean konektatuko diren eta zereginak egingo dituzten langile-prozesuen kopurua zehazten du. Python-ek hizkuntza gisa dituen berezitasunak direla eta, prozesuak erabiltzen dira, ez hariak, Ansiblek Python 2.7 onartzen duelako oraindik - ez dago asinziorik zuretzat, ez du balio hemen portaera asinkronoa sartzeak! Lehenespenez, Ansible exekutatzen da langileak, baina behar bezala galdetuz gero, gehiago jarriko ditu martxan:
forks = 20Berehala ohartarazten dizut kontrol-makinaren memoria-kopuruarekin lotutako zailtasun batzuk egon daitezkeela hemen. Beste era batera esanda, sardexkak=100500 ezar ditzakezu, noski, baina nork esan du funtzionatuko zuela?
Guztia batuta
Ondorioz, ansible.cfg (ini formatuan), beharrezkoak diren ezarpenak honelakoak izan daitezke:
[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped
Eta pertsona osasuntsu baten YaML-inbentario normal batean dena ezkutatu nahi baduzu, honelakoa izan daiteke:
---
all:
vars:
ansible_ssh_pipelining: true
ansible_ssh_transfer_method: piped
ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m
Zoritxarrez, honek ez du funtzionatuko "gathering = smart/explicit" eta "forks = 20" ezarpenekin: haien YaML baliokideak ez dira existitzen. Edo ansible.cfg-en ezartzen ditugu, edo ANSIBLE_GATHERING eta ANSIBLE_FORKS ingurune-aldagaietatik pasatzen ditugu.
Mitogen buruz
- Non da hau Mitogen buruz? - galdetzeko eskubidea duzu, irakurle maitea. Artikulu honetan inon. Baina benetan prest bazaude bere kodea irakurtzeko eta zure jolas-liburua zergatik huts egiten duen Mitogen-ekin, baina ondo funtzionatzen duen Vanilla Ansible-rekin, edo zergatik funtzionatzen zuen lehen jolas-liburua bera, baina eguneratze baten ondoren gauza arraroak egiten hasi zen - tira, Mitogen zure tresna izan liteke. Aplikatu, ulertu, idatzi artikuluak - interes handiz irakurriko dut.
Zergatik ez dut pertsonalki Mitogen erabiltzen? Gladiolus-ek zereginak oso errazak diren bitartean eta dena ondo dagoen bitartean bakarrik funtzionatzen duelako. Dena den, ezkerrera edo eskuinera pixka bat biratuz gero, hori da, iritsi gara: erantzunez, salbuespen gutxi batzuk hegan egiten zaituzte, eta argazkia osatzeko, falta dena da “eskerrik asko guztiei” esaldi arrunta. , denak aske dira». Orokorrean, ez dut denbora galdu nahi hurrengo "lurpeko kolpearen" arrazoiak aurkitzen.
Ezarpen horietako batzuk irakurketa prozesuan aurkitu ziren konexio plugina "ssh.py" izen esplikatuarekin. Irakurketaren emaitzak partekatzen ditut beste norbait iturriak aztertzera, irakurtzera, ezarpena egiaztatzeko, dokumentazioarekin alderatzera bultzatuko duen esperantzarekin - azken finean, lehenago edo beranduago horrek guztiak emaitza positiboak ekarriko dizkizu. Zorte on!
Erregistratutako erabiltzaileek soilik parte hartu dezakete inkestan. , mesedez.
Ansible-ren ezarpen hauetatik zein erabiltzen duzu zure proiektuak bizkortzeko?
69,6%kanalizazioa=egia32
34,8%bilketa = adimentsu/esplizitu16
52,2%ssh_args = "-o ControlMaster=auto -o ControlPersist=..."24
17,4%transfer_method = kanalizatu8
63,0%sardexkak = XXX29
6,5%Horietako bat ere ez, Mitogen3 besterik ez
8,7%Mitogen + ezarpen hauetako zeintzuk kontuan hartuko dut4
46 erabiltzailek eman dute botoa. Erabiltzaile 21 abstenitu egin zen.
Ansibleri buruzko gauza gehiago nahi dituzu?
78,3%bai, noski54
21,7%bai, gauza hardcore gehiago nahi ditut!15
0,0%ez, eta ez da ezertarako beharrezkoa0
0,0%ez, konplikatua da!!!0
69 erabiltzailek eman dute botoa. 7 erabiltzaile abstenitu ziren.
Iturria: www.habr.com
