Kia pai!
Ko Sergey toku ingoa, kei te mahi ahau hei miihini hangahanga i roto i te roopu API o te papanga tinkoff.ru.
I roto i tenei tuhinga ka korero ahau mo nga raruraru i pa ki to taatau kapa i te wa e whakarite ana i nga pauna Nginx mo nga momo kaupapa. Ka korero ano ahau ki a koe mo te taputapu i taea ai e au te wikitoria i te nuinga o era.
Ko Nginx he kaiwhakarato takawaenga maha me te kaha te whakawhanake. He maha nga waahanga whakauru, ehara tenei i te rarangi katoa. Ka tukuna e ia kaupapa etahi whakaritenga mo te taumahinga o te taurite me te putanga o Nginx (hei tauira, te aroaro o te http/2 me te grpc takawaenga), me te hanganga o ona waahanga.
Kei te pirangi matou ki te kite i tetahi putanga hou me nga huinga huinga e hiahiatia ana, e rere ana i raro i te tohatoha Linux motuhake. I roto i a maatau, he punaha nama me te rpm enei. Ko te whiringa me nga ipu kaore i te whakaarohia i tenei tuhinga.
Kei te pirangi matou ki te whakarereke tere i nga mahi o a maatau taurite. Na konei ka puta tonu te patai: me pehea te whakatutuki i tenei i te wa e whakapau moni ana nga rauemi ka taea? He pai ake ki te whakarite i te mahi kia taea ai e tatou te tautuhi i te maha o nga tawhā whakaurunga, a, i te putanga ka whiwhi i tetahi taonga i te ahua o te putea deb/rpm mo te OS e hiahiatia ana.
Ko te mutunga, he maha nga raru ka taea te hanga:
Karekau he kohinga me te putanga hou o Nginx.
Karekau he kete me nga waahanga e hiahiatia ana.
Ko te whakahiato me te hanga a-ringa i tetahi kete ka pau te wa me te tino hoha.
Karekau he korero mo te pehea e whakahiatohia ai tenei tauira Nginx ranei.
Hei whakaoti i enei raru, ka puta te hiahia mo tetahi taputapu hei whakauru i tetahi tohu ki roto i te whakatakotoranga ka taea e te tangata te panui me te whakahiato i tetahi kete Nginx me nga mahi e tika ana i runga.
Kaore i kitea he whiringa pai mo matou i runga i te whanuitanga o Github, i whakatau matou ki te hanga i a maatau ake taputapu - nginx-kaihanga.
Whakatakotoranga
I roto i ta maatau taputapu, i hiahia matou ki te hanga i tetahi whakaahuatanga mo te tohu ki te ahua o te waehere, ka taea te whakauru ki roto i te putunga Git. Hei mahi i tenei, i whiriwhiria e matou te whakatakotoranga e mohiotia ana mo enei mea - yaml. Tauira Whakatakotoranga:
I konei ka tohuhia e hiahia ana matou ki te kite i tetahi putea nama me te putanga Nginx 1.14.2 me te huinga o nga waahanga e hiahiatia ana. Ko te waahanga me nga waahanga he mea whiriwhiri. Mo ia o ratou ka taea e koe te whakarite:
Ingoa.
Wāhitau ka taea e koe te tiki:
Putanga Git. Ka taea hoki e koe te tohu he peka, he tohu ranei.
Pūranga hononga tukutuku.
Hononga rohe ki te puranga.
Ko etahi o nga waahanga e hiahia ana kia whakauruhia etahi atu taapiri, hei tauira ko te nginx-auth-ldap me whakauru libldap2-dev. Ka taea hoki te whakatau i nga whakawhirinakitanga e tika ana ina whakaahua ana i te kōwae.
Taiao
I roto i ta maatau taputapu ka taea e koe te tiki i tetahi taiao me nga taputapu kua whakauruhia mo te whakahiato, te huihuinga kete me etahi atu taputapu awhina. He ipu Docker me nga mea katoa e hiahia ana koe he pai ki konei (kei te rua nga tauira o nga konae Docker mo ubuntu me centos kei roto i te putunga).
Whai muri i te whakatakotoranga o te tohu me te whakarite i te taiao, ka whakarewahia e matou to maatau kaihanga, kua oti te whakauru i ona whakawhirinakitanga:
Ko te nama whakahou kei konei he mea whiriwhiri, ka whakamahia mo nga huihuinga whakaputa. Kua tuhia ki roto i nga korero meta o te kete, he ngawari ki te whakahou i runga i nga kaitoro.
Mai i nga raarangi ka taea e koe te aro turuki i nga mea kei te tupu. Anei tetahi tauira o nga kaupapa matua:
builder - INFO - Parse yaml file: example.config.yaml
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.14.1.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - Module nginx-auth-ldap will download by branch
builder - INFO - -- Done: nginx-auth-ldap
builder - INFO - -- Done: ngx_http_substitutions_filter_module
builder - INFO - Module headers-more-nginx-module will downloading
builder - INFO - Module nginx-module-vts will download by tag
builder - INFO - -- Done: nginx-module-vts
builder - INFO - Module ngx_devel_kit will download by tag
builder - INFO - -- Done: ngx_devel_kit
builder - INFO - -- Done: ngx_cache_purge
builder - INFO - -- Done: ngx_http_dyups_module
builder - INFO - Downloading dependencies
builder - INFO - Building .deb package
builder - INFO - Running 'dh_make'...
builder - INFO - Running 'dpkg-buildpackage'...
dpkg-deb: building package 'nginx' in '../nginx_1.14.1-1_amd64.deb'.
Na, me te rua noa o nga whakahau, ka hangaia e matou te taiao me te huihuinga Nginx e hiahiatia ana, a ka puta te kete i roto i te raarangi mai i te waahi ka whakarewahia te tuhinga.
Whakamau
Ka taea hoki te whakauru i a maatau taputapu ki nga tukanga CI/CD. Ko tetahi o nga punaha CI e noho ana i enei ra ka awhina i tenei, hei tauira Teamcity ranei Gitlab CI.
Ko te mutunga mai, i nga wa katoa ka huri te tohu ki roto i te whare putunga Git, ka whakarewa aunoatia te hanga o te taonga. E hono ana te nama whakahou ki te porotiti whakarewanga hanga.
He iti ake te wa, ka taea e koe te whirihora i te taonga toi kia tukuna atu ki to putunga kete a rohe, Nexus, Artifactory, me etahi atu.
Ko tetahi atu painga ko te konae whirihoranga yaml ka taea te hono atu ki te Ansible, ki tetahi atu punaha whirihoranga aunoa ranei, a mai i reira ka taea te tango i te nama putanga me te momo kete e hiahia ana matou ki te tuku.
He aha te muri
Kaore ano kia oti te kaupapa. Anei ta matou e mahi ana inaianei:
Ka whakawhānuihia e matou te waahi o te whirihoranga, engari i te wa ano ka mau tonu kia ngawari. Kaore koe e hiahia ki te tautuhi i te mano tawhā mena ka hiahia koe kia rua anake, ko te toenga ka pai ki te taunoa. Kei roto i tenei ko nga haki whakahiato (inaianei ka taea e koe te whakarereke i roto i te konae whirihoranga o roto src/config.py), ara whakauru, me te whakarewatanga o te kaiwhakamahi.
Kei te taapiri i nga whiringa mo te tuku aunoa i tetahi kete ki nga momo putunga toi.