Gan fod buildbot yn system ddosbarthedig, byddai'n rhesymegol creu gwesteiwr adeiladu ar wahΓ’n ar gyfer pob pensaernΓ―aeth a system weithredu. Yn ein hachos ni, cynwysyddion LXC fydd y rhain (yn achos Linux) a qemu (yn achos Windows):
vm-srv-build1 - centos 7, bydd meistr buildbot ac un o'r gweithwyr
vm-srv-build2 - debian 10, ar gyfer adeiladu pecynnau DEB
vm-srv-build3 - ffenestri 10, ar gyfer cydosod, rydych chi'n gwybod beth i'w wneud
Byddwn yn casglu GUI Rac - rhyngwyneb graffigol ar gyfer 1C rac ar gyfer rheoli clwstwr o weinyddion. Ar gyfer Linux, bydd offer safonol ar gyfer pob OS yn cael eu defnyddio; i adeiladu ffeil exe ar gyfer Windows o sgript tcl, defnyddiwch rhyddwrap.
Gosod
GNU / Linux
Mae digon o ddogfennaeth ar y Rhyngrwyd ar gyfer gosod 1,2. Ydy, ac nid yw'n achosi unrhyw broblemau arbennig:
Ar gyfer y meistr:
Wrth gwrs, byddai'n fwy cywir casglu pecynnau ar gyfer pob OS, ond mae hyn y tu hwnt i gwmpas yr erthygl. Byddwn hefyd yn hepgor y disgrifiad o sefydlu cynwysyddion ar gyfer gwaith, ni fyddaf ond yn nodi fy mod yn defnyddio ProxMox VE. A bydd angen i chi hefyd osod pecynnau ar gyfer pob echel sy'n ofynnol ar gyfer cydosod (centos: rpmdevtools, ac ati; debian: build-essential, dh-make, pbuilder, ac ati)
Bydd prosiectau adeiladu a gwasanaethau buildbot yn cael eu lansio fel defnyddiwr di-freintiedig, felly mae angen i chi greu un ar gyfer pob gwesteiwr sy'n cymryd rhan yn y broses:
adduser buildbot
Nesaf, byddwn yn ffurfweddu lansiad awtomatig gwasanaethau, yn y drefn honno, ar bob un o'r gwesteiwyr (cynwysyddion):
Ar Γ΄l hyn, gallwch greu seilwaith cyfeiriadur ar gyfer βgweithwyrβ (ar bob gwesteiwr), i wneud hyn, cofrestru o dan y defnyddiwr buildbot a rhedeg y gorchmynion canlynol:
Ar y gwesteiwr cyntaf vm-srv-build1:
su - buildbot
mkdir /home/buildbot/worker
cd ~
buildbot-worker create-worker --umask=0o22 --keepalive=60 worker vm-srv-build1:4000 CentOS 123456
Ar yr ail westeiwr vm-srv-build2:
su - buildbot
mkdir /home/buildbot/worker
cd ~
buildbot-worker create-worker --umask=0o22 --keepalive=60 worker vm-srv-build1:4000 Debian-10 123456
Ar westeion gweithwyr, gellir cychwyn y gwasanaeth buildbot-worker
systemctl start buildbot-worker
MS Windows
Fel βgweithiwrβ ar gyfer cydosod o dan Windows, bydd peiriant rhithwir gyda'r datganiad diweddaraf o Win10 yn cael ei ddefnyddio.
I weithio bydd angen:
Ar Γ΄l gosod yr uchod i gyd, gallwch chi osod y buildbot ei hun:
pip install buildbot-worker
Gadewch i ni greu cyfeiriadur gweithio
md c:worker
A gadewch i ni lansio
buildbot-worker start c:worker
Os yw popeth yn gweithio (gweler log c:workertwistd.log), yna gallwch gofrestru ein βgweithiwrβ fel gwasanaeth trwy ychwanegu eitem gyda'r cyfeiriadur gweithio i'r gofrestrfa (gweithredir gorchmynion yn y plisgyn pwerau sy'n rhedeg fel gweinyddwr):
Dyna i gyd gyda'r βgweithwyrβ, does dim rhaid i chi gyffwrdd Γ’ nhw ymhellach, daw'r holl reolaeth gan y meistr.
Gosodiad Dewin
I ddechrau, gadewch i ni greu'r seilwaith ar gyfer y meistr (ar y prif westeiwr), i wneud hyn, cofrestrwch o dan y defnyddiwr buildbot a rhedeg y gorchmynion canlynol:
su - buildbot
mkdir /home/buildbot/master
cd ~
buildbot create-master master
Ar gyfer pecynnau parod, crΓ«wch gyfeiriadur adeiladu
mkdir /home/buildbot/builds
CrΓ«wyd ffeil master.cfg yn y /home/buildbot/master/ directory. Cod python yw'r ffeil hon ac mae'n cynnwys disgrifiad o holl fecanweithiau'r system; byddwn yn gweithio gydag ef yn y dyfodol.
Er mwyn awtomeiddio cydosod pecynnau o wahanol fersiynau, er mwyn peidio Γ’ gorfod ymchwilio i god y ffeil master.cfg, ym mhrif sgript y rhaglen rac_gui.tcl, ychwanegwyd llinellau gyda'r fersiwn gyfredol a'r datganiad yn y pennawd :
Ac yn seiliedig ar y llinellau hyn, bydd buildbot yn rhifo'r pecynnau. I echdynnu data, defnyddiwch alwad grep y consol. Yn buildbot, ni allwch ddiffinio newidynnau ar gyfer βgweithwyrβ (o leiaf, nid wyf wedi darganfod sut). Ar gyfer hyn y defnyddir eiddo. Y rhai. Yn y broses ymgynnull, rydym yn ychwanegu camau i bennu'r fersiwn a'r rhyddhau ac, yn unol Γ’ hynny, yn gosod y fersiwn a'r eiddo rhyddhau. Gellir gosod priodweddau mewn gwahanol ffyrdd, yn yr achos hwn trwy alw'r gorchymyn consol:
Dylid nodi yma, gan fod y gwesteiwr hefyd yn cael ei ddefnyddio ar gyfer cydosod pecynnau Γ’ llaw, bydd y cynulliad yn digwydd ar hyd llwybrau safonol.
I osod y rhifau rhyddhau a fersiwn cywir, defnyddiwch alwad sed safonol, h.y. mae'r gorchymyn yn disodli'r gwerthoedd y tu mewn i'r ffeil fanyleb gyda'r rhai gofynnol
Rydym yn copΓ―o'r pecyn gorffenedig a'r archif gyda ffynonellau i'r meistr. Ond gallwch chi gopΓ―o ffeiliau ar unwaith o'ch ffeil waith i'ch storfa neu wefan.
Dyna ni gyda RPM. Nawr, gadewch i ni ddechrau disgrifio'r algorithm ar gyfer adeiladu pecyn DEB. Gan fod y prosesau ar gyfer adeiladu pecynnau ar gyfer systemau gwahanol yn annibynnol ar ei gilydd, bydd llawer o gamau'n cael eu hailadrodd.
Ar gyfer pecyn RPM, mae'r rpm ei hun yn gwneud rhai o'r gweithdrefnau canlynol yn ystod y gwasanaeth ac fe'u disgrifir y tu mewn i'r fanyleb; ar gyfer Debian, mae'n rhaid i chi ei wneud yma:
Arbedwch y ffeil a gallwch geisio cychwyn y gwasanaeth dewin:
systemctl restart buildbot-master
Yn y log byddwn yn gwirio bod popeth mewn trefn gyda'r ffurfwedd a bod popeth yn gweithio fel arfer. Dylai ein holl weithwyr gysylltu nawr, a bydd hyn yn cael ei adrodd yn hapus yn y log »»'/home/buildbot/master/twistd.log»»':
2019-07-24 16:50:35+0300 [-] Loading buildbot.tac...
2019-07-24 16:50:35+0300 [-] Loaded.
2019-07-24 16:50:35+0300 [-] twistd 19.2.1 (/usr/bin/python3.6 3.6.8) starting up.
2019-07-24 16:50:35+0300 [-] reactor class: twisted.internet.epollreactor.EPollReactor.
2019-07-24 16:50:35+0300 [-] Starting BuildMaster -- buildbot.version: 2.3.1
2019-07-24 16:50:35+0300 [-] Loading configuration from '/home/buildbot/master/master.cfg'
2019-07-24 16:50:36+0300 [-] /usr/local/lib/python3.6/site-packages/buildbot/config.py:90: buildbot.config.ConfigWarning: [0.9.0 and later] `buildbotNetUsageData` is not configured and defaults to basic.
This parameter helps the buildbot development team to understand the installation base.
No personal information is collected.
Only installation software version info and plugin usage is sent.
You can `opt-out` by setting this variable to None.
Or `opt-in` for more information by setting it to "full".
2019-07-24 16:50:36+0300 [-] Setting up database with URL 'sqlite:/state.sqlite'
2019-07-24 16:50:36+0300 [-] setting database journal mode to 'wal'
2019-07-24 16:50:36+0300 [-] adding 1 new services, removing 0
2019-07-24 16:50:36+0300 [-] adding 1 new change_sources, removing 0
2019-07-24 16:50:36+0300 [-] gitpoller: using workdir '/home/buildbot/master/gitpoller-work'
2019-07-24 16:50:36+0300 [-] adding 3 new builders, removing 0
2019-07-24 16:50:36+0300 [-] adding 1 new schedulers, removing 0
2019-07-24 16:50:36+0300 [-] initializing www plugin 'waterfall_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'console_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'grid_view'
2019-07-24 16:50:36+0300 [-] NOTE: www plugin 'sitenav' is installed but not configured
2019-07-24 16:50:36+0300 [-] initializing www plugin 'waterfall_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'console_view'
2019-07-24 16:50:36+0300 [-] initializing www plugin 'grid_view'
2019-07-24 16:50:36+0300 [-] NOTE: www plugin 'sitenav' is installed but not configured
2019-07-24 16:50:36+0300 [-] BuildbotSite starting on 80
2019-07-24 16:50:36+0300 [-] Starting factory <buildbot.www.service.BuildbotSite object at 0x7fe31c2657b8>
2019-07-24 16:50:36+0300 [-] adding 3 new workers, removing 0
2019-07-24 16:50:36+0300 [-] PBServerFactory starting on 4000
2019-07-24 16:50:36+0300 [-] Starting factory <twisted.spread.pb.PBServerFactory object at 0x7fe31c147470>
2019-07-24 16:50:37+0300 [-] BuildMaster is running
2019-07-24 16:50:37+0300 [-] buildbotNetUsageData: sending {'installid': 'b6193b126b96689351d2fe95787c5a03fc0879f9', 'versions': {'Python': '3.6.8', 'Buildbot': '2.3.1', 'Twisted': '19.2.1'}, 'platform': {'platform': 'Linux-4.15.18-10- pve-x86_64-with-centos-7.6.1810-Core', 'system': 'Linux', 'machine': 'x86_64', 'processor': 'x86_64', 'python_implementation': 'CPython', 'version': '#1 SMP PVE 4.15.18-32', 'distro': 'centos:7'}, 'plugins': {'buildbot/worker/base/Worker': 3, 'buildbot/config/BuilderConfig': 3, 'buildbot/schedulers/basic/SingleBranchScheduler': 1, 'buildbot/reporters/mail/MailNotifier': 1, 'buildbot/changes/gitpoller/GitPoller': 1, 'buildbot/steps/worker/MakeDirectory': 1, 'buildbot/steps/source/git/Git': 3, 'buildbot/steps/shell/ShellCommand': 9, 'buildbot/steps/package/rpm/rpmbuild/RpmBuild': 1}, 'db': 'sqlite', 'mq': 'simple', 'www_plugins': ['waterfall_view', 'console_view', 'grid_view']}
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] worker 'CentOS' attaching from IPv4Address(type='TCP', host='127.0.0.1', port=37332)
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] Got workerinfo from 'CentOS'
2019-07-24 16:50:37+0300 [-] bot attached
2019-07-24 16:50:37+0300 [Broker,0,127.0.0.1] Worker CentOS attached to Rac-GUI-RPM-builder
2019-07-24 16:50:37+0300 [-] buildbotNetUsageData: buildbot.net said: ok
2019-07-24 16:50:39+0300 [Broker,1,192.168.55.15] worker 'Windows-10' attaching from IPv4Address(type='TCP', host='192.168.5.145', port=49831)
2019-07-24 16:50:39+0300 [Broker,1,192.168.55.15] Got workerinfo from 'Windows-10'
2019-07-24 16:50:40+0300 [-] bot attached
2019-07-24 16:50:40+0300 [Broker,1,192.168.55.15] Worker Windows-10 attached to Rac-GUI-WIN-builder
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] worker 'Debian-10' attaching from IPv4Address(type='TCP', host='192.168.5.9', port=44430)
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] Got workerinfo from 'Debian-10'
2019-07-24 16:50:41+0300 [-] bot attached
2019-07-24 16:50:41+0300 [Broker,2,192.168.55.99] Worker Debian-10 attached to Rac-GUI-DEB-builder
Mae hyn yn cwblhau'r broses gosod. Gallwch weld y statws cyfredol trwy'r rhyngwyneb gwe. Lle gallwch hefyd weld gwallau adeiladu, ciciwch broses wedi'i rhewi os aeth rhywbeth o'i le, ac ati.
Yn syth ar Γ΄l y lansiad, gellir gweld ein gweithwyr caled trwy'r ddewislen βAdeiladauβ -> βGweithwyrβ
Ar Γ΄l i'r broses adeiladu gyntaf gael ei chwblhau (h.y. newidiadau i'r ystorfa Git), bydd statws y prosesau yn ymddangos ar y dudalen gyntaf.
Os cliciwch ar y llinell a ddymunir gyda'r llygoden, bydd tudalen yn agor gyda chyflwr presennol y broses hon, lle gallwch weld beth sy'n digwydd, pa wallau, ac ati.