ProHoster > Blog > Stjórnsýsla > Hvernig á að tengja GitLab og Pantheon og fínstilla Drupal og WordPress vinnuflæði
Hvernig á að tengja GitLab og Pantheon og fínstilla Drupal og WordPress vinnuflæði
Höfundur gestahönnuðaverkfæra hjá Pantheon talar um hvernig eigi að gera sjálfvirkan WordPress uppsetningu með GitLab CI/CD.
В Pantheon Ég vinn í samskiptum þróunaraðila, svo ég er alltaf að leita að nýjum leiðum til að hjálpa WordPress og Drupal forriturum að leysa sjálfvirknivandamál í verkflæði sínu. Til að gera þetta finnst mér gaman að gera tilraunir með ný verkfæri og sameina þau hvert við annað til að virka á áhrifaríkan hátt.
Ég sé oft þróunaraðila í erfiðleikum með einn sviðsetningarþjón.
Það er svo ánægjulegt að bíða eftir að röðin komi að þér að nota millimiðlara eða senda viðskiptavinum vefslóð með athugasemdinni: „Sjáðu hér, en líttu ekki hingað ennþá.“
Multidev umhverfi - eitt af flottu Pantheon verkfærunum - leysir þetta vandamál, því með þeim er hægt að búa til umhverfi fyrir Git útibú á eftirspurn. Hvert multidev umhverfi hefur sína eigin vefslóð og gagnagrunn, þannig að forritarar geta unnið hljóðlega, athugað gæði og fengið samþykki án þess að stíga á tærnar hver á öðrum.
En Pantheon hefur ekki verkfæri fyrir útgáfustýringu eða samfellda samþættingu og uppsetningu (CI/CD). En það er sveigjanlegur vettvangur sem þú getur samþætt hvaða verkfæri sem er.
Ég tók líka eftir því að teymi nota ákveðin verkfæri til þróunar og mismunandi til samsetningar og dreifingar.
Til dæmis hafa þeir mismunandi verkfæri fyrir útgáfustýringu og CI/CD. Þú þarft að fikta og skipta á milli verkfæra til að breyta kóða og greina vandamál.
Á GitLab það er fullt sett af þróunarverkfærum: fyrir útgáfustýringu, miða, samrunabeiðnir, CI/CD leiðsla í flokki, gámaskrá og allt slíkt. Ég hef ekki enn rekist á forrit sem býður upp á svo mikið til að stjórna þróunarvinnuflæðinu þínu.
Ég elska sjálfvirkni, svo ég lærði hvernig á að tengja Pantheon við GitLab þannig að skuldbindingar til aðalútibúsins á GitLab séu sendar til aðalþróunarumhverfisins í Pantheon. Og samrunabeiðnir á GitLab geta búið til og dreift kóða í multidev umhverfi í Pantheon.
Í þessari kennslu mun ég leiða þig í gegnum hvernig á að setja upp tengingu milli GitLab og Pantheon og fínstilla WordPress og Drupal vinnuflæðið þitt.
Auðvitað er hægt, spegla GitLab geymslu, en við munum gera allt með höndum okkar til að kafa ofan í GitLab CI og í framtíðinni notaðu þetta tól ekki aðeins til dreifingar.
Inngangur
Fyrir þessa færslu þarftu að skilja að Pantheon skiptir hverri síðu niður í þrjá þætti: kóða, gagnagrunn og skrár.
Kóðinn inniheldur CMS skrár eins og WordPress kjarna, viðbætur og þemu. Þessum skrám er stjórnað í Git geymslur, hýst af Pantheon, sem þýðir að við getum sent kóða frá GitLab til Pantheon með Git.
Skrár í Pantheon eru fjölmiðlaskrár, það er myndir fyrir síðuna. Venjulega er þeim hlaðið upp af notendum og Git hunsar þá.
Verkefnið mitt um Pantheon og GitLab heitir pantheon-gitlab-blog-demo. Heiti verkefnisins verður að vera einstakt. Hér verður unnið með WordPress síðu. Þú getur tekið Drupal, en þú þarft að breyta nokkrum hlutum.
Ef þér klæjar í hendurnar að breyta einhverju, til dæmis að fjarlægja eða bæta við viðbótum, vertu þolinmóður. Síðan er ekki enn tengd við GitLab og við viljum að allar kóðabreytingar fari í gegnum GitLab.
Þegar við höfum sett upp WordPress, farðu aftur á Pantheon vefsíðustjórnborðið og breyttu þróunarstillingunni í Git.
Upphafleg skuldbinding á GitLab
Nú þarftu að flytja upphafs WordPress kóðann frá Pantheon síðunni til GitLab. Til að gera þetta klónum við kóðann úr Git geymslunni á Pantheon síðunni á staðnum og sendum hann síðan í GitLab geymsluna.
Nú skulum við breyta git remote originað benda á GitLab í stað Pantheon. Það er hægt að gera það командой git remote.
Við skulum fara í GitLab verkefnið og afrita slóð geymslunnar úr Clone fellilistanum á upplýsingasíðu verkefnisins. Við skulum velja Clone with SSH valkostinn, vegna þess að við höfum þegar stillt SSH lykilinn.
Sjálfgefið git remote fyrir staðbundið afrit af kóðageymslunni - origin. Þessu er hægt að breyta c git remote set-url origin [URL репозитория GitLab], þar sem við sláum inn raunverulega vefslóðina í stað sviga.
Að lokum leggjum við af stað git push origin master --forcetil að ýta WordPress kóða frá Pantheon til GitLab.
– Force valkosturinn er aðeins nauðsynlegur einu sinni. Síðan í liðum git push það verður ekki á GitLab.
Að setja upp skilríki og breytur
Manstu hvernig við bættum við SSH lykli á staðnum til að skrá þig inn á Pantheon og GitLab? Hægt er að nota SSH táknið til að heimila GitLab og Pantheon.
Við munum nú ljúka fyrstu tveimur skrefunum: Við skulum búa til nýtt SSH lyklapar á staðnum með ssh-keygen og bæta einkalyklinum sem breytu við verkefnið.
Þá spyrjum við SSH_PRIVATE_KEY sem GitLab CI/CD umhverfisbreyta í verkefnastillingunum.
Í þriðja og fjórða skrefi munum við búa til skrá .gitlab-ci.yml með efni eins og þessu:
Við skulum ekki skuldbinda skrána ennþá .gitlab-ci.yml, þá þarftu að bæta einhverju öðru við það.
Nú framkvæmum við fimmta skrefið og bættu opinbera lyklinum sem þú bjóst til í fyrsta skrefi við þjónustuna sem þú þarft aðgang að í byggingarumhverfinu.
Í okkar tilviki viljum við fá aðgang að Pantheon frá GitLab. Við fylgjum leiðbeiningunum í Pantheon skjalinu á að bæta SSH lykli við Pantheon og framkvæma þetta skref.
Mundu: einka SSH er í GitLab, opinn SSH er í Pantheon.
Við skulum setja upp nokkrar fleiri umhverfisbreytur. Sá fyrsti heitir PANTHEON_SITE. Gildi þess er nafn Pantheon-síðunnar á vélinni þinni.
Nafnið á vélinni er skráð í lok Clone with Git skipunarinnar. Þú hefur nú þegar klónað síðuna á staðnum, svo þetta verður nafnið á staðbundnu geymsluskránni.
Næst skulum við setja upp umhverfisbreytuna PANTHEON_GIT_URL. Þetta er slóð Git geymslunnar fyrir Pantheon síðuna sem við höfum þegar notað.
Sláðu aðeins inn SSH geymsluslóðina, án git clone og nafn síðunnar á vélinni í lokin.
Púff. Það er búið, nú getum við klárað skrána okkar .gitlab-ci.yml.
Búðu til dreifingarverkefni
Það sem við munum í upphafi gera með GitLab CI er mjög svipað því sem við höfum gert með Git geymslum í fortíðinni. En í þetta skiptið skulum við bæta Pantheon geymslunni við sem annarri ytri Git uppsprettu og ýta síðan kóðanum frá GitLab til Pantheon.
Til að gera þetta skulum við stilla stigideploy и verkefnideploy:dev, vegna þess að við munum dreifa til þróunarumhverfisins á Pantheon. Skráin sem myndast .gitlab-ci.yml mun líta svona út:
Variables SSH_PRIVATE_KEY, PANTHEON_SITE и PANTHEON_GIT_URL ætti að líta kunnuglega út - við settum upp þessar umhverfisbreytur fyrr. Með þessum breytum munum við geta notað gildin í skránni .gitlab-ci.yml mörgum sinnum og aðeins þarf að uppfæra þær á einum stað.
Að lokum skaltu bæta við, skuldbinda og senda skrána .gitlab-ci.yml á GitLab.
Athugar dreifinguna
Ef við gerðum allt rétt, verkefnið deploy:dev mun keyra með góðum árangri í GitLab CI/CD og leggja fram skuldbindingu .gitlab-ci.yml í Pantheon. Við skulum skoða.
Sendir þræði um sameiningarbeiðni til Pantheon
Hér munum við nota uppáhalds Pantheon eiginleikann minn - multidev, þar sem þú getur búið til viðbótar Pantheon umhverfi fyrir Git útibú á eftirspurn.
Aðgangur að multidev er takmarkaður, þannig að hægt er að sleppa þessum kafla. En ef þú hefur aðgang geturðu aukið framleiðni verulega með því að setja upp sjálfvirka stofnun fjölþróunarumhverfis á Pantheon frá GitLab samrunabeiðnum.
Fyrst skulum við búa til nýja Git útibú á staðnum með því að nota git checkout -b multidev-support. Nú skulum við breyta einhverju aftur í .gitlab-ci.yml.
Mér finnst gaman að láta sameiningarbeiðnina fylgja með í Pantheon umhverfinu nafninu. Til dæmis er fyrsta sameiningarbeiðnin mr-1, annað - mr-2 o.s.frv.
Samrunabeiðnin breytist, þannig að við þurfum að ákvarða nöfn Pantheon útibúanna á virkan hátt. Það er auðvelt á GitLab - þú þarft bara að nota fyrirfram skilgreindar umhverfisbreytur.
Við getum tekið $CI_MERGE_REQUEST_IIDtil að tilgreina sameiningarbeiðninúmerið. Við skulum beita þessu öllu ásamt alþjóðlegu umhverfisbreytunum sem við tilgreindum áðan og bæta við nýju deploy:multidev verkefni í lok skrárinnar .gitlab-ci.yml.
deploy:multidev:
stage: deploy
environment:
name: multidev/mr-$CI_MERGE_REQUEST_IID
url: https://mr-$CI_MERGE_REQUEST_IID-$PANTHEON_SITE.pantheonsite.io/
script:
# Checkout the merge request source branch
- git checkout $CI_COMMIT_REF_NAME
# Add the Pantheon git repository as an additional remote
- git remote add pantheon $PANTHEON_GIT_URL
# Push the merge request source branch to Pantheon
- git push pantheon $CI_COMMIT_REF_NAME:mr-$CI_MERGE_REQUEST_IID --force
only:
- merge_requests
Það verður svipað verkefni okkar deploy:dev, aðeins útibúið er sent til Pantheon, ekki til master.
Við höfum bætt við og framkvæmt uppfærðu skrána .gitlab-ci.yml, og nú skulum við ýta nýrri grein til GitLab með git push -u origin multidev-support.
Nú skulum við búa til nýja sameiningarbeiðni frá útibúinu multidev-supportmeð því að ýta á Búðu til sameiningarbeiðni.
Eftir að hafa búið til sameiningarbeiðni skoðum við hvernig CI/CD verkefnið er framkvæmt deploy:multidev.
Sko, nýr þráður hefur verið sendur til Pantheon. En ef við förum í multidev hlutann á Pantheon síðu mælaborðinu, munum við ekki sjá nýja umhverfið þar
Við skulum skoða Git Branches hlutann.
Þar af leiðandi þráðurinn okkar mr-1 kominn til Pantheon. Búum til umhverfi úr grein mr-1.
Við höfum búið til multidev umhverfi, nú skulum við fara aftur í GitLab og skoða hlutann Rekstur > Umhverfi. Við munum sjá færslur fyrir dev и mr-1.
Þetta er vegna þess að við bættum við færslu environment Með nafni name и url í CI/CD verkefni. Ef við smellum á opna umhverfistáknið munum við fara á slóð multidev umhverfisins á Pantheon.
Gerðu sjálfvirkan sköpun multidev
Í grundvallaratriðum geturðu hætt hér og muna bara eftir að búa til multidev umhverfi fyrir hverja samrunabeiðni, en þetta ferli er hægt að gera sjálfvirkt.
Pantheon er með skipanalínuverkfæri Terminus, þar sem þú getur unnið sjálfkrafa með pallinn. Terminus gerir þér kleift að búa til multidev umhverfi frá skipanalínunni - tilvalið fyrir GitLab CI.
Við þurfum nýja sameiningarbeiðni til að prófa þetta. Við skulum búa til nýja útibú með því að nota git checkout -b auto-multidev-creation.
Til að nota Terminus í GitLab CI/CD verkefnum þarftu vélamerki fyrir auðkenningu með Terminus og gámamynd með Terminus.
Að búa til Pantheon Machine Token, vistaðu það á öruggum stað og bættu því við sem alþjóðlegri umhverfisbreytu í GitLab með nafninu PANTHEON_MACHINE_TOKEN.
Ef þú hefur gleymt hvernig á að bæta við GitLab umhverfisbreytum skaltu fara aftur þangað sem við skilgreindum PANTHEON_SITE.
Að búa til Dockerfile með Terminus
Ef þú notar ekki Docker eða líkar ekki við skrár Dockerfile, taktu myndina mína registry.gitlab.com/ataylorme/pantheon-gitlab-blog-demo:latest og slepptu þessum kafla.
GitLab er með gámaskrá, þar sem við getum byggt og sett Dockerfile fyrir verkefnið okkar. Við skulum búa til Dockerfile með Terminus til að vinna með Pantheon.
Terminus er PHP skipanalínuverkfæri, svo við skulum byrja á PHP myndinni. Ég er að setja upp Terminus í gegnum Composer, svo ég mun nota opinber Docker Composer mynd. Við sköpum Dockerfile í staðbundinni geymsluskrá með eftirfarandi efni:
# Use the official Composer image as a parent image
FROM composer:1.8
# Update/upgrade apk
RUN apk update
RUN apk upgrade
# Make the Terminus directory
RUN mkdir -p /usr/local/share/terminus
# Install Terminus 2.x with Composer
RUN /usr/bin/env COMPOSER_BIN_DIR=/usr/local/bin composer -n --working-dir=/usr/local/share/terminus require pantheon-systems/terminus:"^2"
Fylgdu leiðbeiningunum um að setja saman og senda myndir úr hlutanum Búðu til og ýttu á myndir в gámaskrárskjöltil að safna mynd frá Dockerfile og ýttu því í GitLab.
Að opna hlutann Registry í GitLab verkefninu. Ef allt gekk að óskum verður ímynd okkar til staðar. Skrifaðu niður tengil á myndamerkið - við þurfum það fyrir skrána .gitlab-ci.yml.
Kafli script í vandanum deploy:multidev er farin að stækka, svo við skulum færa það í sérstaka skrá. Búðu til nýja skrá private/multidev-deploy.sh:
#!/bin/bash
# Store the mr- environment name
export PANTHEON_ENV=mr-$CI_MERGE_REQUEST_IID
# Authenticate with Terminus
terminus auth:login --machine-token=$PANTHEON_MACHINE_TOKEN
# Checkout the merge request source branch
git checkout $CI_COMMIT_REF_NAME
# Add the Pantheon Git repository as an additional remote
git remote add pantheon $PANTHEON_GIT_URL
# Push the merge request source branch to Pantheon
git push pantheon $CI_COMMIT_REF_NAME:$PANTHEON_ENV --force
# Create a function for determining if a multidev exists
TERMINUS_DOES_MULTIDEV_EXIST()
{
# Stash a list of Pantheon multidev environments
PANTHEON_MULTIDEV_LIST="$(terminus multidev:list ${PANTHEON_SITE} --format=list --field=id)"
while read -r multiDev; do
if [[ "${multiDev}" == "$1" ]]
then
return 0;
fi
done <<< "$PANTHEON_MULTIDEV_LIST"
return 1;
}
# If the mutltidev doesn't exist
if ! TERMINUS_DOES_MULTIDEV_EXIST $PANTHEON_ENV
then
# Create it with Terminus
echo "No multidev for $PANTHEON_ENV found, creating one..."
terminus multidev:create $PANTHEON_SITE.dev $PANTHEON_ENV
else
echo "The multidev $PANTHEON_ENV already exists, skipping creating it..."
fi
Handritið er í einkaskrá og leyfir ekki vefaðgang að Pantheon. Við höfum handrit fyrir multidev rökfræði okkar. Við skulum nú uppfæra kaflann deploy:multidev skrá .gitlab-ci.ymlþannig að þetta kemur svona út:
Við þurfum að ganga úr skugga um að verkefni okkar séu unnin í sérsniðnu myndinni, svo við skulum bæta við skilgreiningu image frá vefslóð skrásetningar til .gitlab-ci.yml. Fyrir vikið enduðum við með svona skrá .gitlab-ci.yml:
Bæta við, skuldbinda og senda private/multidev-deploy.sh и .gitlab-ci.yml. Nú snúum við aftur til GitLab og bíðum eftir að CI/CD verkefninu ljúki. Vertu þolinmóður: multidev getur tekið nokkrar mínútur að búa til.
Svo förum við að skoða multidev listann á Pantheon. Ó kraftaverk! Multidev umhverfi mr-2 þegar hér.
Ályktun
Liðið mitt skemmti sér miklu betur þegar við byrjuðum að opna sameiningarbeiðnir og búa til umhverfi sjálfkrafa.
Með öflugum verkfærum GitLab og Pantheon geturðu tengt GitLab við Pantheon sjálfkrafa.
Þar sem við notum GitLab CI/CD mun vinnuflæðið okkar hafa pláss til að vaxa. Hér eru nokkrar hugmyndir til að koma þér af stað:
Bættu við byggingarstigi.
Bættu við sjálfvirkum prófunum.
Bættu við verkefni til að tryggja að kóðastaðlar séu uppfylltir.
Við hjá Pantheon höfum unnið gott starf í útgáfu 2 af okkar viðbót fyrir Terminus smíðaverkfæri með GitLab stuðningi. Ef þú vilt ekki skipta þér af stillingum fyrir hvert verkefni, prófaðu þessa viðbót og hjálpaðu okkur að prófa v2 beta. Fyrir Terminus liðið build:project:create Þú þarft aðeins Pantheon tákn og GitLab tákn. Hún mun senda inn eitt af sýnishornsverkefnunum með Composer og sjálfvirkum prófunum, búa til nýtt verkefni í GitLab, nýrri Pantheon síðu, og tengja þau með umhverfisbreytum og SSH lyklum.
Um höfundinn
Andrew Taylor býr til verkfæri fyrir forritara í Pantheon.