Салом! Номи ман Дима, ман роҳбари техникии дастаи SysOps дар Wrike ҳастам. Дар ин мақола ман ба шумо мегӯям, ки чӣ гуна як вебсайтро дар 10 дақиқа ва 5 доллар дар як моҳ то ҳадди имкон ба корбар наздик созед ва густариши онро автоматӣ кунед. Мақола бо мушкилоте, ки мо дар дохили дастаи худ ҳал мекунем, қариб ҳеҷ иртиботе надорад. Ин таҷрибаи шахсии ман ва таассуроти шиносоӣ бо технологияи барои ман нав аст. Ман кӯшиш кардам, ки қадамҳоро то ҳадди имкон муфассал тавсиф кунам, то дастурҳо барои одамони дорои таҷрибаи гуногун муфид бошанд. Умедворам, ки шумо лаззат мебаред. Бирав!
Пас, шояд шумо аллакай роҳи содда ва арзони мизбони вебсайтро пайдо кардаед. Шояд ҳатто ройгон, тавре ки дар ин тавсиф шудааст
Аммо ногаҳон шумо ҳанӯз дилгир ҳастед ва мехоҳед ба ҷаҳони нави ҷасуронаи технология даст занед? Фарз мекунем, ки шумо дар бораи автоматикунонии ҷойгиркунӣ фикр мекунед ва мехоҳед сайти худро то ҳадди имкон суръат бахшед? Дар ин мақола мо истифода хоҳем кард
Мо Gitlab CI/CD-ро барои автоматизатсия истифода мебарем, аммо дар бораи суръатбахшӣ чӣ гуфтан мумкин аст? Биёед сайтро мустақиман ба Cloudflare истифода барем
Барои оғоз кардан чӣ лозим аст:
-
Gitlab (худи худ ё
абрнок ) -
Ҳисоби дар Cloudflare -
Насб карда шудааст
nodejs/npm
Қисми 1: Насб кардани Ҳуго
Агар шумо аллакай Ҳуго насб карда бошед, ё агар шумо генератори сайти статикии дигарро афзалтар донед (ё онро умуман истифода набаред), шумо метавонед ин қисмро гузаред.
-
Ҳугоро аз зеркашӣ кунед
https://github.com/gohugoio/hugo/releases -
Мо файли иҷрошавандаи Ҳугоро мувофиқи яке аз файлҳои дар
ПАТШ роххо -
Эҷоди сайти нав:
hugo new site blog.example.com
-
Феҳристи ҷорӣро ба каталоги навтаъсис иваз кунед:
cd blog.example.com
-
Мавзӯи тарроҳиро интихоб кунед (
https://github.com/budparr/gohugo-theme-ananke/releases ё ҳар чӣ) -
Биёед паёми аввалро эҷод кунем:
hugo new posts/my-amazing-post.md
-
Ба файли сохташуда мундариҷа илова кунед: content/posts/my-amazing-post.md.
Вақте ки ҳама чиз иҷро мешавад, арзиши лоиҳаро ба он тағир диҳед бардурӯғ -
Эҷоди файлҳои статикӣ:
hugo -D
Ҳоло сайти статикии мо дар дохили директория ҷойгир аст ./ҷамъиятӣ ва барои ҷойгиркунии аввалини дастӣ омодаед.
Қисми 2: Танзими Cloudflare
Акнун биёед ба танзимоти ибтидоии Cloudflare назар андозем. Фарз мекунем, ки мо аллакай домени сайт дорем. Биёед мисолро гирем blog.example.com.
Қадами 1: Эҷоди вуруди DNS
Аввал, домени моро интихоб кунед, ва он гоҳ ҷузъи меню DNS. Мо блоги A-record эҷод мекунем ва барои он ягон IP-и сохтаро нишон медиҳем (ин расман аст
Қадами 2: Cloudflare Token
-
Профили ман -> аломатҳои API таб-> Токенро эҷод кунед -> Токени фармоишӣ эҷод кунед
Дар ин ҷо ба шумо лозим меояд, ки аломатро бо ҳисобҳо ва минтақаҳо маҳдуд кунед, аммо имкони Таҳрирро барои иҷозатҳои дар расм номбаршуда гузоред.
Токенро барои оянда захира кунед, ба мо дар қисми сеюм лозим мешавад.
Қадами 3: Ҳисобот ва зонеид гиред
Domain → шарҳ → [панели тарафи рост]
Инҳо аз они мананд, лутфан онҳоро истифода набаред :)
Онҳоро дар паҳлӯи нишона захира кунед, мо инчунин дар қисми сеюм ба онҳо ниёз дорем.
Қадами 4: Коргаронро фаъол созед
Domain → Коргарон → Коргаронро идора кунед
Мо ном ва тарифи беназирро интихоб мекунем Коргарон → Бемаҳдуд (имрӯз $5 дар як моҳ). Агар хоҳед, шумо метавонед дертар ба версияи ройгон навсозӣ кунед.
Қисми 3: Ҷойгиркунии аввал (ҷойгиркунии дастӣ)
Ман аввалин ҷобаҷогузории дастӣ кардам, то бидонам, ки воқеан дар он ҷо чӣ рӯй дода истодааст. Гарчанде ки ҳамаи инро метавон соддатар кард:
-
Wrangler насб кунед:
npm i @cloudflare/wrangler -g
-
Биёед ба феҳристи блоги худ равем:
cd blog.example.com
-
Wrangler-ро оғоз кунед:
wrangler init — site hugo-worker
-
Барои wrangler конфигуратсия эҷод кунед (вақте ки пурсида мешавад, аломатро ворид кунед):
wrangler config
Акнун биёед кӯшиш кунем, ки ба файли навтаъсис тағйирот ворид кунем wrangler.toml (
-
Нишон диҳед хисобот ва зонеид
-
Тағир додан масир ба чизе монанди *blog.example.com/*
-
Нишон диҳед бардурӯғ барои коргарондев
-
Сатилро ба ./public иваз кунед (ё дар куҷо сайти статикии шумо ҷойгир аст)
-
Агар шумо дар роҳ зиёда аз як домен дошта бошед, пас шумо бояд роҳро дар скрипти корӣ ислоҳ кунед: коргарон-сайт/index.js (ниг. функсия handleEvent)
Аҷоиб, вақти он расидааст, ки сайтро бо истифода аз даста ҷойгир кунед wrangler publish
.
Қисми 4: Автоматикунонии ҷойгиркунӣ
Ин дастур барои Gitlab навишта шудааст, аммо он моҳият ва осонии густариши автоматиро дар маҷмӯъ дарбар мегирад.
Қадами 1: Лоиҳаи моро созед ва танзим кунед
-
Лоиҳаи нави GitLab эҷод кунед ва сайтро бор кунед: директория blog.example.com бо тамоми мундариҷа бояд дар директорияи решавӣ лоиҳа ҷойгир бошад
-
гузоштем тағйирёбанда ЦФАПИТОКЕН инҷо: Танзимот → CI / CD → Тағирдиҳандаҳо
Қадами 2: Файли .gitlab-ci.yml эҷод кунед ва ҷойгиркунии аввалро иҷро кунед
Файл эҷод кунед .gitlab-ci.yml дар реша бо мазмуни зерин:
stages:
- build
- deploy
build:
image: monachus/hugo
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- cd blog.example.com/
- hugo
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
deploy:
image: timbru31/ruby-node:2.3
stage: deploy
script:
- wget https://github.com/cloudflare/wrangler/releases/download/v1.8.4/wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- tar xvzf wrangler-v1.8.4-x86_64-unknown-linux-musl.tar.gz
- cd blog.example.com/
- ../dist/wrangler publish
artifacts:
paths:
- blog.example.com/public
only:
- master # this job will affect only the 'master' branch
tags:
- gitlab-org-docker #
Мо ҷойгиркунии аввалро дастӣ оғоз мекунем (CI/CD → Масъулият → Иҷрои қубур) ё худ ба филиали усто супорида шавад. Войла!
хулоса
Хуб, ман шояд онро каме кам карда бошам ва тамоми раванд ҳамагӣ даҳ дақиқа тӯл кашид. Аммо ҳоло шумо як сайти зуд бо ҷойгиркунии худкор ва баъзе ғояҳои тоза дар бораи он, ки шумо бо коргарон боз чӣ кор карда метавонед, доред.
Манбаъ: will.com