اسان کي اسان جي منصوبي لاء انسٽال ۽ ترتيب ڏيڻ جي ضرورت آهي:
PostgreSQL (اسان جي صورت ۾، اتي هڪ سرور هوندو ٻن ڊيٽابيس سان گڏ ديو ۽ پروڊ ماحول لاء).
RabbitMQ (ساڳيو، ساڳيو مثال ماحول لاءِ مختلف ويسٽن سان).
ٻه Redis مثال (dev ۽ prod ماحول لاء).
Docker رجسٽري (تعمير ٿيل Docker تصويرن جي مقامي اسٽوريج لاءِ).
UI Docker رجسٽري لاءِ.
PostgreSQL
Plesk اڳ ۾ ئي PostgreSQL DBMS سان گڏ اچي ٿو، پر جديد نسخو نه آهي (لکڻ وقت Plesk Obsidian حمايت ڪئي پوسٽ گريس ورزن 8.4-10.8). اسان چاهيون ٿا ته اسان جي ايپليڪيشن لاء جديد نسخو (12.3 هن لکڻ جي وقت تي)، تنهنڪري اسان ان کي دستي طور تي انسٽال ڪنداسين.
نيٽ تي Debian تي Postgres انسٽال ڪرڻ لاءِ تمام گهڻيون تفصيلي هدايتون آهن (مثال)، تنهنڪري مان انهن کي تفصيل سان بيان نه ڪندس، مان صرف حڪم ڏيندس:
انهي ڳالهه تي غور ڪندي ته PostgreSQL ۾ معمولي ڊفالٽ سيٽنگون آهن، اهو ضروري آهي ته ترتيب کي درست ڪرڻ. هي اسان جي مدد ڪندو ڳڻپيوڪر: توھان کي پنھنجي سرور جي پيٽرولن ۾ ڊرائيو ڪرڻ جي ضرورت آھي ۽ فائل ۾ سيٽنگون تبديل ڪريو /etc/postgresql/12/main/postgresql.confجيڪي پيش ڪيا ويا آهن. هتي اهو ياد رکڻ گهرجي ته اهڙا حساب ڪندڙ جادوگر نه هوندا آهن، ۽ بنيادي طور تي توهان جي هارڊويئر، ايپليڪيشن، ۽ سوال جي پيچيدگي جي بنياد تي وڌيڪ صحيح طور تي ترتيب ڏيڻ گهرجي. پر اهو شروع ڪرڻ لاء ڪافي آهي.
ترتيب ڏيڻ واري فائل کي تبديل ڪرڻ کان پوء، حڪم سان postgresql-server کي ٻيهر شروع ڪريو:
service postgresql restart
اسان انسٽال ڪيو ۽ ترتيب ڏنو PostgreSQL. ھاڻي اچو ھڪ ڊيٽابيس ٺاھيون، صارفين لاءِ dev- ۽ prod- ماحول، ۽ صارفين کي ڊيٽابيس کي منظم ڪرڻ جا حق ڏيو:
$ su - postgres
postgres:~$ create database hw_dev_db_name;
CREATE DATABASE
postgres:~$ create user hw_dev_db_user with password 'hw_dev_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_dev_db_name to hw_dev_db_user;
GRANT
postgres:~$ create database hw_prod_db_name;
CREATE DATABASE
postgres:~$ create user hw_prod_db_user with password 'hw_prod_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_prod_db_name to hw_prod_db_user;
GRANT
ھاڻي اچو ته انسٽال ڪريون ۽ ترتيب ڏيون اسان جي ايپليڪيشن لاءِ آخري جزو - Redis. اهو Celery ڪمن جي نتيجن کي محفوظ ڪرڻ لاء هڪ پس منظر طور استعمال ڪيو ويندو.
اسان ٻه ڊاڪر ڪنٽينرز کي ريڊيس سان گڏ ڪنداسين dev ۽ prod ماحول لاءِ ايڪسٽينشن استعمال ڪندي Docker Plesk لاء.
اسان Plesk ڏانھن وڃو، وڌايون سيڪشن ڏانھن وڃو، ڊاکر جي واڌ کي ڏسو ۽ ان کي انسٽال ڪريو (اسان کي مفت ورزن جي ضرورت آھي):
اسان ڊائون لوڊ ٿيل ڪنٽينر ۾ وڃون ٿا ۽ ترتيب ترتيب ڏيو: بندرگاهن جي وضاحت ڪريو، وڌ ۾ وڌ مختص ڪيل RAM سائيز، پاسورڊ ۾ ماحول جي متغير، ۽ حجم کي وڌايو:
اسان پروڊ ڪنٽينر لاءِ 2-3 مرحلا انجام ڏيون ٿا، سيٽنگون ۾ اسان صرف پيٽرول کي تبديل ڪندا آهيون: پورٽ، پاسورڊ، ريم سائيز ۽ سرور تي حجم فولڊر ڏانهن رستو:
Docker رجسٽري
بنيادي خدمتن کان علاوه، اهو سٺو لڳندو ته توهان جي پنهنجي Docker تصويري مخزن کي سرور تي رکي. خوشقسمتيء سان، سرور جي جاء هاڻي ڪافي سستي آهي (يقينا هڪ DockerHub سبسڪرپشن کان سستا)، ۽ هڪ خانگي مخزن کي قائم ڪرڻ جو عمل تمام سادو آهي.
۽ اسان جي ڪنٽينر تي پراکسي ايندڙ ٽرئفڪ لاءِ ضابطو شامل ڪريو:
اسان چيڪ ڪريون ٿا ته اسان مقامي مشين مان اسان جي ڪنٽينر ۾ لاگ ان ڪري سگھون ٿا:
$ docker login docker.helloworld.ru -u hw_docker_admin -p hw_docker_password
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
اچو ته docker-ui.helloworld.ru ذيلي ڊومين جي آپريشن کي به چيڪ ڪريو:
جڏهن توهان براؤز ريپوزٽريز تي ڪلڪ ڪندا آهيو، برائوزر هڪ اختيار واري ونڊو ڏيکاريندو جتي توهان کي مخزن لاءِ صارف نالو ۽ پاسورڊ داخل ڪرڻ جي ضرورت پوندي. ان کان پوء، اسان کي مخزن جي فهرست سان هڪ صفحي تي منتقل ڪيو ويندو (هاڻي لاء، اهو توهان لاء خالي هوندو):
Plesk فائر وال ۾ بندرگاهن کي کولڻ
اجزاء کي انسٽال ڪرڻ ۽ ترتيب ڏيڻ کان پوء، اسان کي بندرگاهن کي کولڻ جي ضرورت آهي ته جيئن اجزاء Docker ڪنٽينرز ۽ خارجي نيٽ ورڪ کان رسائي لائق آهن.
اچو ته پهرين ٻئي نقطي سان معاملو ڪريون (ڇاڪاڻ ته پهريون ان تي منحصر آهي).
اسان Plesk لاءِ Git ايڪسٽينشن استعمال ڪندي ترتيب ڏيڻ واري عمل کي ترتيب ڏينداسين.
هڪ مثال تي غور ڪريو پروڊ ماحول سان گڏ هڪ پس منظر مخزن لاءِ.
اسان وڃون ٿا اسان جي Helloworld ويب سائيٽ جي سبسڪرپشن ۽ وڃو Git سبسيڪشن:
"ريموٽ گيٽ مخزن" جي فيلڊ ۾ اسان جي Github مخزن جي لنڪ داخل ڪريو ۽ ڊفالٽ فولڊر کي تبديل ڪريو httpdocs ٻئي ڏانهن (مثال طور. /httpdocs/hw_back):
اڳئين قدم کان SSH پبلڪ ڪيچ کي نقل ڪريو ۽ شامل ڪيو Github سيٽنگون ۾.
اسان قدم 2 ۾ اسڪرين تي ٺيڪ کي دٻايو، جنهن کان پوء اسان Plesk ۾ مخزن واري صفحي ڏانهن منتقل ڪيو وڃي. هاڻي اسان کي مخزن کي ترتيب ڏيڻ جي ضرورت آهي تازه ڪاري ڪرڻ لاءِ ماسٽر برانچ جي ڪمن تي. هن کي ڪرڻ لاء، ڏانهن وڃو مخزن سيٽنگون ۽ قدر بچايو Webhook URL (اسان کي بعد ۾ ان جي ضرورت پوندي جڏهن Github عملن کي ترتيب ڏيو):
پوئين پيراگراف کان اسڪرين تي ڪارناما فيلڊ ۾، مقرري شروع ڪرڻ لاء اسڪرپٽ داخل ڪريو:
cd {REPOSITORY_ABSOLUTE_PATH}
.ci-cd/deploy.sh {ENV} {DOCKER_REGISTRY_HOST} {DOCKER_USER} {DOCKER_PASSWORD} {TG_BOT_TOKEN} {TG_CHAT_ID}
ڪٿي
{REPOSITORY_ABSOLUTE_PATH} - سرور تي پس منظر واري مخزن جي پروڊ فولڊر ڏانهن رستو؛ {ENV} - ماحول (dev / prod)، اسان جي صورت ۾ prod; {DOCKER_REGISTRY_HOST} - اسان جي ڊاکر جي ذخيري جو ميزبان {TG_BOT_TOKEN} - ٽيليگرام بوٽ ٽوڪن؛ {TG_CHAT_ID} - اطلاعن موڪلڻ لاءِ چيٽ/چينل جي سڃاڻپ.
اسڪرپٽ مثال:
cd /var/www/vhosts/helloworld.ru/httpdocs/hw_back/
.ci-cd/deploy.sh dev docker.helloworld.ru docker_user docker_password 12345678:AAbcdEfghCH1vGbCasdfSAs0K5PALDsaw -1001234567890
اسان جي رڪنيت مان هڪ صارف شامل ڪريو Docker گروپ ۾ (انهي ڪري اهي ڪنٽينرز کي منظم ڪري سگهن ٿا):
sudo usermod -aG docker helloworld_admin
پس منظر واري مخزن لاءِ ديو ماحول ۽ فرنٽ اينڊ ساڳئي طريقي سان ترتيب ڏنل آهن.
Github عملن ۾ لڳائڻ واري پائپ لائن
اچو ته Github Actions ۾ اسان جي CI / CD پائپ لائن جو پهريون حصو ترتيب ڏيو.