ProHoster > Блог > Maamulka > Tilmaamaha: sida loo tijaabiyo doorarka macquulka ah iyo in la ogaado dhibaatooyinka ka hor wax soo saarka
Tilmaamaha: sida loo tijaabiyo doorarka macquulka ah iyo in la ogaado dhibaatooyinka ka hor wax soo saarka
Hello qof walba!
Waxaan u shaqeeyaa sidii Injineer DevOps ah oo ku jira adeegga ballansashada hudheelka. Ostrovok.ru. Maqaalkan, waxaan rabaa inaan ka hadlo khibradeena tijaabinta doorarka macquulka ah.
At Ostrovok.ru, waxaan u isticmaalnaa macquul maareeye qaabeynta. Dhawaan, waxaan u nimid baahida loo qabo in la tijaabiyo doorarka, laakiin sida ay soo baxday, ma jiraan qalab aad u badan oo tan ah - kan ugu caansan, laga yaabee, waa qaabka Molecule, sidaas darteed waxaan go'aansanay inaan isticmaalno. Laakiin waxaa soo baxday in dukumeentigiisu uu ka aamusan yahay godad badan. Ma helin buug-gacmeed faahfaahsan oo ku filan oo Ruush ah, markaa waxaan go'aansannay inaan qorno maqaalkan.
Britain
Molecule - qaab-dhismeed ka caawinaya tijaabinta doorarka macquulka ah.
Sharaxaadda la fududeeyay: Moleekule-ku waxa uu tusaale ka abuuraa goobta aad ku qeexday (daruur, mashiinka farsamada, weel; faahfaahin dheeraad ah, eeg qaybta Driver), ku socodsiiya doorkaaga, ka dibna tijaabi tijaabooyin oo tirtiraya tusaalaha. Haddii ay dhacdo guuldarro mid ka mid ah tillaabooyinka, Molecule ayaa ku wargelin doona arrintaas.
Hadda ka badan.
Qeyb ka mid ah aragti
Tixgeli labada qaybood ee muhiimka ah ee Molecule: Scenario iyo Driver.
Muuqaal
Qoraalku waxa uu ka kooban yahay sharaxaad waxa, meesha, sida iyo sida isku xigxiga la samayn doono. Hal door ayaa yeelan kara qoraallo badan, mid walbana waa hage ku yaal waddada <role>/molecule/<scenario>, kaas oo ka kooban sharaxaadaha ficilada looga baahan yahay imtixaanka. Qoraalka waa in lagu daraa default, kaas oo si toos ah loo abuuri doono haddii aad doorka ku bilawdo Molecule. Magacyada qoraallada soo socda adiga ayay kugu xiran tahay.
Tixraaca tallaabooyinka tijaabada ee qoraalka ayaa loo yaqaan Matrix, oo asal ahaan waa:
(Tallaabooyin lagu calaamadeeyay ?, si toos ah looga booday haddii uusan isticmaaluhu cayimin)
lint - orodka linters. Sida caadiga ah ayaa loo isticmaalaa yamllint и flake8,
destroy - Tirtirida tusaalooyinka bilawgii ugu dambeeyay ee Molecule (haddii ay jiraan),
dependency? - rakibidda ku-tiirsanaanta suurtagalka ah ee doorka la tijaabiyay,
syntax - hubinta syntax ee doorka isticmaalaya ansible-playbook --syntax-check,
Taxanahan ayaa daboolaya inta badan kiisaska, laakiin waa la bedeli karaa haddii loo baahdo.
Mid kasta oo ka mid ah tillaabooyinka kore si gaar ah ayaa loo socodsiin karaa molecule <command>. Laakiin waa in la fahamsan yahay in amar kasta oo noocaas ah uu jiri karo ficilkiisa taxanaha ah, kaas oo aad ku ogaan karto adigoo fulinaya. molecule matrix <command>. Tusaale ahaan, marka la wado amarka converge (la socodsiinta buugga-ciyaaraha ee imtixaanka), tallaabooyinka soo socda ayaa la samayn doonaa:
$ molecule matrix converge
...
└── default # название сценария
├── dependency # установка зависимостей
├── create # создание инстанса
├── prepare # преднастройка инстанса
└── converge # прогон плейбука
Taxanaha falalkan waa la tifatiri karaa Haddii wax ka mid ah liiska hore loo sameeyay, waa laga boodi doonaa. Xaaladda hadda jirta, iyo sidoo kale habaynta tusaalooyinka, Moleculeku wuxuu ku kaydiyaa tusaha $TMPDIR/molecule/<role>/<scenario>.
Tallaabooyinka ku dar ? waxaad ku qeexi kartaa ficilada la rabo qaabka buug-ciyaareedka macquulka ah, oo samee magaca faylka si waafaqsan tillaabada: prepare.yml/side_effect.yml. Filo faylashan Moleekuleku wuxuu ku jiri doonaa galka qoraalka.
Driver
Darawalku waa koox lagu sameeyo tusaalooyin imtixaan.
Liistada darawallada caadiga ah ee Molecule ay u diyaarsan tahay qaab-dhismeedka waa sida soo socota: Azure, Docker, EC2, GCE, LXC, LXD, OpenStack, Vagrant, Wakiil.
Inta badan, qaab-dhismeedka waa faylal create.yml и destroy.yml galka qoraalka ee qeexaya abuurista iyo tirtirka tusaale, siday u kala horreeyaan.
Waxyaabaha ka reeban waa Docker iyo Vagrant, maadaama isdhexgalka cutubyadoodu ay dhici karaan iyada oo aan la helin faylalka aan soo sheegnay.
Waxaa habboon in la muujiyo darawalka loo wakiishay, maadaama haddii loo isticmaalo faylalka abuurista iyo tirtirka tusaale ahaan, kaliya la shaqeynta qaabeynta xaaladaha ayaa lagu qeexay, inta soo hartay waa in lagu qeexaa injineerka.
Dareewalka caadiga ah waa Docker.
Hadda aynu u gudubno ku celcelinta oo aynu tixgalino sifooyin dheeraad ah halkaas.
Bilaabidda
Sida "adduunka hello", aan tijaabinno door rakibidda nginx fudud. Waxaan u dooran doonaa docker ka darawal ahaan - Waxaan u maleynayaa in badankiin aad rakibtay (oo xusuusnow in docker-ku yahay darawalka caadiga ah).
Tallaabada xigta waa in la bilaabo doorka cusub.
Bilawga door cusub, iyo sidoo kale qoraal cusub, ayaa la sameeyaa iyadoo la adeegsanayo amarka molecule init <params>:
> molecule init role -r nginx
--> Initializing new role nginx...
Initialized role in <path>/nginx successfully.
> cd nginx
> tree -L 1
.
├── README.md
├── defaults
├── handlers
├── meta
├── molecule
├── tasks
└── vars
6 directories, 1 file
Waxay soo baxday door macquul ah oo caadi ah. Dheeraad ah, dhammaan isdhexgalka CLI Molecules waxaa laga sameeyay asalka doorka.
Aan aragno waxa ku jira hagaha doorka:
> tree molecule/default/
molecule/default/
├── Dockerfile.j2 # Jinja-шаблон для Dockerfile
├── INSTALL.rst. # Немного информации об установке зависимостей сценария
├── molecule.yml # Файл конфигурации
├── playbook.yml # Плейбук запуска роли
└── tests # Директория с тестами стадии verify
└── test_default.py
1 directory, 6 files
Aan falanqeyno qaabeynta molecule/default/molecule.yml (Beddel kaliya sawirka docker):
Shell waa kaliya qolof amar ah oo loo isticmaalo haddii ay galaxy iyo gilt dabooli waayaan baahiyahaaga.
Anigu halkan ma degi doono muddo dheer, waa ku filan tahay in lagu tilmaamo dukumentiyo.
wadaha
Magaca darawalka. Anaga ayaa docker ah.
marada
Linter waa yamllint.
Ikhtiyaarada waxtarka leh ee qaybtan qaabaynta ayaa ah awooda lagu qeexo faylka qaabaynta ee yamllint, doorsoomayaasha deegaanka ee hore u qaadida, ama curyaamin linter:
Wuxuu qeexayaa habaynta tusaalooyinka.
Marka laga hadlayo docker ka darawal ahaan, Molecule ayaa lagu soo celceliyay qaybtan, iyo shay kasta oo liiska ka mid ah ayaa laga heli karaa Dockerfile.j2 doorsoome ahaan item.
Xaaladda darawalka u baahan create.yml и destroy.yml, qaybta waxaa laga heli karaa iyaga sida molecule_yml.platforms, iyo ku celcelintiisa ayaa horeba loogu sifeeyay faylalkan.
Maadaama Molecule-ku uu bixiyo kontoroolka tusaalooyinka cutubyada macquulka ah, liiska goobaha suurtagalka ah waa in sidoo kale halkaas laga raadiyaa. Docker, tusaale ahaan, moduleka ayaa la isticmaalaa docker_container_module. Qaybaha loo isticmaalo darawalada kale ayaa laga heli karaa dukumentiyo.
Iyo sidoo kale tusaalooyin isticmaalka darawallada kala duwan ayaa laga heli karaa imtixaanada Molecule laftiisa.
Halkan ku bedel senti:7 on ubuntu.
bixiye
"Alaab-qeybiye" - waa hay'ad maamusha tusaalooyinka. Xaaladda Molecule, tani waa mid macquul ah, taageerada kuwa kale looma qorsheyn, sidaas darteed qaybtan waxaa loogu yeeri karaa qaabeynta la kordhin karo oo la heli karo oo leh digniin.
Halkan waxaad ku qeexi kartaa waxyaabo badan, waxaan iftiimin doonaa qodobada ugu muhiimsan, fikradayda:
buugaagta ciyaarta: waxaad qeexi kartaa buugaagta ciyaarta ee ay tahay in la isticmaalo marxaladaha qaarkood.