Ansible Roles - popoln način za razpletanje vaših Playbooks



Ta blog Ansible Roles govori o tem, kako se z vlogami zapletene igralne knjige postanejo berljive in ponovno uporabne z demonstracijo namestitve sklada MEAN.

Ansible nam omogoča avtomatizacijo upravljanja konfiguracije sistemov in dodajanje poljubnega števila strank, kot želimo. Ste se kdaj vprašali, kako zapleteno lahko to postane? Ste se kdaj vprašali, kako dolge in zmedene lahko igrajo knjige? Kako se zdi, da je Ansible še vedno vetrič? Uporablja koncept odgovornih vlog in o tem bomo govorili v tem blogu.

Zajete teme:





Če želite obvladati DevOps, ' seveda bi bila vaša možnost obiska.

Uvod v odgovorne vloge

Ansible Role je koncept, ki se bolj ukvarja z idejami kot z dogodki. Njegova v bistvu druga stopnja abstrakcije, ki se uporablja za organizacijo knjig iger. Zagotavljajo okostje za neodvisno in ponovno uporabljivo zbirko spremenljivk, nalog, predlog, datotek in modulov, ki jih je mogoče samodejno naložiti v igro. Knjige iger so zbirka vlog. Vsaka vloga ima posebne funkcije.



Naj to pojasnim s primerom. Recimo, da želite, da vaša knjiga iger izvaja 10 različnih nalog v 5 različnih sistemih, ali bi za to uporabili eno samo igro? Ne, uporaba ene same knjige lahko povzroči zmedo in nagnjenost k napakam. Namesto tega lahko ustvarite 10 različnih vlog, kjer bo vsaka vloga izvedla eno nalogo. Nato je vse, kar morate storiti, omeniti ime vloge v knjigi iger in jih poklicati. V nadaljevanju tega spletnega dnevnika boste izvedeli, kako uporabljati vloge.

Ponovna uporaba odgovornih vlog

Ansible Roles so neodvisne druga od druge. Izvajanje ene vloge ni odvisno od drugih in jih je zato mogoče ponovno uporabiti. Te vloge lahko celo spremenite in prilagodite svojim zahtevam. To zmanjšuje našo nalogo, da prepišemo celoten odsek kode vsakič, ko jo potrebujemo, in s tem poenostavimo svoje delo.

Vrnimo se na prejšnji primer. Napisali ste 10 vlog, zdaj pa jih morate uporabiti za še en sklop. Ali spet napišete celotno igro? Ne, teh 5 vlog preprosto ponovno uporabite, tako da jih pokličete v tej novi Playbook. Po potrebi jih lahko tudi spremenite, vendar vam bo vseeno prihranilo veliko časa.



Recimo, da morate napisati knjigo iger za nastavitev sklada LAMP. Ustvariti morate 4 vloge, vsaka za ustvarjanje Linux, Apache, MongoDB in PHP. Če boste v prihodnje, če želite še eno knjigo iger za nastavitev LAMP sklada in WordPressa, znova ustvarili nove vloge za LAMP stack in WordPress? Ne! Preprosto lahko ponovno uporabite starejše vloge (uporabljene za sklad LAMP) in dodatno ustvarite novo vlogo za WordPress.

Struktura imenika vlog

Z uporabo odgovornih vlog pričakujte, da bodo datoteke v določeni datotečni strukturi. Najbolj zmeden del uporabe vlog je razumevanje hierarhije datotek. Ansible ponuja funkcijo, imenovano Ansible Galaxy, ki vam pomaga pri igranju vlog. Že vemo, kje je naš Ansible v Ubuntuju (/ etc / ansible). Ste že kdaj videli imenik z imenom role v / etc / ansible? Ta imenik obstaja ravno iz tega razloga. V tem imeniku ustvarite različne vloge.

Imenik bo videti tako:

Drevo - odgovorne vloge - Edureka

Vlogo lahko ustvarite z uporabo ansible-galaksija ukaz init znotraj / etc / ansible / role.

$sudoansible-galaxy init

Videli boste, da bi bili ustvarjeni tudi drugi imeniki vlog.

Ti imeniki so opravila, obdelovalci, privzete vrednosti, različice, datoteke, predloge in meta ter README.mdmapa.

Naloge - Vsebuje glavni seznam nalog, ki jih mora vloga izvesti. Tovsebujedatoteko main.yml za to določeno vlogo.

Vodniki - Vsebuje upravljavce, ki jih lahko uporablja ta vloga ali celo kje zunaj te vloge.

Privzete vrednosti - Vsebuje privzete spremenljivke, ki jih bo uporabljala ta vloga.

Čigav - Ta imenik je sestavljen iz drugih spremenljivk, ki jih bo vloga uporabila. Te spremenljivke lahko določite v svoji knjigi iger, vendar je dobro, da jih določite v tem poglavju.

kaj je jframe v javi

Datoteke - Vsebuje datoteke, ki jih lahko vloži ta vloga. Vsebuje datoteke, ki jih je treba poslati gostiteljem med konfiguriranjem vloge.

Meta - Določa metapodatke za to vlogo. V bistvu vsebuje datoteke, ki vzpostavljajo odvisnosti od vlog.

Vsak naloga imenik mora biti sestavljen iz glavni.iml datoteko, kjer je zapisana dejanska koda za to vlogo.

Zdaj razumimo delovanje ali vloge z predstavitvijo namestitve MEAN Stack.

Predstavitev: Namestitev MEAN Stack z uporabo odgovornih vlog

Pokazal bom, kako namestiti MEAN Stack z uporabo odgovornih vlog, tako da izvedem samo eno samo knjigo iger. Imeli bomo tri vloge: 1) namestitev predpogojev, 2) namestitev MongoDB in 3) namestitev NodeJS. Predvidevam, da ste že namestili Ansible in vzpostavili povezavo strežnik-odjemalec v Ubuntuju . Začnimo se igrati z Ansible Roles.

Korak 1 - Pomaknite se do / etc / ansible / role in ustvarite vloge za predpogoje, MongoDB in NodeJS.

$ cd / etc / ansible / role $ sudo ansible-galaxy init predpogoji $ sudo ansible-galaxy init mongodb $ sudo ansible-galaxy init nodejs

Zdaj bi morali v imeniku 'vloge' videti tri vloge.

2. korak - Za predpogoje napišite main.yml, ki namesti Git.

$ cd predpogoji / tasks / main.yml --- - name: Namestite git apt: name: git state: present update_cache: yes

3. korak - Napišite main.yml za vlogo MongoDB

$ cd /mongodb/tasks/main.yml --- - ime: MongoDB - Uvozi javni ključ apt_key: strežnik ključev: hkp: //keyserver.ubuntu.com: 80 id: EA312927 - ime: MongoDB - Dodaj skladišče apt_repository: ime datoteke: '/etc/apt/sources.list.d/mongodb-org-3.2.list' repo: 'deb http://repo.mongodb.org/apt/ubuntu trusty / mongodb-org / 3.2 multiverse' stanje: trenutno update_cache : yes - name: MongoDB - Namesti MongoDB apt: name: mongodb-org state: present update_cache: yes - name: Zaženi lupino mongod: 'mongod &'

4. korak - Napišite main.yml zanodejsvlogo

$ cd nodejs / tasks / main.yml --- - ime: Node.js - Pridobi skript get_url: url: 'http://deb.nodesource.com/setup_6.x' dest: '{{var_node}} / nodejs .sh '- ime: Node.js - Nastavite dovoljenje za izvajanje datoteke skripta: pot:' {{var_node}} / nodejs.sh 'način:' u + x '- ime: Node.js - Izvedite lupino namestitvenega skripta:' {{var_node}} / nodejs.sh '- ime: Node.js - Odstrani namestitveno datoteko skripta: pot:' {{var_node}} / nodejs.sh 'stanje: odsotno - ime: Node.js - Namesti Node.js apt : name = {{item}} state = present update_cache = yes with_items: - build-bistveno - nodejs - name: Node.js - globalno namestite bower in gulp npm: name = {{item}} state = present global = yes with_items : - bower - požirek

5. korak - Napišite svojo glavno igro

$ cd /etc/ansible/mean.yml --- - gostitelji: vozlišča oddaljeni uporabnik: ansible postane: da postane_metoda: sudo vars: # spremenljivka, potrebna med namestitvijo vozlišča var_node: / tmp vloge: - predpogoji - mongodb - nodejs

Zdaj, ko smo določili vloge za namestitev predpogojev, MongoDB in NodeJs, razporedimo jih. Izvedite igro z naslednjim ukazom.

$sudoansible-playbook /etc/ansible/mean.yml -K

Kot lahko vidite, so bila vsa opravila izvedena in njihov status se je spremenil. To pomeni, da so bile spremembe knjižice sprememb uporabljene tako za vaš strežnik kot tudi za gostitelja. Nastavitev MEAN Stack je le en primer. Z Ansible Roles lahko nastavite dobesedno vse in vse.

S tem smo prišli do konca bloga Ansible Roles. Če se vam zdi ta članek koristen, si oglejte ' ponuja Edureka. Zajema vsa orodja, ki so izboljšala IT-panogo.

Imate vprašanje za nas? Prosim, objavite na in se bomo oglasili pri vas.