{"id":97895,"date":"2020-10-23T02:42:12","date_gmt":"2020-10-23T00:42:12","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd"},"modified":"2020-10-23T02:42:12","modified_gmt":"2020-10-23T00:42:12","slug":"kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","title":{"rendered":"Hvordan bruge HashiCorp Waypoint til samarbejde med GitLab CI\/CD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Hvordan bruge HashiCorp Waypoint til samarbejde med GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/eb34af0fa0526faea00bbd79e281d0ad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>HashiCorp har pr\u00e6senteret et nyt projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/\">Waypoint<\/a><\/noindex> og f\u00e5 en fungerende kommando. <noindex><a rel=\"nofollow\" href=\"https:\/\/digital.hashiconf.com\/login\">HashiCorp Digital<\/a><\/noindex>. Det bruger en HCL-baseret fil til at beskrive bygning, levering og frigivelse af applikationer til forskellige cloud-platforme, fra Kubernetes til AWS og Google Cloud Run. Waypoint kan t\u00e6nkes som en kombination af Terraform og Vagrant til at beskrive processen for bygning, levering og frigivelse af dine applikationer.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Uden at \u00e6ndre sig selv, har HashiCorp udgivet Waypoint med open source, og der f\u00f8lger en r\u00e6kke eksempler med. Niveauet for orkestratoren er op til dig, Waypoint leveres som en eksekverbar fil, som du kan k\u00f8re direkte p\u00e5 din b\u00e6rbare computer eller fra det CI\/CD-v\u00e6rkt\u00f8j, du v\u00e6lger. M\u00e5let for udrulning af applikationer v\u00e6lges ogs\u00e5 af dig, da Waypoint underst\u00f8tter Kubernetes, Docker, Google Cloud Run, AWS ECS og andre.<\/p>\n<p><\/p>\n<p>Efter at have l\u00e6st de fantastiske <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\">dokumentationen<\/a><\/noindex> og imponerende <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hashicorp\/waypoint-examples\">eksempler<\/a><\/noindex> applikationer, der er tilg\u00e6ngelige fra HashiCorp, besluttede vi at tage et n\u00e6rmere kig p\u00e5 orkestrationen af Waypoint ved hj\u00e6lp af GitLab CI\/CD. For at g\u00f8re dette vil vi tage en simpel Node.js-applikation, der k\u00f8rer p\u00e5 AWS ECS, fra eksempelsamlingen.<\/p>\n<p><\/p>\n<p>Efter at have klonet repositoryet vil vi se p\u00e5 strukturen af applikationen, der viser \u00e9n side:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan bruge HashiCorp Waypoint til samarbejde med GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/231bd4112523a05be12f8b15bec2652d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Som du m\u00e5ske har bem\u00e6rket, er der ikke noget Dockerfile i dette projekt. De er ikke tilf\u00f8jet i eksemplet, da de ikke er n\u00f8dvendige for os, da Waypoint vil tage sig af dem for os. Lad os se n\u00e6rmere p\u00e5 filen <code>waypoint.hcl<\/code>, for at forst\u00e5, hvad den vil g\u00f8re:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">projekt = \"example-nodejs\"\n\napp \"example-nodejs\" {\n  labels = {\n    \"service\" = \"example-nodejs\",\n    \"env\" = \"dev\"\n  }\n\n  build {\n    use \"pack\" {}\n    registry {\n    use \"aws-ecr\" {\n        region = \"us-east-1\"\n        repository = \"waypoint-gitlab\"\n        tag = \"latest\"\n    }\n    }\n  }\n\n  deploy {\n    use \"aws-ecs\" {\n    region = \"us-east-1\"\n    memory = \"512\"\n    }\n  }\n}<\/code><\/pre>\n<p><\/p>\n<p>P\u00e5 byggetrinnet bruger Waypoint Cloud Native Buildpacks (<noindex><a rel=\"nofollow\" href=\"https:\/\/buildpacks.io\/\">CNB<\/a><\/noindex>), for at bestemme programmeringssproget for projektet og oprette et Docker-billede uden brug af Dockerfile. Grundl\u00e6ggende er det den samme teknologi, som GitLab bruger til <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/topics\/autodevops\/\">som standard.<\/a><\/noindex> ved trin Auto Build. Det er dejligt at se, at CNB fra CNCF f\u00e5r mere og mere udbredelse blandt branchens brugere.<\/p>\n<p><\/p>\n<p>S\u00e5 snart billedet er bygget, vil Waypoint automatisk uploade det til vores AWS ECR-register, s\u00e5 det er klart til levering. Efter bygningen bruger leveringsfasen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/plugins\/aws-ecs\">AWS ECS-udvidelsen<\/a><\/noindex> til at udrul vores applikation i vores AWS-konto.<\/p>\n<p><\/p>\n<p>Fra min b\u00e6rbare computer er alt enkelt. Jeg installerer Waypoint, som allerede er godkendt i min AWS-konto, og det \"bare fungerer\". Men hvad nu hvis jeg \u00f8nsker at g\u00e5 ud over min b\u00e6rbare computer? Eller hvis jeg pludselig vil automatisere denne implementering som en del af min samlede CI\/CD-pipeline, hvor mine nuv\u00e6rende integrationstests, sikkerhedstests og andre k\u00f8rer? Det er her GitLab CI\/CD kommer ind i billedet!<\/p>\n<p><\/p>\n<blockquote><p><strong>N.B.<\/strong> Hvis du lige planl\u00e6gger implementeringen af CI\/CD eller \u00f8nsker at begynde at anvende bedste praksis for opbygning af pipelines, tjek den nye Sl\u00f8yrm kursus. <noindex><a rel=\"nofollow\" href=\"https:\/\/slurm.io\/ci-cd?utm_source=habr&amp;utm_medium=promo&amp;utm_campaign=cicd-videocourse&amp;utm_content=post_22-20-2020&amp;utm_term=demkovich\">\"CI\/CD med eksempel p\u00e5 GitLab CI\"<\/a><\/noindex>. Det er nu tilg\u00e6ngeligt til en forudbestillingspris. <\/p><\/blockquote>\n<p><\/p>\n<h2 id=\"waypoint-v-gitlab-cicd\">Waypoint i GitLab CI\/CD<\/h2>\n<p><\/p>\n<p>For at orkestrere alt dette i GitLab CI\/CD lad os se p\u00e5, hvad vi har brug for i vores fil. <code>.gitlab-ci.yml<\/code>:<\/p>\n<p><\/p>\n<ul>\n<li>F\u00f8rst og fremmest har vi brug for et grundl\u00e6ggende billede til at k\u00f8re inde i. Waypoint fungerer p\u00e5 enhver Linux-distribution, den kr\u00e6ver kun Docker, s\u00e5 vi kan starte med et generisk Docker-billede.<\/li>\n<li>Dern\u00e6st skal vi installere Waypoint i dette billede. I fremtiden kan vi samle <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/blog\/2019\/08\/28\/building-build-images\/\">meta build billede<\/a><\/noindex> og containerisere denne proces for os selv.<\/li>\n<li>Endelig vil vi k\u00f8re Waypoint-kommandoer.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ovenfor er alt beskrevet, hvad vores pipeline har brug for for at k\u00f8re de n\u00f8dvendige scripts til at udf\u00f8re implementeringen, men til implementering i AWS har vi brug for en ting mere: vi skal autorisere os i vores AWS-konto. I Waypoint-beskrivelsen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/roadmap\">er der planer<\/a><\/noindex> for autentificering og autorisering. HashiCorp har ogs\u00e5 frigivet et imponerende projekt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.boundaryproject.io\/\">Boundary<\/a><\/noindex>. Men indtil videre kan vi bare tage og h\u00e5ndtere autentificeringen og autoriseringen selv.<\/p>\n<p><\/p>\n<p>Til autentificering af GitLab CICD i AWS er der flere muligheder. Den f\u00f8rste mulighed er at bruge den indbyggede <noindex><a rel=\"nofollow\" href=\"https:\/\/www.vaultproject.io\/\">HashiCorp Vault<\/a><\/noindex>. Det vil v\u00e6re passende, hvis dit team allerede bruger Vault til at administrere legitimationsoplysninger. En anden metode, der passer, hvis dit team h\u00e5ndterer autorisering gennem AWS IAM - tjek at leveringsopgaverne k\u00f8rer gennem <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/runner\/\">GitLab Runner<\/a><\/noindex>, autoriseret til at udf\u00f8re implementeringer gennem IAM. Men hvis du blot vil l\u00e6re Waypoint at kende og vil g\u00f8re det hurtigere, er der en sidste mulighed - at tilf\u00f8je dine AWS API-n\u00f8gler og hemmelige n\u00f8gler i <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/\">GitLab CI\/CD milj\u00f8variabler<\/a><\/noindex> <code>AWS_ACCESS_KEY_ID<\/code> og <code>AWS_SECRET_ACCESS_KEY<\/code>.<\/p>\n<p><\/p>\n<h2 id=\"sobiraem-vse-vmeste\">Samler det hele<\/h2>\n<p><\/p>\n<p>N\u00e5r vi har styr p\u00e5 autentificeringen, kan vi begynde! Vores endelige <code>.gitlab-ci.yml<\/code> ser s\u00e5dan ud:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">waypoint:\n  image: docker:latest\n  stage: build\n  services:\n    - docker:dind\n  # Defin\u00e9r milj\u00f8variabler, f.eks. `WAYPOINT_VERSION: '0.1.1'`\n  variables:\n    WAYPOINT_VERSION: ''\n    WAYPOINT_SERVER_ADDR: ''\n    WAYPOINT_SERVER_TOKEN: ''\n    WAYPOINT_SERVER_TLS: '1'\n    WAYPOINT_SERVER_TLS_SKIP_VERIFY: '1'\n  script:\n    - wget -q -O \/tmp\/waypoint.zip https:\/\/releases.hashicorp.com\/waypoint\/${WAYPOINT_VERSION}\/waypoint_${WAYPOINT_VERSION}_linux_amd64.zip\n    - unzip -d \/usr\/local\/bin \/tmp\/waypoint.zip\n    - rm -rf \/tmp\/waypoint*\n    - waypoint init\n    - waypoint build\n    - waypoint deploy\n    - waypoint release<\/code><\/pre>\n<p><\/p>\n<p>Du ser, at vi starter med billedet <code>docker:latest<\/code> og s\u00e6tter nogle milj\u00f8variabler, som Waypoint kr\u00e6ver. I sektionen <code>script<\/code> henter vi den seneste version af Waypoint eksekverbar fil og installerer den i <code>\/usr\/local\/bin<\/code>. Da vores runner allerede er godkendt i AWS, k\u00f8rer vi blot <code>waypoint init<\/code>, <code>build<\/code>, <code>deploy<\/code> og <code>release<\/code>.<\/p>\n<p><\/p>\n<p>Udgangen fra build-opgaven vil vise os endpointet, hvor vi har implementeret applikationen:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Hvordan bruge HashiCorp Waypoint til samarbejde med GitLab CI\/CD\" src=\"\/wp-content\/uploads\/2020\/10\/be41d5e61b91bdfc1442f239fe99f013.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Waypoint er en af <noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/solutions\/hashicorp\/\">mange l\u00f8sninger fra HashiCorp,<\/a><\/noindex>som fungerer glimrende sammen med GitLab. For eksempel kan vi, ud over implementeringen af applikationen, orkestrere den underliggende infrastruktur ved hj\u00e6lp af <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/user\/infrastructure\/\">Terraform i GitLab.<\/a><\/noindex>For standardisering af sikkerhed i SDLC kan vi ogs\u00e5 integrere <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.gitlab.com\/ee\/ci\/examples\/authenticating-with-hashicorp-vault\/\">GitLab med Vault<\/a><\/noindex> til at h\u00e5ndtere hemmeligheder og tokens i CI\/CD pipelines, hvilket giver en samlet l\u00f8sning for udviklere og administratorer, der er afh\u00e6ngige af hemmelighedsh\u00e5ndtering under udvikling, test og produktion.<\/p>\n<p><\/p>\n<p>Samarbejds l\u00f8sninger udviklet af HashiCorp og GitLab hj\u00e6lper virksomheder med at finde den bedste m\u00e5de at udvikle applikationer p\u00e5, hvilket sikrer konsekvent management af leveringsstreams og infrastruktur. Waypoint tog endnu et skridt i den rigtige retning, og vi ser frem til yderligere udvikling af projektet. Du kan l\u00e6se mere om Waypoint <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/\">her<\/a><\/noindex>, det er ogs\u00e5 v\u00e6rd at unders\u00f8ge <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\">dokumentationen<\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/roadmap\">udviklingsplan<\/a><\/noindex> projektet. Vi har tilf\u00f8jet den viden, vi har opn\u00e5et, til <noindex><a rel=\"nofollow\" href=\"https:\/\/www.waypointproject.io\/docs\/automating-execution\/gitlab-cicd\">GitLab CICD dokumentationen.<\/a><\/noindex>Hvis du vil pr\u00f8ve alt i praksis selv, kan du finde et komplet fungerende eksempel i <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/brendan-demo\/waypoint\">denne repository.<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>For at forst\u00e5 principperne bag CI\/CD, mestre alle nuancerne ved at arbejde med GitLab CI og begynde at anvende bedste praksis, kan du tage videokurset <noindex><a rel=\"nofollow\" href=\"https:\/\/slurm.io\/ci-cd?utm_source=habr&amp;utm_medium=promo&amp;utm_campaign=cicd-videocourse&amp;utm_content=post_22-20-2020&amp;utm_term=demkovich\">\"CI\/CD med eksempel p\u00e5 GitLab CI\"<\/a><\/noindex>. Kom med!<\/p>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/524486\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>HashiCorp \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 Waypoint \u043d\u0430 HashiCorp Digital. \u041e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 HCL \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u043e\u0442 Kubernetes \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044f AWS \u0438 Google Cloud Run. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e Waypoint \u2014 \u044d\u0442\u043e \u0441\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 Terraform \u0438 Vagrant \u0434\u043b\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0431\u043e\u0440\u043a\u0438, \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u0430 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97896,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97895","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HashiCorp Waypoint \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI\/CD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-23T00:42:12+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-23T00:42:12+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hvordan man bruger HashiCorp Waypoint til samarbejde med GitLab CI\/CD | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c HashiCorp Waypoint \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI\/CD | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/kak-ispolzovat-hashicorp-waypoint-dlya-sovmestnoj-raboty-s-gitlab-ci-cd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-23T00:42:12+00:00","article:modified_time":"2020-10-23T00:42:12+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97895","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:11:01","updated":"2022-09-28 20:42:44","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/97895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=97895"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/97895\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/97896"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=97895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=97895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=97895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}