چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

۸۰ بازديد

مقدمه
با حركت ابزارهاي توسعه دهنده به سمت cloud ، ساخت و تطبيق پلتفرم هاي cloud IDE (محيط پيشرفت ادغام شده) در حال رشد است. Cloud IDE ها امكان همكاري در زمان واقعي بين تيم هاي توسعه دهنده را فراهم مي كنند تا در يك محيط توسعه يكپارچه كار كنند كه ناسازگاري ها را به حداقل مي رساند و بهره وري را افزايش مي دهد. IDE cloudها كه از طريق مرورگرهاي وب قابل دسترسي هستند ، از هر نوع دستگاه مدرن قابل استفاده اند.
code-server يك كدMicrosoft Visual Studio است كه روي يك سرور از راه دور اجرا مي شود و مستقيماً از طريق مرورگر شما قابل دسترسي است. كد ويژوال استوديو يك ويرايشگر كد مدرن داراي پشتيباني يكپارچه از Git ، اشكال زدايي كد ، تكميل خودكار هوشمند و ويژگي هاي قابل تنظيم و قابل توسعه است. اين بدان معني است كه مي توانيد از دستگاه هاي مختلفي كه سيستم عامل هاي متفاوت را اجرا مي كنند استفاده كنيد و هميشه يك محيط توسعه مداوم داشته باشيد.
در اين آموزش ، پلت فرم code-server cloud IDE را بر روي دستگاه CentOS 7 خود تنظيم كرده و آن را در دامنه خود قرار مي دهيد ، كه با استفاده از گواهينامه هاي TLS Let’s Encrypt  رايگان ايمن شده اند. در پايان ، كد مايكروسافت ويژوال استوديو را روي سرور CentOS 7 خود ، در دامنه خود در دسترس خواهيد داشت كه با يك رمز عبور محافظت مي شود.
پيش نيازها
سروري كه CentOS 7 را با حداقل 2 گيگابايت رم ، دسترسي به روت و يك حساب سودو و غير روت اجرا مي كند. با دنبال كردن اين راهنماي اوليه تنظيم سرور مي توانيد اين تنظيمات را انجام دهيد.
Nginx روي سرور شما نصب شده است. براي راهنمايي در مورد نحوه انجام اين كار ، به نحوه نصب Nginx در CentOS 7 مراجعه كنيد.
هر دو پرونده DNS زير براي سرور شما تنظيم شده اند. براي جزئيات بيشتر در مورد چگونگي اضافه كردن آنها مي توانيد اين مقدمه را در vpsgol DNS دنبال كنيد.
يك ركورد A با your-domain كه به آدرس IP عمومي سرور شما اشاره ميكند.
يك ركورد A با www.your-domain كه به آدرس IP عمومي سرور شما اشاره ميكند.
يك نام دامنه كاملاً ثبت شده براي كد سرور هاست، كه به سرور شما اشاره ميكند. در اين آموزش از code-server.your-domain استفاده مي شود. مي توانيد يك نام دامنه به اسم Namecheap خريداري كنيد ، يكي از آنها را به صورت رايگان در Freenom دريافت كنيد ، يا از ثبت دامنه مورد نظر خود استفاده كنيد.
مرحله 1 – نصب كد سرور
در اين بخش كد سرور را روي سرور خود تنظيم مي كنيد. اين كار مستلزم دانلود آخرين نسخه و ايجاد سرويس systemd است كه كد سرور را هميشه در پس زمينه اجرا مي كند. همچنين رويكرد مجدد را براي سرويس تعيين خواهيد كرد ، به اين ترتيب كه كد سرور پس از خرابي يا راه اندازي مجدد احتمالي در دسترس باشد.

همه داده هاي مربوط به كد سرور را در پوشه اي به نام ~ / code-server ذخيره مي كنيد. با اجراي دستور زير آن را ايجاد كنيد:
mkdir ~/code-server
حركت به سمت آن:
cd ~/code-server
شما بايد به صفحه انتشار نسخه هاي Github از كد سرور برويد و آخرين ساخت لينوكس را انتخاب كنيد (نام فايل شامل “linux” است). در زمان نوشتن ، آخرين نسخه 2.1692 بود. با اجراي دستور زير آن را با استفاده از curl دانلود كنيد:
curl -LO https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
سپس با اجراي اين دستور آرشيو را باز كنيد:
tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
پوشه اي دقيقاً به عنوان فايل اصلي كه دانلود كرده ايد ، تهيه مي شود كه شامل كد سرور قابل اجرا است. به آن فايل برويد:
cd code-server2.1692-vsc1.39.2-linux-x86_64
سرور كد قابل اجرا را در / usr / local / bin كپي كنيد تا با اجراي دستور زير بتوانيد به سيستم گسترده اي از آن دسترسي داشته باشيد:
sudo cp code-server /usr/local/bin
سپس، يك پوشه براي سرور كد ايجاد كنيد ، كه در آن داده هاي كاربر را ذخيره مي كند:
sudo mkdir /var/lib/code-server
اكنون كه كد سرور را دانلود كرده ايد و آن را به صورت گسترده در دسترس سيستم قرار داده ايد، يك سرويس سيستمي ايجاد خواهيد كرد تا كد سرور را هميشه در پس زمينه اجرا كند.
پيكربندي سرويس را در فايلي به نام code-server.service ، در ديركتوري / usr / lib / systemd / system ذخيره خواهيد كرد، جايي كه systemd خدمات خود را ذخيره مي كند. با استفاده از ويرايشگر vi آن را ايجاد كنيد:
sudo vi /usr/lib/systemd/system/code-server.service
خطوط زير را اضافه كنيد:
/usr/lib/systemd/system/code-server.service
[Unit]
Description=code-server
After=nginx.service

[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password
Restart=always

[Install]
WantedBy=multi-user.target

در اينجا ابتدا شرح خدمات را مشخص مي كنيد. سپس ، اعلام مي كنيد كه سرويس nginx بايد قبل از اين شروع شود. بعد از بخش [Unit] نوع سرويس را تعريف مي كنيد (simple بدان معني است كه فرايند بايد به سادگي اجرا شود) و فرماني را كه اجرا مي شود ارائه مي دهيد.
شما همچنين مشخص مي كنيد كه كد سرور جهاني قابل اجرا بايد با چند آرگومان خاص براي كد سرور آغاز شود. –host 127.0.0.1 آن را به localhost متصل مي كند ، بنابراين فقط از داخل سرور شما قابل دسترسي است. –user-data-dir / var / lib / code-server دايركتوري داده هاي كاربر خود را تنظيم مي كند ، و –auth password مشخص مي كند كه بايد بازديد كنندگان را با يك رمزعبور، مشخص شده در متغير محيط PASSWORD اعلام شده در خط بالاي آن ، تأييد كند.
به ياد داشته باشيد كه your_password را با رمز عبور دلخواه خود جايگزين كنيد. براي ذخيره و بستن فايل تايپ كنيد: wq و سپس ENTER را بزنيد.
خط بعدي به systemd مي گويد تا كد سرور را در تمام رويدادهاي ناقص (براي مثال وقتي كه دچار crash ميشود يا فرآيند نابود ميشود) مجددا راه اندازي كند. بخش [Install] به systemd سفارش مي دهد تا در صورت امكان ورود به سرور خود ، اين سرويس را شروع كند.
با اجراي دستور زير سرويس كد سرور را شروع كنيد:
sudo systemctl start code-server
با مشاهده وضعيت آن بررسي كنيد كه درست شروع شده است:
sudo systemctl status code-server
خروجي شبيه به زير را خواهيد ديد:
Output
code-server.service – code-server
Loaded: loaded (/usr/lib/systemd/system/code-server.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2019-12-19 19:24:42 UTC; 5s ago
Main PID: 1668 (code-server)
CGroup: /system.slice/code-server.service
├─1668 /usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password
└─1679 /usr/local/bin/code-server –host 127.0.0.1 –user-data-dir /var/lib/code-server –auth password

Dec 19 19:24:42 code-server-centos systemd[1]: Started code-server.
Dec 19 19:24:44 code-server-centos code-server[1668]: info Server listening on http://127.0.0.1:8080
Dec 19 19:24:44 code-server-centos code-server[1668]: info – Using custom password for authentication
Dec 19 19:24:44 code-server-centos code-server[1668]: info – Not serving HTTPS

براي شروع خودكار كد سرور پس از راه اندازي مجدد سرور ، سرويس آن را با اجراي دستور زير فعال كنيد:
sudo systemctl enable code-server
در اين مرحله ، شما كد سرور را دانلود كرده و آن را در سطح جهاني در دسترس قرار داده ايد. سپس ، شما يك سرويس systemd براي آن ايجاد و آن را فعال كرده ايد ، بنابراين كد سرور از هر بوت سرور شروع مي شود. در مرحله بعد ، با پيكربندي Nginx ، آن را در دامنه خود قرار مي دهيد تا به عنوان يك پروكسي معكوس بين بازديد كننده و كد سرور خدمت كند.
مرحله 2 – قرار گرفتن كد سرور در معرض دامنه شما
در اين بخش، Nginx را به عنوان يك پروكسي معكوس براي سرور كد پيكربندي مي كنيد.
همانطور كه در مرحله پيش نياز Nginx آموخته ايد، فايل هاي پيكربندي سايت آن در زير /etc/nginx/conf.d ذخيره مي شوند و با شروع Nginx بطور خودكار دانلود مي شوند.
شما پيكربندي را براي در معرض قرار گرفتن كد سرور در دامنه خود در فايلي به نامcode-server.conf ، تحت عنوان /etc/nginx/conf.d ذخيره مي كنيد. با استفاده از ويرايشگر خود شروع به كار كنيد:
sudo vi /etc/nginx/conf.d/code-server.conf
خطوط زير را اضافه كنيد:
/etc/nginx/conf.d/code-server.conf
server {
listen 80;
listen [::]:80;

server_name code-server.your-domain;

location / {
غير مجاز مي باشد_pass http://localhost:8080/;
غير مجاز مي باشد_set_header Upgrade $http_upgrade;
غير مجاز مي باشد_set_header Connection upgrade;
غير مجاز مي باشد_set_header Accept-Encoding gzip;
}
}

code-server.your-domain خود را با دامنه مورد نظر خود جايگزين كنيد، سپس فايل را ذخيره كنيد و ببنديد.
در اين فايل ، شما تعريف مي كنيد كه Nginx بايد به پورت HTTP 80 گوش دهد. سپس ، يك server_nameرا تعيين مي كنيد كه به Nginx مي گويد كه كدام دامنه درخواست ها را بپذيرد و از اين تنظيمات خاص استفاده كند.
در بلوك بعدي ، براي مكان ريشه (/) ، شما تعيين مي كنيد كه درخواست ها بايد به كد سروري كه در localhost:8080 در حال اجرا است ، در رفت و برگشت باشد: سه خط بعدي (كه با غير مجاز مي باشد_set_header شروع ميشوند) به Nginx دستور مي دهند برخي از سرصفحات HTTP را كه براي عملكرد صحيح WebSockets مورد نياز هستند، كه از سرورهاي كد استفاده گسترده اي دارند، حمل كند.
براي آزمايش اعتبار پيكربندي ، دستور زير را اجرا كنيد:
sudo nginx -t
خروجي زير را مشاهده خواهيد كرد:
utput
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

براي اينكه پيكربندي عملي شود ، بايد Nginx را مجدداً راه اندازي كنيد:
sudo systemctl restart nginx
CentOS 7 مجهز به SELinux است ، با يك آيين نامه سختگيرانه ، كه به طور پيش فرض اجازه اتصال Nginx به سوكت هاي محلي TCP را نمي دهد. Nginx براي خدمت به عنوان يك پروكسي معكوس براي كد سرور ، بايد در حال اجرا باشد. دستور زير را اجرا كنيد تا قاعده را به صورت دائمي آرام كنيد:
sudo setsebool httpd_can_network_connect 1 -P
سپس در مرورگر خود به سمت دامنه مورد استفاده براي كد سرور مجازي برويد. اعلان ورود به سيستم كد را مشاهده خواهيد كرد.
كد سرور از شما رمز عبور مي خواهد. چيزي كه در مرحله قبل تنظيم كرديد را وارد كنيد و Enter IDE را بزنيد. اكنون كد سرور را وارد كرده و فوراً GUI ويرايشگر آن را مشاهده مي كنيد.
اكنون نصب كد سرور مجازي شما در دامنه شما قابل دسترسي است. در مرحله بعدي ، با استفاده از يك گواهي نامه Let’s Encrypt TLS رايگان ، آن را ايمن خواهيد كرد.
مرحله 3 – دامنه خود را ايمن كنيد
در اين بخش دامنه خود را با استفاده از گواهي Let’s Encrypt TLS ، كه با استفاده از Certbot ارائه مي دهيد ، تضمين مي كنيد.
براي نصب آخرين نسخه Certbot و افزونه Nginx آن، دستور زير را اجرا كنيد:
sudo yum install certbot python2-certbot-nginx
براي درخواست گواهي نامه براي دامنه خود ، دستور زير را اجرا كنيد:
sudo certbot –nginx -d code-server.your-domain
در اين دستور ، شما certbot را براي درخواست گواهينامه براي دامنه خود اجرا مي كنيد – نام دامنه را با پارامتر -d مي گذرانيد. فلگ –nginx به آن مي گويد براي پشتيباني از HTTPS ، پيكربندي سايت Nginx را به طور خودكار تغيير دهد. به ياد داشته باشيد كه دامنه code-server.your خود را با نام دامنه خود جايگزين كنيد.
اگر اولين بار است كه Certbot را اجرا مي كنيد ، از شما خواسته مي شود كه يك آدرس ايميل را براي اخطارهاي فوري و قبول شرايط خدمات EFF وارد كنيد. سپس Certbot از Let’s Encrypt براي گواهي دامنه شما درخواست مي كند. سپس از شما سؤال مي كند كه آيا مايليد همه ترافيك HTTP را به HTTPS هدايت كنيد:
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

توصيه مي شود براي به حداكثر رساندن امنيت، گزينه دوم را انتخاب كنيد. پس از وارد كردن انتخاب خود ، ENTER را فشار دهيد.
خروجي مشابه اين خواهد بود:
Output
IMPORTANT NOTES:
– Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/code-server.your-domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/code-server.your-domain/privkey.pem
Your cert will expire on … To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the “certonly” option. To non-interactively renew *all* of
your certificates, run “certbot renew”
– Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
– If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

اين بدان معني است كه Certbot با موفقيت توليد گواهينامه TLS را انجام داده و آنها را در پيكربندي Nginx براي دامنه شما اعمال كرده است. اكنون مي توانيد دامنه كد سرور مجازي خود را در مرورگر خود مجدد لود كنيد و يك padlock در سمت چپ آدرس سايت مشاهده كنيد، به اين معني كه اتصال شما به درستي ايمن شده است.
اكنون كاري كرديد كه Certbot به طور خودكار گواهينامه ها را قبل از اين كه منقضي شوند تمديد كند. براي اجراي بررسي روزانه، از cron ، يك سرويس سيستم استاندارد براي انجام كارهاي دوره اي استفاده خواهيد كرد. شما با باز كردن و ويرايش فايلي به نام crontab ، corn را هدايت مي كنيد:
sudo crontab -e
اين دستور crontab پيش فرض را كه در حال حاضر يك فايل متني خالي است ، باز مي كند. خط زير را اضافه كنيد ، سپس آن را ذخيره كرده و ببنديد:
crontab
. . .
15 3 * * * /usr/bin/certbot renew –quiet

دستور renew براي Certbot تمام گواهينامه هاي نصب شده روي سيستم را بررسي ميكند و مواردي را كه در كمتر از سي روز به پايان مي رسند به روز مي كند. –quiet به Certbot مي گويد كه اطلاعات را بيرون نكشيد يا منتظر ورود كاربر نباشيد.
cron اكنون اين دستور را روزانه اجرا مي كند. تمام گواهينامه هاي نصب شده هنگامي كه سي روز يا كمتر از اين كه منقضي شود به طور خودكار تجديد و لود مي شوند.
اكنون كه كد سرور مجازي را از طريق يك پروكسي معكوس Nginx در دامنه خود داريد ، آماده بررسي واسط كاربري سرور كد هستيد.
مرحله 4 – استفاده از رابط كد-سرور مجازي
در اين بخش از برخي از ويژگي هاي رابط كد-سرور مجازي استفاده خواهيد كرد. از آنجا كه كد-سرور مجازي كد ويژوال استوديو در حال اجرا در cloud است ، همان رابط مشابه نسخه دسكتاپ مستقل دارد.
در سمت چپ IDE ، يك رديف عمودي از شش دكمه وجود دارد كه بيشترين ويژگي هاي مورد استفاده را در يك صفحه جانبي كه با عنوان Activity Bar شناخته مي شود باز مي كند.
اين نوار قابل تنظيم است بنابراين مي توانيد اين نماها را به ترتيب ديگري جابجا كنيد يا آنها را از نوار حذف كنيد. به طور پيش فرض ، اولين دكمه منوي كلي را به صورت كشويي باز مي كند ، در حالي كه نماي دوم پنل اكسپلورر را باز مي كند كه پيمايش درخت مانند از ساختار پروژه را فراهم مي كند. مي توانيد پوشه ها و فايل هاي خود را در اينجا مديريت كنيد – ايجاد ، حذف ، جابجايي و تغيير نام را در صورت لزوم انجام دهيد. نماي بعدي امكان دسترسي به جستجو و جايگزيني عملكرد را فراهم مي كند.
بعد از اين ، به ترتيب پيش فرض ، نماي شما از سيستم هاي كنترل منبع مانند Git است. كد ويژوال استوديو همچنين از ارائه دهندگان ديگر كنترل منبع پشتيباني مي كند و مي توانيد در اين مطالب دستورالعمل هاي بيشتري را براي جريان كار كنترل منبع با ويرايشگر پيدا كنيد.
گزينه اشكال زدايي در نوار فعاليت ، كليه اقدامات متداول را براي اشكال زدايي در پنل ارائه مي دهد. كد ويژوال استوديو با پشتيباني داخلي براي اشكال زدايي زمان اجرا Node.js و هر زباني كه به Javascript تبديل شود همراه است. براي ساير زبانها مي توانيد پسوندهايي را براي اشكالزدگي مورد نياز نصب كنيد. مي توانيد پيكربندي هاي اشكال زدايي را در پرونده start.json ذخيره كنيد.
نماي نهايي در نوار فعاليت، منويي را براي دسترسي به افزونه هاي موجود در Marketplace فراهم مي كند.
قسمت اصلي GUI ويرايشگر شماست كه مي توانيد با استفاده از زبانه ها براي ويرايش كد خود جدا كنيد. مي توانيد نماي ويرايش خود را به يك سيستم شبكه يا به فايل هاي جانبي تغيير دهيد.
پس از ايجاد فايل جديد از طريق منوي File ، يك فايل خالي در يك سربرگ جديد باز مي شود و پس از ذخيره سازي ، نام فايل در صفحه جانبي Explorer قابل مشاهده خواهد بود. ايجاد پوشه ها را مي توان با كليك راست بر روي نوار كناري Explorer و كليك بر روي New Folder انجام داد. مي توانيد پوشه اي را با كليك روي نام آن و همچنين كشيدن و رها كردن فايل ها و پوشه ها به قسمتهاي بالاي ليست ترتيبي گسترش دهيد تا آنها را به يك مكان جديد منتقل كنيد.
مي توانيد با زدن CTRL + SHIFT + `، يا با كليك كردن بر روي ترمينال در منوي كشويي بالا، و انتخاب گزينه New Terminal، به ترمينال دسترسي پيدا كنيد. ترمينال در يك پنل پايين تر باز خواهد شد و فهرست كار آن روي فضاي كاري پروژه تنظيم مي شود ، كه شامل فايل ها و پوشه هاي نمايش داده شده در پانل سمت Explorer است.
شما يك نماي كلي سطح بالا از رابط كد سرور مجازي را جستجو كرده ايد و برخي از متداول ترين ويژگي ها را مرور كرده ايد.
نتيجه
اكنون شما داراي كد سرور مجازي، يك cloud IDE همه كاره هستيد كه بر روي سرور CentOS 7 شما نصب شده است ، و در دامنه شما قرار گرفته و با استفاده از گواهي نامه هاي رمزگذاري ايمن شده است. هم اكنون مي توانيد بر روي پروژه ها بصورت جداگانه و همچنين در يك مجموعه همكاري تيمي كار كنيد. اجراي cloud IDE منابع موجود در دستگاه محلي شما را آزاد مي كند و به شما امكان مي دهد منابع را در صورت لزوم مقياس بندي كنيد. براي اطلاعات بيشتر ، به ويژگي هاي اضافي و دستورالعمل هاي دقيق در مورد ساير مؤلفه هاي كد سرور ، به مطالب ويژوال استوديو مراجعه كنيد.
اگر مايل هستيد كد سرور مجازي را روي خوشه vpsgol Kubernetes خود اجرا كنيد ، آموزش ما در مورد چگونگي راه اندازي بستر رمزگذاري كد سرويس دهنده Cloud IDE در vpsgol Kubernetes را بررسي كنيد.

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.