Nhai!
Zita rangu ndiSergey, ndinoshanda seinjiniya yezvivakwa muchikwata cheAPI chetinkoff.ru chikuva.
Muchinyorwa chino ini ndichataura nezve matambudziko ayo timu yedu yakatarisana nayo pakugadzirira mabharari zvichienderana
Nginx inoshanda yakawanda uye inoshingairira kugadzira proxy server. Inosanganisira nhamba huru yemamodule,
Tinoda kuona vhezheni nyowani ine inodiwa seti yemamodule, inoshanda pasi peiyo Linux kugovera. Kwatiri, aya madeb- uye rpm-based system. Sarudzo ine midziyo haina kutariswa mune ino chinyorwa.
Tinoda kukurumidza kuchinja kushanda kwevalancers vedu. Uye pano mubvunzo unomuka pakarepo: sei kuita izvi uchishandisa zvishoma zviwanikwa sezvinobvira? Zvingatove nani kumisikidza maitiro kuitira kuti isu tikwanise kudoma nhamba inogumira yemaparamendi ekuisa, uye pakubuda tigamuchire artifact muchimiro che deb/rpm package yeinodiwa OS.
Nekuda kweizvozvo, akati wandei ematambudziko anogona kugadzirwa:
- Iko hakusi nguva dzose mapakeji ane yazvino vhezheni yeNginx.
- Iko hakuna mapakeji ane ma module anodiwa.
- Kugadzira uye kuvaka pasuru nemawoko inotora nguva uye inonetesa.
- Iko hakuna tsananguro yekuti iyi kana iyo Nginx muenzaniso yakaunganidzwa sei.
Kugadzirisa matambudziko aya, kudiwa kunomuka kwechishandiso chinozotora sekuisa chirevo muchimiro chinoverengeka nevanhu uye kuunganidza pasuru yeNginx ine mashandiro anodiwa kubva pairi.
Tisingawane sarudzo yakakodzera kwatiri pakukura kweGithub, takasarudza kugadzira yedu chishandiso -
Specs
Muchishandiso chedu, taida kugadzira tsananguro yezvakatsanangurwa muchimiro chekodhi, iyo inogona kuiswa muGit repository. Kuti tiite izvi, takasarudza fomati yakajairika yezvinhu zvakadaro - yaml. Specification muenzaniso:
nginx_version: 1.14.1
output_package: deb
modules:
- module:
name: nginx-auth-ldap
git_url: https://github.com/kvspb/nginx-auth-ldap.git
git_branch: master
dependencies:
- libldap2-dev
- module:
name: ngx_http_substitutions_filter_module
git_url: https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
- module:
name: headers-more-nginx-module
web_url: https://github.com/openresty/headers-more-nginx-module/archive/v0.261.zip
- module:
name: nginx-module-vts
git_url: https://github.com/vozlt/nginx-module-vts.git
git_tag: v0.1.18
- module:
name: ngx_devel_kit
git_url: https://github.com/simplresty/ngx_devel_kit.git
git_tag: v0.3.0
- module:
name: ngx_cache_purge
git_url: https://github.com/FRiCKLE/ngx_cache_purge.git
- module:
name: ngx_http_dyups_module
git_url: https://github.com/yzprofile/ngx_http_dyups_module.git
- module:
name: nginx-brotli
git_url: https://github.com/eustas/ngx_brotli.git
git_tag: v0.1.2
- module:
name: nginx_upstream_check_module
git_url: https://github.com/yaoweibin/nginx_upstream_check_module.git
- module:
name: njs
git_url: https://github.com/nginx/njs.git
git_tag: 0.2.5
config_folder_path: nginx
Pano tinoratidza kuti tinoda kuona deb package ine Nginx version 1.14.2 ine inodiwa seti yemamodule. Chikamu chine ma module ndechisarudzo. Kune mumwe nemumwe wavo unogona kuseta:
- Zita.
- Kero kwaunogona kuiwana:
- Git repository. Iwe unogona zvakare kutsanangura bazi kana tag.
- Chengetedza web link.
- Local link kune archive.
Mamwe ma module anoda mamwe anotsamira kuti aiswe, semuenzaniso nginx-auth-ldap inoda libldap2-dev yakaiswa. Zvinodiwa zvinotsamira zvinogona zvakare kutsanangurwa kana uchitsanangura module.
Nzvimbo
Muchishandiso chedu unogona kukurumidza kuwana nharaunda ine zvakaiswa zvinoshandiswa zvekubatanidza, pasuru kusangana uye imwe yekubatsira software. Chigadziko cheDocker chine zvese zvaunoda chakanakira pano (iyo repository yatove nemienzaniso miviri yeDocker mafaera e ubuntu uye centos).
Mushure mekunge iyo yakatarwa yadhirowa uye nharaunda yagadzirwa, isu tinotangisa muvaki wedu, takamboisa zvinoenderana nazvo:
pip3 install -r requirements.txt
./main.py build -f [ΠΊΠΎΠ½ΡΠΈΠ³_ΡΠ°ΠΉΠ»].yaml -r [Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ]
Nhamba yekudzokorora pano ndeyekusarudza uye inoshandiswa pakushandura magungano. Iyo yakanyorwa mune iyo meta ruzivo rwepakeji, zvichiita kuti zvive nyore kugadzirisa pamaseva.
Kubva pamatanda unogona kutarisa zviri kuitika. Heino muenzaniso wezvibodzwa zvikuru:
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'.
Saka, nemirairo mishoma, isu tinogadzira nharaunda uye inodiwa Nginx gungano, uye iyo package inoonekwa mudhairekitori kubva kwakatangwa script.
Embedding
Isu tinogona zvakare kubatanidza chishandiso chedu muCI/CD maitiro. Chero yeakawanda maCI masisitimu aripo nhasi anogona kubatsira neizvi, semuenzaniso
Nekuda kweizvozvo, pese pese panochinjika dhizaini muGit repository, kuvakwa kweiyo artifact kunotangwa otomatiki. Iyo nhamba yekudzokorora yakabatanidzwa kune kuvaka yekutanga counter.
Uine imwe nguva shoma, iwe unogona kugadzirisa iyo artifact kuti itumirwe kune yako yepakeji repository, Nexus, Artifactory, zvichingodaro.
Imwezve mukana ndeyekuti iyo yaml yekumisikidza faira inogona kubatana neAnsible kana imwe otomatiki yekumisikidza sisitimu, uye kubva ipapo tinogona kutora iyo vhezheni nhamba uye package mhando yatinoda kuendesa.
Chii chinotevera
Chirongwa hachisati chapera. Hezvino zvatiri kushandira izvozvi:
- Isu tinowedzera mukana wekugadzirisa, asi panguva imwechete chengetedza zviri nyore sezvinobvira. Iwe hausi kuda kutsanangura chiuru paramita kana iwe uchingoda maviri chete, uye mamwe anoenderana nekusarudzika. Izvi zvinosanganisira mireza yekubatanidza (ikozvino unogona kuishandura mukati meiyo faira yekumisikidza src/config.py), nzira yekuisa, uye kutanga mushandisi.
- Isu tiri kuwedzera sarudzo dzekutumira otomatiki pasuru kune akasiyana artifact repositories.
- Ita murairo wetsika paunenge uchiisa module (semuenzaniso, kushandisa
github.com/nginx-modules/nginx_upstream_check_module unofanira kutanga waisa chigamba cheimwe shanduro) - Kuwedzera bvunzo:
- Iyo package yakaiswa nemazvo.
- Nginx ine vhezheni inodiwa uye inovakwa neinodiwa mireza nemamodule.
- Nzira dzinodiwa, maakaunti, nezvimwe zvinogadzirwa.
Asi iwe unogona kushandisa chishandiso ichi izvozvi, uye zvakare kupa zano kuvandudza -
Source: www.habr.com