ProHoster > Blag > Riarachán > Treoracha: conas róil inmhíne a thástáil agus eolas a fháil ar fhadhbanna roimh tháirgeadh
Treoracha: conas róil inmhíne a thástáil agus eolas a fháil ar fhadhbanna roimh tháirgeadh
Dia duit gach duine!
Oibrím mar innealtóir DevOps i seirbhís áirithinte óstán. Ostrovok.ru. San Airteagal seo, ba mhaith liom labhairt faoinár dtaithí maidir le róil inmhillte a thástáil.
Ag Ostrovok.ru, úsáidimid ansible mar bhainisteoir cumraíochta. Le déanaí, tháinig muid ar an ngá atá le róil a thástáil, ach mar a d'éirigh sé amach, níl an oiread sin uirlisí ann le haghaidh seo - is é an ceann is mó tóir, b'fhéidir, an creat Móilín, agus mar sin shocraigh muid é a úsáid. Ach d'éirigh sé amach go bhfuil a chuid doiciméadú ciúin faoi go leor gaistí. Níorbh fhéidir linn lámhleabhar sách mionsonraithe a aimsiú i Rúisis, mar sin shocraigh muid an t-alt seo a scríobh.
móilín
Móilín - creat chun cabhrú le tástáil a dhéanamh ar róil inmhaíte.
Cur síos simplithe: Cruthaíonn an móilín sampla ar an ardán a shonraíonn tú (scamall, meaisín fíorúil, coimeádán; le haghaidh tuilleadh sonraí, féach an rannán Tiománaí), ritheann sé do ról air, ansin ritheann sé tástálacha agus scriosann sé an t-ásc. I gcás teipe ar cheann de na céimeanna, cuirfidh an Móilín in iúl duit faoi.
Anois níos mó.
Beagán teoiric
Smaoinigh ar dhá phríomhaonán den Mhóilín: Cás agus Tiománaí.
Cás
Tá cur síos sa script ar cad, cén áit, conas agus cén seicheamh a dhéanfar. Is féidir go mbeadh roinnt scripteanna ag ról amháin, agus is eolaire é gach ceann díobh ar an gcosán <role>/molecule/<scenario>, ina bhfuil cur síos ar na gníomhaíochtaí a theastaíonn don tástáil. Ní mór script a chur san áireamh default, a chruthófar go huathoibríoch má chuireann tú tús leis an ról le Móilín. Is fút féin atá ainmneacha na scripteanna seo a leanas.
Tugtar seicheamh na ngníomhartha tástála i script maitrís, agus de réir réamhshocraithe is é:
(Céimeanna lipéadaithe ?, scipeáil de réir réamhshocraithe mura bhfuil sé sonraithe ag an úsáideoir)
lint - linters reatha. De réir réamhshocraithe a úsáidtear yamllint и flake8,
destroy - cásanna a scriosadh ón seoladh deireanach den Mhóilín (más ann dó),
dependency? — spleáchas inbhraite an róil tástálaithe a shuiteáil,
syntax - comhréir an róil a sheiceáil ag baint úsáide as ansible-playbook --syntax-check,
create - sampla a chruthú,
prepare? — an cás a ullmhú; m.sh. seiceáil/suiteáil python2
converge — seoladh an leabhair súgartha atá á thástáil,
idempotence - an leabhar súgartha a atosú don tástáil neamhchumhachtach,
side_effect? - gníomhaíochtaí nach mbaineann go díreach leis an ról, ach atá riachtanach le haghaidh tástálacha,
verify - tástálacha a rith ar an gcumraíocht mar thoradh air ag baint úsáide as testinfra(réamhshocraithe) /goss/inspec,
cleanup? - (i leaganacha nua) - go garbh, "glanadh" an bonneagar seachtrach a bhfuil tionchar ag an Móilín,
destroy - Sampla a scriosadh.
Clúdaíonn an seicheamh seo formhór na gcásanna, ach is féidir é a athrú más gá.
Is féidir gach ceann de na céimeanna thuas a reáchtáil ar leithligh le molecule <command>. Ach ba cheart duit a thuiscint go bhféadfadh a sheicheamh gníomhartha féin a bheith ann do gach cli-ordú, ar féidir leat a fháil amach trí fhorghníomhú molecule matrix <command>. Mar shampla, nuair a bhíonn an t-ordú á rith converge (agus an leabhar súgartha á rith faoi thástáil), déanfar na gníomhartha seo a leanas:
$ molecule matrix converge
...
└── default # название сценария
├── dependency # установка зависимостей
├── create # создание инстанса
├── prepare # преднастройка инстанса
└── converge # прогон плейбука
Is féidir seicheamh na ngníomhartha seo a chur in eagar. Má tá rud éigin ón liosta déanta cheana féin, ní dhéanfar é. An staid reatha, chomh maith le cumraíocht na gcásanna, na siopaí Móilín san eolaire $TMPDIR/molecule/<role>/<scenario>.
Cuir céimeanna le ? is féidir leat cur síos a dhéanamh ar na gníomhartha atá ag teastáil san fhormáid ansible-playbook, agus ainm an chomhaid a dhéanamh de réir na céime: prepare.yml/side_effect.yml. Bí ag súil leis na comhaid seo Beidh an móilín san fhillteán scripte.
Tiománaí
Is eintiteas é tiománaí ina gcruthaítear cásanna tástála.
Seo a leanas liosta na dtiománaithe caighdeánacha a bhfuil teimpléid réidh ag Molecule dóibh: Azure, Docker, EC2, GCE, LXC, LXD, OpenStack, Vagrant, Tarmligthe.
I bhformhór na gcásanna, is comhaid iad teimpléid create.yml и destroy.yml san fhillteán scripte a chuireann síos ar chruthú agus ar scriosadh sampla, faoi seach.
Is iad na heisceachtaí ná Docker and Vagrant, mar is féidir idirghníomhaíochtaí lena modúil tarlú gan na comhaid thuasluaite.
Is fiú aird a tharraingt ar an tiománaí Tarmligthe, ós rud é má úsáidtear é sna comhaid chun cás a chruthú agus a scriosadh, ní dhéantar cur síos ar obair ach amháin le cumraíocht na gcásanna, ba cheart don innealtóir cur síos a dhéanamh ar an gcuid eile.
Is é an tiománaí réamhshocraithe Docker.
Anois, a ligean ar bogadh ar aghaidh go dtí an cleachtas agus gnéithe breise a mheas ansin.
Ag Tosú
Mar "hello world", déanaimis tástáil ar ról suiteála nginx simplí. Roghnóimid docker mar an tiománaí - is dóigh liom go bhfuil an chuid is mó agaibh suiteáilte (agus cuimhnigh gurb é an docker an tiománaí réamhshocraithe).
Ullmhaigh virtualenv agus a shuiteáil ann molecule:
Is é an chéad chéim eile ná an ról nua a thosú.
Cuirtear tús le ról nua, chomh maith le script nua, leis an ordú 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
Tharla sé gur gnáthról ansmachta é. Ina theannta sin, déantar gach idirghníomhú le Móilíní CLI ó fhréamh an róil.
Feicfimid cad atá san eolaire ról:
> tree molecule/default/
molecule/default/
├── Dockerfile.j2 # Jinja-шаблон для Dockerfile
├── INSTALL.rst. # Немного информации об установке зависимостей сценария
├── molecule.yml # Файл конфигурации
├── playbook.yml # Плейбук запуска роли
└── tests # Директория с тестами стадии verify
└── test_default.py
1 directory, 6 files
Déanaimis anailís ar an config molecule/default/molecule.yml (cuir in ionad íomhá docker amháin):
Is blaosc ordaithe é Shell a úsáidtear ar eagla nach gclúdaíonn réaltra agus óraithe do chuid riachtanas.
Ní bheidh mé dwell anseo ar feadh i bhfad, tá sé cur síos go leor i doiciméadú.
tiománaí
Ainm an tiománaí. Is linne docker.
línéadach
Tá an lintéar yamllint.
Is iad na roghanna úsáideacha sa chuid seo den chumraíocht ná an cumas comhad cumraíochta a shonrú le haghaidh yamllint, athróga timpeallachta ar aghaidh, nó an línéar a dhíchumasú:
Cur síos ar chumraíocht na gcásanna.
I gcás docker mar thiománaí, atartar an Móilín thar an gcuid seo, agus tá gach eilimint den liosta ar fáil i Dockerfile.j2 mar athróg item.
I gcás tiománaí a éilíonn create.yml и destroy.yml, tá an rannóg ar fáil iontu mar molecule_yml.platforms, agus déantar cur síos ar atriallta níos mó sna comhaid seo cheana féin.
Ós rud é go dtugann an Móilín rialú ar chásanna do mhodúil insible, ba cheart liosta de na socruithe féideartha a lorg ansin freisin. Maidir le docker, mar shampla, úsáidtear an modúl docker_container_modúl. Is féidir na modúil a úsáidtear i dtiománaithe eile a fháil i doiciméadú.
Chomh maith le samplaí d'úsáid tiománaithe éagsúla is féidir a fháil i dtrialacha an Mhóilín féin.
Ionadaigh anseo centos:7 ar ubuntu.
soláthróir
"Soláthraí" - eintiteas a bhainistíonn cásanna. I gcás Móilín, tá sé seo ansible, níl tacaíocht do dhaoine eile pleanáilte, mar sin is féidir an chuid seo a dtugtar cumraíocht leathnaithe insible le caveat.
Anseo is féidir leat a lán rudaí a shonrú, leagfaidh mé béim ar na príomhphointí, i mo thuairim:
leabhair súgartha: is féidir leat a shonrú cé na leabhair súgartha ba cheart a úsáid ag céimeanna áirithe.
Ainm agus cur síos ar sheichimh scripte.
Is féidir leat maitrís gníomhaíochta réamhshocraithe aon ordaithe a athrú tríd an eochair a chur leis <command>_sequence agus mar luach dó tríd an liosta céimeanna a theastaíonn uainn a shainiú.
Ligean le rá gur mhaith linn seicheamh na ngníomhartha a athrú agus an t-ordú rith leabhar súgartha á rith: molecule converge
Creat a bhunú le haghaidh tástálacha agus línéar chuige. Is é an línéar réamhshocraithe testinfra и flake8. Tá na roghanna féideartha mar a chéile thuas:
Rinneadh tástáil ar ár ról simplí gan fadhbanna.
Is fiú cuimhneamh má tá fadhbanna le linn na hoibre molecule test, ansin murar athraigh tú an t-ord réamhshocraithe, scriosfaidh an Móilín an ásc.
Tá na horduithe seo a leanas úsáideach le haghaidh dífhabhtaithe:
> molecule --debug <command> # debug info. При обычном запуске Молекула скрывает логи.
> molecule converge # Оставляет инстанс после прогона тестируемой роли.
> molecule login # Зайти в созданный инстанс.
> molecule --help # Полный список команд.
Ról Reatha
Tá sé riachtanach script nua a chur le ról atá ann cheana féin ón eolaire ról leis na horduithe seo a leanas:
# полный список доступных параметров
> molecule init scenarion --help
# создание нового сценария
> molecule init scenario -r <role_name> -s <scenario_name>
Sa chás gurb é seo an chéad chás sa ról, ansin an paraiméadar -s Is féidir é a fhágáil ar lár mar go gcruthóidh sé script default.
Conclúid
Mar a fheiceann tú, níl an Móilín an-chasta, agus trí úsáid a bhaint as do theimpléid féin, is féidir úsáid a bhaint as script nua a laghdú go dtí athróga eagarthóireachta nuair a bhíonn leabhair súgartha á gcruthú agus á scriosadh. Comhtháthaíonn an móilín gan uaim le córais CI, rud a ligeann duit luas na forbartha a mhéadú trí laghdú a dhéanamh ar an am le haghaidh tástála láimhe ar leabhair súgartha.
Go raibh maith agat as do aird. Má tá taithí agat ar róil insible a thástáil, agus nach bhfuil baint aige leis an Móilín, inis dúinn faoi sna tuairimí!