server server .

server

نحوه نصب وردپرس با OpenLiteSpeed ​​در اوبونتو 18.04

مقدمه
WordPress يك سيستم مديريت محتواي منبع باز (CMS) است. WordPress محبوب ترين CMS در جهان است كه به شما امكان مي دهد تا وبلاگ ها و وب سايت هايي را فراتر از پايگاه داده MySQL تنظيم كنيد ، از PHP براي اجراي اسكريپت ها و پردازش محتواي پويا استفاده كنيد.
OpenLiteSpeed ​​ يك سرور وب منبع باز بهينه شده است كه مي توانيد از آن براي مديريت و سرويس وب سايت ها استفاده كنيد. OpenLiteSpeed ​​ داراي برخي ويژگي هاي مفيد است كه آن را به گزينه اي مناسب براي بسياري از نصب ها تبديل مي كند: قوانين بازنويسي سازگار با Apache، يك رابط كاربري مديريت مبتني بر وب و پردازش PHP سفارشي براي بهينه سازي سرور.
اين راهنما روند نصب و تنظيم يك نمونه وردپرس را در Ubuntu 18.04 با استفاده از وب سرور OpenLiteSpeed ​​طي خواهد كرد. از آنجا كه هم WordPress و OpenLiteSpeed ​​مي توانند از طريق يك مرورگر وب مديريت شوند ، اين پيكربندي براي كساني كه دسترسي منظم به بخش SSH ندارند يا كساني كه ممكن است احساس راحتي مديريت يك سرور وب از طريق خط فرمان را نداشته باشند ، ايده آل است.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
يك سرور كه Ubuntu 18.04 را اجرا ميكند با يك ادمين، يك كاربر غير روت و فايروال با استفاده از ufw پيكربندي كرده است. براي تنظيم اين محيط ، آموزش اوليه سرور ما را براي اوبونتو 18.04 دنبال كنيد.
OpenLiteSpeed ​​ بر روي سرور شما نصب شده است. براي راهنمايي در مورد نصب و پيكربندي OpenLiteSpeed ​​به راهنماي ما در مورد نحوه نصب OpenLiteSpeed ​​وب سرور در اوبونتو 18.04 مراجعه كنيد.
MySQL بر روي سرور شما نصب شده است. براي تنظيم اين روش نحوه نصب MySQL را در اوبونتو 18.04 دنبال كنيد.
مرحله 1 – ايجاد يك بانك اطلاعاتي و كاربر بانك اطلاعاتي براي وردپرس
WordPress از MySQL براي مديريت و ذخيره اطلاعات سايت و كاربر استفاده مي كند. شما قبلاً MySQL را نصب كرده ايد ، اما به عنوان يك مرحله مقدماتي به ايجاد يك بانك اطلاعاتي و يك كاربر براي استفاده از وردپرس نياز داريد.
براي شروع كار ، با استفاده از SSH به سرور خود وصل شويد:
ssh sammy @ your_server_IP
سپس وارد حساب ريشه MySQL شويد:

sudo mysql

توجه: اگر مرحله 3 را در پيش نياز آموزش MySQL به پايان رسانده ايد و كاربر root MySQL را براي تأييد اعتبار با افزونه mysql_native_password پيكربندي كرده ايد ، بايد دستور زير را وارد كنيد:
mysql -u root -p

سپس در صورت درخواست رمزعبور كاربر اصلي خود را وارد كنيد.
از تبليغ MySQL ، يك پايگاه داده با دستور زير ايجاد كنيد. در اينجا ، ما اين ديتابيس را براي سادگي وردپرس نام مي گذاريم ، اما شما مي توانيد آن را هرچه دوست داريد نامگذاري كنيد:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
سپس ، يك كاربر ايجاد كرده و به آن امتيازات بانك اطلاعاتي كه اخيراً ايجاد كرده ايد بدهيد. باز هم ، مي توانيد هر نامي را به اين كاربر بدهيد ، اما براي سادگي ما آن را wordpressuser مي ناميم. همچنين ، حتماً گذرواژه را به يك رمز عبور قوي با انتخاب خود تغيير دهيد:
GRANT ALL PRIVILEGES ON wordpress.* TO ‘wordpressuser’@’localhost’ IDENTIFIED BY ‘password’;
سپس ، PRUSILEGES FLUSH را اجرا كنيد كه به سرور مي گويد جداول اعطاي امتياز را مجدد لود كند و اعمال تغييرات جديد خود را اجرا كنيد ،:
FLUSH PRIVILEGES;
پس از آن ، مي توانيد اعلان MySQL را ببنديد:
exit
اكنون نصب MySQL خود براي كار با WordPress را انجام داده ايد. در مرحله بعد چند افزونه PHP نصب خواهيم كرد.

مرحله 2 – نصب افزونه هاي اضافي PHP
در آموزش پيش نياز OpenLiteSpeed ​​، بسته lsphp73 را نصب كرديد. اين مجموعه اي از PHP بهينه شده براي OpenLiteSpeed ​​ است كه از LiteSpeed ​​SAPI براي ارتباط با برنامه هاي خارجي استفاده مي كند. بسته به نياز شما ، وردپرس ممكن است نياز به ساير افزونه هاي PHP داشته باشد تا بتواند به دلخواه عمل كند.

براي نصب برخي افزونه هاي PHP كه معمولاً با WordPress استفاده مي شود ، دستور زير را اجرا كنيد:
sudo apt install lsphp73-common lsphp73-curl lsphp73-imagick lsphp73-imap lsphp73-json lsphp73-memcached lsphp73-mysql lsphp73-opcache lsphp73-redis
توجه: بسته هاي اين دستور ممكن است تمام موارد استفاده را پوشش ندهد. براي يك ليست كامل از افزونه هاي PHP 7.3 موجود از مخزن LiteSpeed ​​كه در آموزش پيش نياز به سرور خود اضافه كرده ايد ، به Wiki LiteSpeed ​​مراجعه كنيد.
پس از اين ، مي توانيد به سمت دانلود و تنظيم وردپرس در سرور خود برويد.
مرحله 3 – دانلود وردپرس
اكنون كه نرم افزار سرور شما پيكربندي شده است ، مي توانيد WordPress را نصب و تنظيم كنيد. به ويژه به دلايل امنيتي ، هميشه توصيه مي شود كه آخرين نسخه وردپرس را مستقيماً از سايت خودشان دريافت كنيد.
به يك ديركتوري قابل نوشتار برويد و سپس نسخه فشرده شده را با تايپ كردن دستور زير دانلود كنيد:
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
براي ايجاد ساختار دايركتوري وردپرس ، فايل فشرده شده را استخراج كنيد:
tar xzvf latest.tar.gz
ما اين پرونده ها را لحظه به لحظه به ريشه سند منتقل خواهيم كرد ، اما ابتدا چند فايل و فهرست را ايجاد خواهيم كرد كه نصب وردپرس به آنها بستگي دارد.
OpenLiteSpeed ​​ از فايل هاي .htaccess پشتيباني مي كند. اين براي اهداف ما مهم است ، از آنجا كه وردپرس
از فايلهاي .htaccess براي ايجاد و مديريت پرونده هاي ثابت استفاده مي كند.
يك فايل .htaccess ساختگي اضافه كنيد تا بعداً براي استفاده وردپرس در دسترس باشد:
touch /tmp/wordpress/.htaccess

سپس ، فايل پيكربندي نمونه را بر روي نام خانوادگي كه وردپرس ميخواند، كپي كنيد:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
علاوه بر اين ، دايركتوري upgrade را ايجاد كنيد تا وردپرس هنگام تلاش براي انجام اين كار به تنهايي و به دنبال بروزرساني در نرم افزار خود ، به مشكلات مربوط به مجوزها برخورد نكند:

mkdir /tmp/wordpress/wp-content/upgrade
سپس كل محتواي فهرست را در روت سند خود كپي كنيد.OpenLiteSpeed ​​ با يك ميزبان مجازي پيش فرض به نام Example در ديركتوري / usr / local / lsws / قرار دارد. روت سند براي ميزبان مجازي Example زيرمجموعه html است:
sudo cp -a /tmp/wordpress/. /usr/local/lsws/Example/html/wordpress
توجه كنيد كه اين دستور شامل يك نقطه در انتهاي فهرست منبع است تا نشان دهد كه همه چيزهاي داخل ديركتوري بايد كپي شوند ، از جمله پرونده هاي مخفي (مانند پرونده .htaccess كه ايجاد كرديد):
با اين كار ، شما وردپرس را با موفقيت روي سرور وب خود نصب كرده ايد و برخي از مراحل اوليه تنظيمات را انجام داده ايد. در مرحله بعد ، ما تغييرات ديگري را در پيكربندي انجام خواهيم داد كه امتيازات وردپرس را براي عملكرد ايمن و دسترسي به بانك اطلاعاتي MySQL و حساب كاربري كه قبلاً ايجاد كرده ايد به شما مي دهد.
مرحله 4 – پيكربندي دايركتوري وردپرس
قبل از اينكه بتوانيم فرآيند راه اندازي مبتني بر وب را براي وردپرس طي كنيم ، بايد برخي موارد را در دايركتوري وردپرس خود تنظيم كنيم.
با دادن مالكيت كليه فايل هاي موجود در ديركتوري به كاربر nobody و گروه nogroup ، كه وب سرور OpenLiteSpeed ​​بصورت پيش فرض اجرا مي كند ، شروع كنيد. دستور chown زير به OpenLiteSpeed ​​امكان خواندن و نوشتن فايل ها در دايركتوري وردپرس را اعطا مي كند ، و اين امكان را براي سرويس دهي به وب سايت و انجام به روز رساني هاي خودكار فراهم مي كند:
sudo chown -R nobody:nogroup /usr/local/lsws/Example/html/wordpress
براي تنظيم مجوزهاي صحيح در دايركتوري ها و فايل هاي وردپرس ، دو دستور find اجرا كنيد:
sudo find /usr/local/lsws/Example/html/wordpress/ -type d -exec chmod 750 {} ;
sudo find /usr/local/lsws/Example/html/wordpress/ -type f -exec chmod 640 {} ;
اينها بايد مجوزهاي معقولي براي شروع باشد ، اگرچه برخي از افزونه ها و رويه ها ممكن است نياز به ترفندهاي اضافي داشته باشند.
پس از اين ، شما بايد تغييراتي در پرونده اصلي پيكربندي WordPress انجام دهيد.
با باز كردن فايل ، اولين هدف شما تنظيم برخي كليدهاي مخفي براي ايجاد امنيت براي نصب شما خواهد بود. WordPress يك مولد مطمئن براي اين مقادير فراهم مي كند به طوري كه ديگر نيازي به تلاش براي دستيابي به مقادير خوب از خودتان نيست. اينها فقط به صورت داخلي استفاده مي شود ، بنابراين به مقادير پيچيده و ايمن در اينجا آسيب نمي رساند.
براي گرفتن مقادير ايمن از مولد كليد مخفي WordPress ، تايپ كنيد:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
شما به مقادير منحصر به فردي بر مي گرديد كه چيزي شبيه به اين است:

هشدار! مهم است كه هر بار درخواست مقادير منحصر به فرد كنيد. مقادير نشان داده شده در زير را كپي نكنيد!

خروجي
define(‘AUTH_KEY’, ‘1jl/vqfs define(‘SECURE_AUTH_KEY’, ‘E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3’);
define(‘LOGGED_IN_KEY’, ‘W(50,{W^,OPB%PB define(‘NONCE_KEY’, ‘ll,4UC)7ua+8سرور وب داده شده است كه در هر جا لازم است بنويسيم، مي توانيم به طور صريح روش سيستم فايل را به direct تنظيم كنيم. عدم تنظيم اين با تنظيمات فعلي ما منجر به اعلان وردپرس براي اعتبار FTP در هنگام برخي عملكردهاي خاص ميشود. اين تنظيمات مي تواند در زير تنظيمات اتصال ديتابيس يا هر جاي ديگر فايل اضافه شود: /var/www/wordpress/wp-config.php . . . define(‘DB_NAME’, ‘wordpress’); /** MySQL database username */ define(‘DB_USER’, ‘wordpressuser’); /** MySQL database password */ define(‘DB_PASSWORD’, ‘password’); . . . define(‘FS_METHOD’, ‘direct’); هنگامي كه كارتان تمام شد، فايل را ذخيره كنيد و ببنديد. در اين مرحله ، وردپرس كاملاً در سيستم شما پيكربندي نشده است ، زيرا هنوز لازم است قبل از شروع انتشار مطالب ، چند كار نهايي را اعمال كنيد. براي انجام اين كار ، ابتدا لازم است چند تغيير تنظيمات در نصب OpenLiteSpeed خود اعمال كنيد. مرحله 6 – پيكربندي OpenLiteSpeed در حال حاضر ، شما WordPress را در سرور Ubuntu خود نصب كرده ايد ، اما نصب OpenLiteSpeed ​​شما هنوز براي ارائه آن تنظيم نشده است. در اين مرحله ، ما به رابط اجرايي OpenLiteSpeed ​​دسترسي خواهيم داشت و چند تغيير در پيكربندي سرور شما ايجاد مي كنيم. در مرورگر وب مورد نظر خود، به رابط اداري OpenLiteSpeed ​​برويد. مي توانيد اين را با وارد كردن آدرس IP عمومي سرور خود يا نام دامنه مرتبط با آن ، و به دنبال آن: 7080 در نوار آدرس مرورگر خود بيابيد: https: // server_domain_or_IP: 7080 در آنجا به شما يك صفحه ورود به سيستم ارائه مي شود. نام كاربري و رمز عبوري را كه در آموزش پيش نياز OpenLiteSpeed ​​تعريف كرده ايد وارد كنيد: از كنسول OpenLiteSpeed ​​، در منوي نوار كناري سمت چپ ، بر روي تنظيمات سرور كليك كنيد. سپس به سربرگ External App برويد ، رديف برنامه LiteSpeed ​​SAPI را پيدا كنيد و بر روي دكمه Edit آن كليك كنيد: به ياد بياوريد كه در پيش نياز آموزش OpenLiteSpeed ​​، بسته lsphp73 را نصب كرديد ، تلفيقي از PHP بهينه سازي شده براي كار با OpenLiteSpeed ​​از طريق LiteSpeed ​​SAPI. با اين حال ، تنظيمات پيش فرض در صفحه External App به lsphp اشاره دارد نه lsphp73. به همين دليل ، نصب OpenLiteSpeed ​​شما قادر به اجراي صحيح اسكريپت هاي PHP نيست. براي تصحيح اين امر ، قسمت Name را به lsphp73 تغيير دهيد ، قسمت آدرس را به uds: //tmp/lshttpd/lsphp73.sock تغيير دهيد و قسمت Command را به SERVER_ROOT / lsphp73 / bin / lsphp: پس از ايجاد آن تغييرات ، روي آيكون save در گوشه سمت راست بالاي كادر LiteSpeed ​​SAPI App كليك كنيد. سپس، در منوي سمت چپ روي Virtual Hosts كليك كنيد. در صفحه Virtual Hosts ميزبان مجازي مورد نظر خود را پيدا كنيد و بر روي نماد View آن كليك كنيد. در اينجا ، ما از هاست مجازي مثال پيش فرض استفاده خواهيم كرد: به سربرگ General هاست مجازي برويد. در آنجا بخش General را پيدا كنيد و روي دكمه edit آن كليك كنيد: OpenLiteSpeed ​​ براي ارائه خدمات به دنبال محتويات Document Root ميگردد. از آنجا كه تمام مطالب و فايل هاي وردپرس شما در ديركتوري وردپرس كه قبلا ايجاد شده ذخيره مي شوند، قسمت Document Root را به روز كنيد تا به آن ديركتوري راهنمايي كنيد. براي انجام اين كار ، تنها كاري كه بايد انجام دهيد اضافه كردن وردپرس / به پايان مقدار پيش فرض است: براي ذخيره اين تغيير، روي آيكون save كليك كنيد. در مرحله بعد ، بايد پرونده هاي index.php را فعال كنيد تا از آنها براي پردازش درخواست هايي كه توسط پرونده هاي استاتيك مديريت نمي شوند ، استفاده شود. با اين كار منطق اصلي وردپرس به درستي كار مي كند. در حالي كه هنوز در تب General هستيد، براي يافتن بخش Index Files به پايين برويد و بر روي نماد edit آن كليك كنيد: در قسمت Index Files ، index.html را با index.php پيش ببريد. با قرار دادن index.php قبل از index.html ، به فايلهاي شاخص PHP اجازه مي دهيد كه اولويت داشته باشند. پس از به روزرساني اين قسمت ، مانند عكس خواهد بود قبل از ادامه ، روي آيكون save كليك كنيد. در مرحله بعد ، به سربرگ Rewrite هاست مجازي برويد. بخش Rewrite Control را پيدا كنيد و دكمه ويرايش را فشار دهيد: با كليك بر روي دكمه هاي شعاعي مربوطه ، هر دو گزينه Enable Rewrite و Auto Load را از گزينه هاي .htaccess روي Yes بگذاريد. پيكربندي دستورالعمل هاي بازنويسي در اين روش به شما امكان مي دهد از نصب مجدد لينك ها در نصب وردپرس خود استفاده كنيد: بعد از انجام تغييرات ، روي ذخيره كليك كنيد. هاست مجازي پيش فرض كه همراه با نصب OpenLiteSpeed ​​است شامل برخي از نواحي محافظت شده با رمز عبور براي نمايش ويژگي هاي تأييد اعتبار كاربر OpenLiteSpeed. است. WordPress شامل مكانيزم هاي تأييد اعتبار خاص خود است و ما از هويت مبتني بر پرونده موجود در OpenLiteSpeed ​​استفاده نخواهيم كرد. براي به حداقل رساندن بخش هاي پيكربندي انحرافي فعال در نصب وردپرس ما بايد از اين موارد خلاص شويم. ابتدا بر روي زبانه Security كليك كرده و سپس بر روي دكمه Delete كنار SampleProtectedArea در جدول Realms List كليك كنيد: از شما خواسته مي شود حذف را تأييد كنيد. براي ادامه بر روي delete كليك كنيد در مرحله بعد ، روي سربرگ Context كليك كنيد. در Context List ، محتواي /protected/ را كه با قلمرو امنيتي كه اخيراً حذف كرديد مرتبط بود را حذف كنيد: مجدداً بايد با كليك كردن روي delete ، حذف را تأييد كنيد. شما مي توانيد با اطمينان با استفاده از همان تكنيك ، همه متن هاي ديگر را پاك كنيد ، زيرا ما به آنها احتياج نخواهيم داشت. ما به طور خاص محتواي /protected/ متن را حذف كرديم زيرا در غير اين صورت خطايي به دليل حذف قلمرو امنيت مرتبط با آن ايجاد مي شود (كه ما فقط در تب Security حذف كرده ايم.) پس از آن ، در گوشه سمت راست بالاي كنسول OpenLiteSpeed ​​، آيكون Graceful Restart را فشار دهيد. با اين كار سرور OpenLiteSpeed ​​ دوباره راه اندازي مي شود و باعث مي شود تغييراتي كه ايجاد كرده ايد به مرحله اجرا برسد: با اين كار ، سرور OpenLiteSpe شما كاملاً پيكربندي شده است. اكنون آماده تنظيم وردپرس در مرورگر خود هستيد. مرحله 7 – تكميل نصب از طريق واسط وردپرس اكنون كه پيكربندي سرور كامل شد ، مي توانيم نصب را از طريق رابط وب انجام دهيم. در مرورگر وب خود ، به نام دامنه سرور يا آدرس IP عمومي خود برويد: http: // server_domain_or_IP زباني را كه مي خواهيد استفاده كنيد انتخاب كنيد: در مرحله بعد به صفحه اصلي تنظيمات خواهيد رسيد. يك نام براي سايت وردپرس خود انتخاب كنيد و يك نام كاربري را انتخاب كنيد (توصيه مي شود براي اهداف امنيتي چيزي مانند “ادمين” انتخاب نكنيد). رمزعبور قوي به صورت خودكار ايجاد مي شود. اين رمز عبور را ذخيره كنيد يا يك رمزعبور قوي ديگر را انتخاب كنيد. آدرس ايميل خود را وارد كنيد و انتخاب كنيد آيا مي خواهيد موتورهاي جستجو را از ايندكس كردن سايت خود منع كنيد: پس از آماده شدن ، روي دكمه Install WordPress كليك كنيد. شما به صفحه اي منتهي مي شويد كه وارد سيستم شويد: پس از ورود به سيستم ، شما به داشبورد مديريت وردپرس منتقل مي شويد: از داشبورد ، مي توانيد تغييراتي در تم سايت خود و انتشار محتواي آن ايجاد كنيد. نتيجه با تكميل اين راهنما ، يك نمونه وردپرس را روي سرور اوبونتو 18.04 كه OpenLiteSpeed ​​را اجرا مي كند ، نصب و پيكربندي كرديد. برخي مراحل متداول بعدي بايد براي تنظيمات پيوند مجدد پست هاي شما انتخاب شوند (كه مي توانيد در Settings > Permalinksپيدا كنيد) يا انتخاب يك تم جديد (در Appearance > Themes). اگر اين اولين باري است كه از WordPress استفاده مي كنيد ، كمي رابط را جستجو كنيد تا با CMS جديد خود آشنا شويد.
براي افزايش امنيت سايت جديد وردپرس خود ، توصيه مي كنيم آن را پيكربندي كنيد تا با SSL كار كند تا بتواند از طريق HTTPS محتوا را ارائه دهد. براي نصب LetsEncrypt و تنظيم اين آموزش ، از اسناد OpenLiteSpeed ​​بازديد كنيد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳۰ دى ۱۳۹۸ساعت: ۰۲:۳۱:۲۹ توسط:server موضوع:

نحوه نصب Apache Kafka در Debian 10

Apache Kafka يك كارگزار پيام توزيع شده محبوب است كه براي مديريت حجم زيادي از داده هاي زمان-واقعي طراحي شده است. خوشه كافكا بسيار مقياس پذير و داراي تحمل خطا است و همچنين نسبت به ساير واسطه هاي پيام مانند ActiveMQ و RabbitMQ از توان بسيار بالاتري برخوردار است. اگرچه معمولاً از آن به عنوان يك سيستم پيام رسان انتشار / اشتراك استفاده مي شود ، بسياري از سازمان ها نيز از آن براي جمع آوري ورود به سيستم استفاده مي كنند زيرا فضاي ذخيره سازي مداوم را براي پيام هاي منتشر شده ارائه مي دهد.
يك سيستم پيام رساني انتشار / اشتراك به يك يا چند توليد كننده اجازه مي دهد پيام ها را بدون در نظر گرفتن تعداد مصرف كنندگان يا نحوه پردازش پيام ها منتشر كنند. متقاضيان داراي اشتراك در مورد به روزرساني ها و ايجاد پيام هاي جديد بطور خودكار مطلع مي شوند. اين سيستم نسبت به سيستم هايي كه مشتري ها بطور دوره اي در مورد آن نظرسنجي مي شوند تا مشخص شود كه آيا پيام هاي جديد در دسترس است يا خير، بسيار كارآمدتر و مقياس پذير است.
در اين آموزش ، Apache Kafka 2.1.1 را به صورت ايمن روي سرور Debian 10 نصب و پيكربندي مي كنيد ، سپس با توليد و استفاده از يك پيام Hello World راه اندازي خود را تست مي كنيد. سپس مي توانيد KafkaT را به صورت اختياري براي نظارت بر كافكا نصب كنيد و يك خوشه چند گره كافكا را تنظيم كنيد.
پيش نيازها
براي دنبال كردن ، به موارد زير نياز خواهيد داشت:
يك سرور Debian 10 با حداقل 4 گيگابايت رم و يك كاربر غير ريشه با امتيازات سودو. در صورتي كه كاربر غير ريشه تنظيم نكرده ايد، مراحل ذكر شده در راهنماي راه اندازي سرور اوليه براي Debian 10 را دنبال كنيد.
OpenJDK 11 روي سرور شما نصب شده است. براي نصب اين نسخه ، دستورالعمل هاي نصب Java را با Apt در Debian 10 در مورد نصب نسخه هاي خاص OpenJDK دنبال كنيد. كافكا در جاوا نوشته شده است ، بنابراين به JVM نياز دارد.
توجه: نصب هاي بدون رم 4 گيگابايتي ممكن است باعث شود سرويس كافكا از كار بيفتد، در حالي كه دستگاه مجازي جاوا (JVM) در هنگام راه اندازي يك استثناء Out Of Memory را به همراه داشته باشد.
مرحله 1 – ايجاد كاربر براي كافكا
از آنجا كه كافكا مي تواند درخواست ها را از طريق شبكه انجام دهد ، بهترين كار براي ايجاد يك كاربر اختصاصي براي آن است. در صورت به خطر افتادن سرور كافكا ، اين كار آسيب به دستگاه Debian شما را به حداقل مي رساند. در اين مرحله شما كاربر اختصاصي كافكا را ايجاد خواهيد كرد.
به عنوان كاربر sudo غير ريشه خود وارد شويد ، با دستور useradd كاربري بنام kafka بسازيد:
sudo useradd kafka -m
فلگ -m تضمين مي كند كه يك هوم ديركتوري براي كاربر ايجاد مي شود. اين هوم ديركتوري، / home / kafka ، بعداً به عنوان ديركتوري فضاي كاري شما براي اجراي دستورات عمل خواهد كرد.

رمز عبور را با استفاده از passwd تنظيم كنيد:
sudo passwd kafka
رمز عبوري را كه مي خواهيد براي اين كاربر استفاده كنيد وارد كنيد.
در مرحله بعدي ، كاربر كافكا را با دستور adduser به گروه سودو اضافه كنيد ، تا امتيازات لازم براي نصب وابستگي كافكا را داشته باشد:
sudo adduser kafka sudo
كاربر kafka شما اكنون آماده است. با استفاده از su وارد اين حساب شويد:
su -l kafka
اكنون كه كاربر اختصاصي كافكا را ايجاد كرده ايد ، مي توانيد به دانلود و استخراج باينري هاي كافكا برويد.
مرحله 2 – دانلود و استخراج باينري هاي كافكا
در اين مرحله، باينري هاي كافكا را در پوشه هاي اختصاصي در ديركتوري هوم كاربر kafka خود دانلود و اكستركت مي كنيد.
براي شروع ، دايركتوري را در / home / kafka با نام Downloads براي ذخيره دانلودهاي خود ايجاد كنيد:
mkdir ~/Downloads
در مرحله بعدي، حلقه را با استفاده از apt-get نصب كنيد تا بتوانيد فايلهاي از راه دور را دانلود كنيد:
sudo apt-get update && sudo apt-get install curl
در صورت درخواست، Y را تايپ كنيد تا دانلود curl را تأييد كنيد.
پس از نصب Curl ، از آن براي دانلود باينري هاي كافكا استفاده كنيد:
curl “https://archive.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz” -o ~/Downloads/kafka.tgz
دايركتوري به نام kafka ايجاد كنيد و به اين فهرست تغيير دهيد. اين دايركتوري پايه نصب كافكا خواهد بود:
mkdir ~/kafka && cd ~/kafka
با استفاده از دستور tar ، آرشيوي را كه دانلود كرده ايد استخراج كنيد:
tar -xvzf ~/Downloads/kafka.tgz –strip 1
شما فلگ –strip 1 را براي اطمينان از استخراج محتواي بايگاني در ~ / kafka / و نه در ديركتوري ديگري در داخل آن ، مانند ~ / kafka / kafka_2.12-2.1.1 / مشخص كرده ايد.
اكنون كه باينري ها را با موفقيت دانلود و استخراج كرده ايد ، مي توانيد پيكربندي كافكا را انجام دهيد تا امكان حذف موضوع فراهم شود.
مرحله 3 – پيكربندي سرور كافكا
رفتار پيش فرض كافكا به ما اجازه نمي دهد تا عنوان، دسته بندي، گروه يا نام فيد را براي انتشار پيام ها حذف كنيم. براي تغيير اين، پرونده پيكربندي را ويرايش مي كنيد.
گزينه هاي پيكربندي كافكا در server.properties مشخص شده است. اين پرونده را با nano يا ويرايشگر مورد علاقه خود باز كنيد:
nano ~/kafka/config/server.properties
بياييد تنظيماتي را اضافه كنيم كه به ما امكان حذف عناوين كافكا را مي دهد. خط هايلايت شده زير را در زير فايل اضافه كنيد:
~/kafka/config/server.properties

group.initial.rebalance.delay.ms

delete.topic.enable = true

فايل را ذخيره كنيد و از nano خارج شويد. اكنون كه Kafka را پيكربندي كرده ايد، مي توانيد براي راه اندازي و فعال كردن كافكا در هنگام راه اندازي فايل هاي واحد systemed ايجاد كنيد.
مرحله 4 – ايجاد فايلهاي واحد سيستمي و راه اندازي سرور كافكا
در اين بخش فايلهاي واحد سيستمي براي سرويس كافكا ايجاد مي كنيد. اين به شما كمك مي كند تا خدمات متداول مانند شروع، متوقف كردن و راه اندازي مجدد كافكا را به روشي سازگار با ساير سرويس هاي لينوكس انجام دهيد.
ZooKeeper سرويسي است كه كافكا براي مديريت وضعيت و تنظيمات خوشه اي از آن استفاده مي كند. معمولاً در سيستم هاي توزيع شده به عنوان يك جزء اساسي مورد استفاده قرار مي گيرد. در اين آموزش از Zookeeper براي مديريت اين جنبه هاي كافكا استفاده خواهيد كرد. اگر تمايل داريد اطلاعات بيشتري در مورد آن بدانيد ، به مطالب ZooKeeper رسمي ما مراجعه كنيد.
ابتدا فايل واحد را براي zookeeper ايجاد كنيد:
sudo nano /etc/systemd/system/zookeeper.service
تعريف واحد زير را در پرونده وارد كنيد:
/etc/systemd/system/zookeeper.service
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/kafka/bin/zookeeper-server-start.sh /home/kafka/kafka/config/zookeeper.properties
ExecStop=/home/kafka/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص مي كند كه ZooKeeper به شبكه نياز دارد و سيستم فايل قبل از شروع آن آماده است.
در بخش [Service] مشخص شده است كه systemd براي شروع و متوقف كردن سرويس بايد از پرونده هاي zookeeper-server-start.sh و zookeeper-server-stop.sh استفاده كند. همچنين مشخص مي كند در صورت خارج شدن غيرطبيعي ، ZooKeeper بايد به طور خودكار مجدداً راه اندازي شود.
در مرحله بعد، فايل سرويس systemd را براي kafka ايجاد كنيد:
sudo nano /etc/systemd/system/kafka.service

تعريف واحد زير را در پرونده وارد كنيد:
/etc/systemd/system/kafka.service
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c ‘/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1’
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

بخش [Unit] مشخص مي كند كه اين فايل واحد به zookeeper.service بستگي دارد. اين امر اطمينان مي دهد كه با شروع سرويس كافكا ، zookeeper به طور خودكار شروع مي شود.
در بخش [Service] مشخص شده است كه systemd بايد براي شروع و توقف سرويس از فايلهاي پوسته kafka-server-start.sh و kafka-server-stop.sh استفاده كند. همچنين مشخص مي كند در صورت خارج شدن غير عادي ، كافكا بايد به طور خودكار مجدداً راه اندازي شود.
اكنون كه واحدها تعريف شده اند ، كافكا را با دستور زير شروع كنيد:
sudo systemctl start kafka
براي اطمينان از شروع موفقيت آميز سرور ، گزارش هاي ژورنال را براي واحد kafka بررسي كنيد:
sudo journalctl -u kafka
خروجي مشابه موارد زير را مشاهده خواهيد كرد:
Mar 23 13:31:48 kafka systemd[1]: Started kafka.service.

اكنون يك سرور كافكا روي درگاه 9092 داريد كه درگاه پيش فرض براي كافكا است.
شما سرويس kafka را شروع كرده ايد ، اما اگر مي خواهيد سرور خود را دوباره راه اندازي كنيد ، هنوز به طور خودكار شروع نمي شود. براي فعال كردن kafka در بوت سرور ، اين سرور را اجرا كنيد:
sudo systemctl enable kafka
اكنون كه سرويس ها را شروع و فعال كرده ايد ، زمان آن رسيده است كه نصب را بررسي كنيد.
مرحله 5 – تست نصب
بياييد پيام Hello World را منتشر و استفاده كنيم تا مطمئن شويم كه سرور كافكا به درستي رفتار مي كند. انتشار پيام در كافكا به موارد زير بستگي دارد:
تهيه كننده، كه امكان انتشار سوابق و داده ها به عناوين را فراهم مي كند.
مصرف كننده، كه پيام ها و داده ها را از عناوين مي خواند.
ابتدا با تايپ كردن دستور زير عنواني به نام TutorialTopic ايجاد كنيد:
~/kafka/bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic TutorialTopic
مي توانيد با استفاده از اسكريپت kafka-console-producer.sh يك تهيه كننده از خط فرمان ايجاد كنيد. اين تهيه كننده نام ميزبان ، پورت و نام عنوان سرور كافكا را به عنوان آرگومان ميشناسد.

رشته Hello, World را با تايپ كردن دستور زير براي عنوان TutorialTopic منتشر كنيد:
echo “Hello, World” | ~/kafka/bin/kafka-console-producer.sh –broker-list localhost:9092 –topic TutorialTopic > /dev/null
فلگ – broker-list ليست كارگزاران پيام براي ارسال پيام به آن ها كه در اين مورد localhost: 9092 است را تعيين مي كند. –topic موضوع را به عنوان TutorialTopic تعيين مي كند.
در مرحله بعد ، مي توانيد با استفاده از اسكريپت kafka-console-consumer.sh يك مصرف كننده كافكا ايجاد كنيد. انتظار مي رود نام ميزبان و پورت سرور ZooKeeper و نام تاپيك به عنوان آرگومان باشد.
دستور زير از پيام هاي TutorialTopic استفاده مي كند. توجه داشته باشيد كه از فلگ –from-beginning استفاده كنيد كه امكان استفاده از پيام هايي را كه قبل از شروع مصرف كننده منتشر شده است ، فراهم كند:
~/kafka/bin/kafka-console-consumer.sh –bootstrap-server `localhost:9092` –topic TutorialTopic –from-beginning
–bootstrap-server ليستي از ورودي ها به خوشه كافكا را ارائه مي دهد. در اين حالت ، از localhost استفاده مي كنيد: 9092.
Hello, World را در ترمينال خود مشاهده خواهيد كرد:
خروجي
Hello, World

اين اسكريپت همچنان اجرا مي شود و منتظر انتشار پيام هاي بيشتري براي موضوع خواهد بود. با خيال راحت يك ترمينال جديد باز كنيد و يك تهيه كننده راه اندازي كنيد تا چند پيام ديگر انتشار دهد. شما بايد همه آنها را در خروجي مصرف كننده ببينيد. اگر مي خواهيد در مورد نحوه استفاده از كافكا اطلاعات بيشتري كسب كنيد ، به اطلاعات موجود در لينك كافكا رسمي مراجعه كنيد.
وقتي آزمايش انجام شد ، CTRL + C را فشار دهيد تا اسكريپت مصرف كننده متوقف شود. اكنون كه نصب را آزمايش كرده ايد ، مي توانيد براي اجراي بهتر خوشه كافكا ، به نصب KafkaT برويد.
مرحله 6 – نصب KafkaT (اختياري)
KafkaT ابزاري از Airbnb است كه مشاهده جزئيات مربوط به خوشه كافكا و انجام برخي كارهاي اجرايي از خط فرمان را براي شما آسانتر مي كند. از آنجا كه اين يك Ruby gem است ، براي استفاده از آن به Ruby نياز خواهيد داشت. براي ساختن ساير gemها كه به آن بستگي دارد ، به بسته build-essential نيز احتياج خواهيد داشت. آنها را با استفاده از apt نصب كنيد:
sudo apt install ruby ruby-dev build-essential
اكنون مي توانيد KafkaT را با استفاده از دستور gem نصب كنيد:
sudo CFLAGS=-Wno-error=format-overflow gem install kafkat
گزينه CFLAGS = -Wno-error = format-overflow هشدارهاي فرمت بيش از حد را غيرفعال مي كند و براي gem ZooKeeper ، كه وابسته به KafkaT است ، لازم ميباشد.

KafkaT از .kafkatcfg به عنوان فايل پيكربندي براي تعيين نصب و ورود به فهرست سرورهاي كافكا استفاده مي كند. همچنين بايد داراي ورودي باشد كه KafkaT را به عنوان مثال ZooKeeper به شما نشان دهد.
يك فايل جديد با نام .kafkatcfg ايجاد كنيد:
nano ~/.kafkatcfg
خطوط زير را اضافه كنيد تا اطلاعات لازم در مورد سرور كافكا و مثال Zookeeper خود را مشخص كنيد:
~/.kafkatcfg
{
“kafka_path”: “~/kafka”,
“log_path”: “/tmp/kafka-logs”,
“zk_path”: “localhost:2181”
}

اكنون آماده استفاده از كافكا هستيد. براي شروع ، در اينجا نحوه استفاده از آن براي مشاهده جزئيات مربوط به همه پارتيشن هاي كافكا آورده شده است:
kafkat partitions
خروجي زير را مشاهده خواهيد كرد:
Output
Topic Partition Leader Replicas ISRs
TutorialTopic 0 0 [0] [0]
__consumer_offsets 0 0 [0] [0]

اين خروجي TutorialTopic و همچنين __consumer_offsets يك عنوان داخلي كه توسط كافكا براي ذخيره اطلاعات مربوط به مشتري استفاده مي شود ، نشان مي دهد. با خيال راحت مي توانيد خطوط شروع شده با __consumer_offsets را ناديده بگيريد.
براي كسب اطلاعات بيشتر در مورد KafkaT ، به منبع GitHub آن مراجعه كنيد.
اكنون كه KafkaT را نصب كرديد ، مي توانيد Kafka را به صورت اختياري بر روي خوشه اي از سرورهاي Debian 10 تنظيم كنيد تا يك خوشه چند گره ايجاد شود.
مرحله 7 – تنظيم يك خوشه چند گره (اختياري)
اگر مي خواهيد با استفاده از سرورهاي Debian 10 بيشتر ، يك خوشه چند كاره ايجاد كنيد، مرحله 1 ، مرحله 4 و مرحله 5 را روي هر يك از ماشين هاي جديد تكرار كنيد. علاوه بر اين، براي پرونده هاي ~ / kafka / config / server.properties تغييرات زير را انجام دهيد:

مقدار ويژگي broker.id را طوري تغيير دهيد كه در كل خوشه بي نظير باشد. اين ويژگي به طور منحصر به فرد هر سرور موجود در خوشه را مشخص مي كند و مي تواند هر رشته اي را به عنوان مقدار آن داشته باشد. به عنوان مثال ، “server1” ، “server2” و غيره ، به عنوان شناساگر مفيد خواهند بود.
مقدار ويژگي zookeeper.connect را به گونه اي تغيير دهيد كه همه گره ها به همان مثال ZooKeeper اشاره كنند. اين ويژگي آدرس نمونه ZooKeeper را مشخص مي كند و از قالب : پيروي مي كند. براي اين آموزش ، شما از your_first_server_IP: 2181 استفاده خواهيد كرد و your_first_server_IP را با آدرس IP سرور Debian 10 كه قبلاً تنظيم كرده ايد جايگزين كنيد.
اگر مي خواهيد چندين نمونه ZooKeeper براي خوشه خود داشته باشيد ، مقدار ويژگي zookeeper.connect در هر گره بايد يك رشته يكسان با كاما باشد كه در آن آدرس هاي IP و شماره پورت همه موارد ZooKeeper را نشان مي دهد.
توجه: اگر يك فايروال داريد كه روي سرور Debian 10 با نصب Zookeeper فعال شده است ، حتما پورت 2181 را باز كنيد تا اجازه ورود از ساير گره هاي خوشه را دريافت كنيد.
مرحله 8 – محدود كردن كاربر كافكا
اكنون كه تمام مراحل نصب انجام شده است ، مي توانيد امتيازات ادمين كاربر kafka را حذف كنيد. قبل از انجام اين كار ، مانند هر كاربر سودو غير ريشه خارج شويد و دوباره وارد سيستم شويد. اگر هنوز همان بخش شل را اجرا مي كنيد كه اين آموزش را با آن شروع كرده ايد ، فقط exit تايپ كنيد.
كاربر كافكا را از گروه سودو حذف كنيد:
sudo deluser kafka sudo
براي بهبود بيشتر امنيت سرور كافكا ، رمزعبور كاربر kafka را با استفاده از دستور passwd قفل كنيد. اين اطمينان مي دهد كه هيچ كس نمي تواند با استفاده از اين حساب به طور مستقيم وارد سرور شود:
sudo passwd kafka -l
در اين مرحله فقط كاربر root يا يك كاربر sudo مي توانند با وارد كردن دستور زير به عنوان kafka وارد شوند:
sudo su – kafka
در آينده اگر مي خواهيد قفل آن را باز كنيد ، از passwd با گزينه -u استفاده كنيد:
sudo passwd kafka -u
شما اكنون با موفقيت امتيازات ادمين كاربري kafka را محدود كرده ايد.
نتيجه
اكنون Apache Kafka به طور ايمن روي سرور Debian شما اجرا شده است. شما مي توانيد با ايجاد تهيه كنندگان و مصرف كنندگان از بين مشتري هاي كافكا ، كه براي اكثر زبان هاي برنامه نويسي در دسترس است، از آن در پروژه هاي خود استفاده كنيد. براي كسب اطلاعات بيشتر در مورد كافكا، همچنين مي توانيد با آپاچي كافكا مشورت كنيد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳۰ دى ۱۳۹۸ساعت: ۰۲:۳۰:۲۱ توسط:server موضوع:

چگونه مي توان پلتفرم 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 را بررسي كنيد.


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳۰ دى ۱۳۹۸ساعت: ۰۲:۲۹:۳۷ توسط:server موضوع:

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

مقدمه
DNSControl ابزاري زيرساختي به عنوان كد است كه به شما امكان مي دهد بخش هاي DNS خود را با استفاده از اصول استاندارد توسعه نرم افزار از جمله كنترل نسخه ، آزمايش و استقرار خودكار گسترش دهيد و مديريت كنيد. DNSControl توسط Stack Exchange ايجاد شده و در Go نوشته شده است.
استفاده از DNSControl بسياري از مشكلات مديريت دستي DNS را از بين مي برد ، زيرا فايل هاي بخش در يك قالب قابل برنامه ريزي ذخيره مي شوند. اين امر به شما امكان مي دهد بخش هاي مختلفي را به طور همزمان به چندين ارائه دهنده DNS گسترش دهيد ، خطاهاي دستوري را شناسايي كرده و پيكربندي DNS خود را به صورت خودكار انجام دهيد و خطاي انساني را كاهش دهيد. يكي ديگر از كاربردهاي متداول DNSControl انتقال سريع DNS شما به يك ارائه دهنده ديگر است. به عنوان مثال ، در صورت حمله DDoS يا قطع سيستم.
در اين آموزش ، DNSControl را نصب و پيكربندي خواهيد كرد ، يك پيكربندي اساسي DNS ايجاد كرده و شروع به گسترش سوابق DNS به يك ارائه دهنده زنده مي كنيد. به عنوان بخشي از اين آموزش ، ما از vpsgol به عنوان ارائه دهنده DNS نمونه استفاده خواهيم كرد. اگر مي خواهيد از ارائه دهنده ديگري استفاده كنيد ، تنظيمات بسيار مشابه است. پس از اتمام ، مي توانيد پيكربندي DNS خود را در يك محيط امن آفلاين مديريت و آزمايش كنيد و سپس بطور خودكار آن را به مرحله توليد منتقل كنيد.
پيش نيازها
قبل از شروع اين راهنما به موارد زير نياز خواهيد داشت:
⦁ يك سرور مجازي Debian 10 كه با دنبال كردن ستاپ سرور مجازي اوليه با Debian 10 راه اندازي شده ، از جمله كاربر sudo غير ريشه و فايروال فعال براي اينكه پورت هاي غير ضروري را مسدود كند. your-server-ipv4-address به آدرس IP سرور مجازي اشاره دارد، جايي كه وب سايت يا دامنه خود را ميزباني مي كنيد. your-server-ipv6-address به آدرس IPv6 سرور مجازي اشاره دارد جايي كه ميزبان وب سايت يا دامنه خود هستيد.
⦁ نام دامنه كاملاً ثبت شده با DNS كه توسط يك ارائه دهنده پشتيباني شده ميزباني مي شود. در اين آموزش از your_domain و vpsgol به عنوان ارائه دهنده خدمات استفاده مي شود.
⦁ يك كليد API vpsgol (نشانه دسترسي شخصي) با مجوزهاي خواندن و نوشتن. براي ايجاد يك چنين كليدي، به نحوه ايجاد نشانه دسترسي شخصي مراجعه كنيد.
پس از آماده شدن ، به عنوان كاربر غير ريشه وارد سرور مجازي خود شويد.
مرحله 1 – نصب DNSControl
DNSControl در Go نوشته شده است ، بنابراين اين مرحله را با نصب Go روي سرور مجازي خود و تنظيم GOPATH خود شروع خواهيد كرد.
Go در منابع پيش فرض نرم افزار Debian موجود است و نصب آن با استفاده از ابزارهاي مديريت بسته معمولي امكان پذير است.
همچنين بايد Git را نصب كنيد ، زيرا اين امر به شما اجازه مي دهد تا نرم افزار DNSControl را از منبع آن در GitHub دانلود و نصب كنيد.
با به روز كردن ايندكس پكيج محلي شروع كنيد تا تغييرات جديد بالادست را منعكس كنيد:
$ sudo apt update
سپس پكيج هاي golang-go و git را نصب كنيد:
$sudo apt install golang-go git
پس از تأييد نصب ، apt دو برنامه Go و Git و همچنين كليه موارد مورد نياز خود را دانلود و نصب خواهد كرد.
در مرحله بعد ، متغيرهاي مورد نياز محيط مسير را براي Go پيكربندي خواهيد كرد. اگر دوست داريد در اين باره اطلاعات بيشتري كسب كنيد ، مي توانيد اين آموزش آشنايي با GOPATH را بخوانيد. با ويرايش فايل ~/.profile شروع كنيد:
⦁ $ nano ~/.profile
خطوط زير را به انتهاي فايل خود اضافه كنيد:
~/.profile

export GOPATH=”$HOME/go”
export PATH=”$PATH:$GOPATH/bin”

پس از افزودن اين خطوط به پايين فايل ، آن را ذخيره كرده و ببنديد. سپس پروفايل خود را با ورود به سيستم و برگشت مجدد يا سورس دهي فايل دوباره بارگيري كنيد:
⦁ $ source ~/.profile
اكنون Go را نصب كرده و پيكربندي كرده ايد ، مي توانيد DNSControl را نصب كنيد.
از دستور go get مي توان براي گرفتن كپي از كد ، كامپايل آن به صورت خودكار و نصب آن در فهرست Go استفاده كرد:
⦁ $ go get github.com/StackExchange/dnscontrol
پس از اتمام اين كار ، مي توانيد نسخه نصب شده را بررسي كنيد تا مطمئن شويد كه همه چيز كار مي كند:

⦁ $ dnscontrol version
خروجي شما شبيه به زير خواهد بود:
Output
dnscontrol 2.9-dev

اگر يك خطاي dnscontrol: command not found مشاهده كرديد ، راه اندازي مسير Go خود را دو بار بررسي كنيد.
اكنون كه DNSControl را نصب كرده ايد ، مي توانيد يك دايركتوري پيكربندي ايجاد كرده و DNSControl را به ارائه دهنده DNS خود متصل كنيد تا اجازه دهيد تغييراتي در فايل هاي DNS شما ايجاد كند.
مرحله 2 – پيكربندي DNSControl
در اين مرحله ، دايركتوري هاي تنظيمات لازم را براي DNSControl ايجاد خواهيد كرد و آن را به ارائه دهنده DNS خود وصل كنيد تا بتواند شروع به ايجاد تغييرات زنده در سوابق DNS كند.
ابتدا يك دايركتوري جديد ايجاد كنيد كه در آن بتوانيد پيكربندي DNSControl خود را ذخيره كنيد و سپس به داخل آن برويد:
⦁ $ mkdir ~/dnscontrol
⦁ $ cd ~/dnscontrol
توجه: اين آموزش در مورد تنظيم اوليه DNSControl است. اما براي استفاده توليدي، توصيه مي شود پيكربندي DNSControl را در سيستم كنترل نسخه (VCS) مانند Git ذخيره كنيد. از مزاياي اين امر مي توان به كنترل كامل نسخه ، ادغام با CI / CD براي آزمايش ، گسترش چرخشي يكپارچه و غيره اشاره كرد.
اگر قصد داريد از DNSControl براي نوشتن فايل هاي بخش BIND استفاده كنيد ، بايد ديركتوري zones  را نيز ايجاد كنيد:
⦁ $ mkdir ~/dnscontrol/zones
فايل هاي بخش BIND يك روش استاندارد و خام براي ذخيره بخش ها/ فايل هاي DNS با فرمت متني ساده است. آنها در ابتدا براي نرم افزار سرور مجازي BIND DNS مورد استفاده قرار گرفتند ، اما اكنون به عنوان روش استاندارد براي ذخيره سازي بخش هاي DNS مورد استفاده قرار ميگيرند. اگر مي خواهيد آنها را به يك سرور مجازي DNS سفارشي يا ميزبان سرخود يا براي اهداف حسابرسي وارد كنيد ، فايل هاي بخش BIND توليد شده توسط DNSControl مفيد هستند.
با اين حال ، اگر فقط مي خواهيد از DNSControl براي ايجاد تغييرات DNS به يك ارائه دهنده مديريت شده استفاده كنيد ، ديركتوري zones  مورد نياز نخواهد بود.
در مرحله بعد ، بايد فايل creds.json را پيكربندي كنيد ، اين همان چيزي است كه به DNSControl اجازه مي دهد تا به ارائه دهنده DNS خود صدقيت دهيد و تغييراتي ايجاد كند. فرمت creds.json بسته به ارائه دهنده DNS مورد استفاده شما كمي متفاوت است. لطفاً به ليست ارائه دهندگان خدمات در اسناد رسمي DNSControl مراجعه كنيد تا پيكربندي ارائه دهنده خود را پيدا كنيد.

فايل creds.json را در ديركتوري ~ / dnscontrol ايجاد كنيد:

⦁ $ cd ~/dnscontrol
⦁ $ nano creds.json
پيكربندي نمونه creds.json را براي ارائه دهنده DNS خود به فايل اضافه كنيد. اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده مي كنيد ، مي توانيد موارد زير را استفاده كنيد:
~/dnscontrol/creds.json
{
vpsgol“: {
“token”: “your-vpsgol-oauth-token”
}
}

اين فايل به DNSControl ميگويد كه شما ميخواهيد به كدام ارائه دهندگان DNS متصل شود.
بايد براي ارائه دهنده DNS نوعي تأييد اعتبار را ارائه دهيد. اين معمولاً يك كليد API يا نشان OAuth است ، اما برخي از ارائه دهندگان به اطلاعات اضافي نياز دارند ، همانطور كه در ليست ارائه دهندگان خدمات در اسناد DNSControl ثبت شده است.
هشدار: اين نشانه به حساب ارائه دهنده DNS شما دسترسي مي يابد ، بنابراين بايد آن را مانند رمز عبور خود محافظت كنيد. همچنين ، اطمينان حاصل كنيد كه اگر از سيستم كنترل نسخه استفاده مي كنيد ، فايلي كه حاوي نشانه است ، حذف نشده باشد (مثلاً با استفاده از .gitignore) يا به طريقي رمزگذاري شود.
اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده مي كنيد ، مي توانيد از علائم مورد نياز OAuth در تنظيمات حساب vpsgol خود كه به عنوان بخشي از پيش نيازها توليد كرده ايد استفاده كنيد.
اگر چندين ارائه دهنده DNS مختلف داريد- مثلاً براي نام هاي دامنه متعدد ، يا بخش هاي DNS تفويض شده- مي توانيد همه اينها را در همان فايل creds.json تعريف كنيد.
شما دايركتوري هاي پيكربندي اوليه DNSControl را تنظيم كرده ايد و creds.json را پيكربندي كرده ايد تا به DNSControl اجازه دهيد تا ارائه دهنده DNS خود را تأييد كنيد و تغييرات ايجاد نماييد. در مرحله بعدي پيكربندي را براي بخش هاي DNS خود ايجاد خواهيد كرد.
مرحله 3 – ايجاد يك فايل پيكربندي DNS
در اين مرحله ، يك فايل پيكربندي اوليه DNS ايجاد خواهيد كرد ، كه شامل سوابق DNS براي نام دامنه يا بخش DNS تفويض شده شما خواهد بود.

dnsconfig.js فايل اصلي پيكربندي DNS براي DNSControl است. در اين فايل ، بخش هاي DNS و سوابق مربوط به آنها با استفاده ازJavaScript تعريف شده است. كه به DSL يا Domain Specific Language معروف است. صفحه JavaScript DSL در مطالب DNSControl جزئيات بيشتري را ارائه مي دهد.
براي شروع ، فايل پيكربندي DNS را در فهرست ~ / dnscontrol ايجاد كنيد:
⦁ $ cd ~/dnscontrol
⦁ $ nano dnsconfig.js
سپس پيكربندي نمونه زير را به فايل اضافه كنيد:
~ / dnscontrol / dnsconfig. ~/dnscontrol/dnsconfig.js
// Providers:

var REG_NONE = NewRegistrar(‘none’, ‘NONE’);
var DNS_vpsgol = NewDnsProvider(‘vpsgol‘, ‘vpsgol‘);

// Domains:

D(‘your_domain’, REG_NONE, DnsProvider(DNS_vpsgol),
A(‘@’, ‘your-server-ipv4-address’)
);

اين فايل نمونه نام دامنه يا بخش DNS را در يك ارائه دهنده خاص تعريف مي كند ، كه در اين حالت your_domain به ميزباني vpsgol است. يك سابقه A نيز براي ريشه بخش (@)تعريف شده است ، كه به آدرس IPv4 سرور مجازي كه ميزبان دامنه / وب سايت شما هستند اشاره دارد.
سه كاركرد اصلي وجود دارد كه يك فايل پيكربندي اساسي DNSControl را تشكيل مي دهند:
⦁ NewRegistrar(name, type, metadata) : ثبت دامنه را براي نام دامنه شما تعيين مي كنيد. DNSControl مي تواند از اين روش براي ايجاد تغييرات مورد نياز مانند تغيير نام سرورهاي معتبر استفاده كند. اگر فقط مي خواهيد از DNSControl براي مديريت بخش هاي DNS خود استفاده كنيد ، اين حالت معمولاً به عنوان NONE باقي مي ماند.
⦁ NewDnsProvider(name, type, metadata) : ارائه دهنده خدمات DNS را براي نام دامنه يا بخش واگذار شده تعريف مي كند. اينجاست كه DNSControl تغييرات DNS را ايجاد مي كند.
⦁ D(name, registrar, modifiers) : يك نام دامنه يا بخش DNS تفويض شده براي مديريت DNSControl ، و همچنين سوابق DNS موجود در بخش تعريف ميكند.
شما بايد با استفاده از ليست ارائه دهندگان خدمات در مطالب DNSControl ، NewRegistrar () ، NewDnsProvider () و D () را پيكربندي كنيد.
اگر از vpsgol به عنوان ارائه دهنده DNS خود استفاده مي كنيد ، و فقط نياز داريد بتوانيد DNS را تغيير دهيد (به جاي نام سرورهاي معتبر) ، نمونه موجود در بلوك كد قبلي نيز صحيح است.
پس از تكميل ، فايل را ذخيره كنيد و ببنديد.
در اين مرحله ، يك فايل پيكربندي DNS را براي DNSControl ، با ارائه دهندگان مربوطه تعريف شده، تنظيم مي كنيد. در مرحله بعد ، فايل را با برخي از سوابق مفيد DNS پر مي كنيد.
مرحله 4 – پر كردن فايل پيكربندي DNS
در مرحله بعد ، مي توانيد با استفاده از نحو DNSControl ، فايل پيكربندي DNS را با سوابق مفيد DNS براي وب سايت يا خدمات خود پر كنيد.
بر خلاف فايل هاي بخش BIND قديمي ، كه در آن فايل هاي DNS با فرمت خام و خط به خط نوشته مي شوند ، سوابق DNS درون DNSControl به عنوان يك پارامتر تابع (اصلاح كننده دامنه) به عملكرد D () تعريف مي شوند ، كه مختصراً در مرحله 3 نشان داده شده است.
يك اصلاح كننده دامنه براي هر يك از انواع استاندارد ركورد DNS ، از جمله A ، AAAA ، MX ، TXT ، NS ، CAA و غيره وجود دارد. ليست كاملي از انواع ركورد موجود در بخش Domain Modifiers مطالب DNSControl موجود است.
اصلاح كننده هاي مربوط به سوابق جداگانه نيز در دسترس هستند (اصلاح كننده هاي سابقه). در حال حاضر اينها در درجه اول براي تنظيم TTL (زمان زندگي) سوابق فردي استفاده مي شود. ليست كاملي از اصلاح كننده هاي ضبط موجود در بخش Record Modifiers در اسناد DNSControl موجود است. اصلاح كننده هاي ثبت اختياري هستند و در اكثر موارد استفاده اصلي مي توان آنها را كنار گذاشت.
دستور تنظيم سوابق DNS براي هر نوع ركورد كمي متفاوت است. در زير چند نمونه از رايج ترين انواع ركورد وجود دارد:
ركوردهاي A :
هدف: براي اشاره به آدرس IPv4.
دستور: A(‘name’, ‘address’, optional record modifiers)
مثال: A(‘@’, ‘your-server-ipv4-address’, TTL(30))
ركوردهاي AAAA :
هدف: براي اشاره به آدرس IPv6.
دستور: AAAA(‘name’, ‘address’, optional record modifiers)
مثال: AAAA(‘@’, ‘your-server-ipv6-address’) (اصلاح كننده ركورد از كار افتاده ، بنابراين TTL پيش فرض استفاده خواهد شد)
ركوردهاي CNAME :

هدف: براي تبديل دامنه / زير دامنه شما به عنوان يك نام مستعار ديگر.
دستور: CNAME(‘name’, ‘target’, optional record modifiers)
مثال: CNAME(‘subdomain1’, ‘example.org.’) (توجه داشته باشيد كه اگر نقطه هايي در مقدار وجود داشته باشد بايد يك دنباله . درج شود)
ركوردهاي MX :
هدف: براي هدايت ايميل به سرورها و آدرس هاي خاص.
دستور: MX(‘name’, ‘priority’, ‘target’, optional record modifiers)
مثال: MX(‘@’, 10, ‘mail.example.net’) توجه داشته باشيد كه اگر نقطه هايي در مقدار وجود داشته باشد بايد يك دنباله . درج شود)
ركوردهاي TXT :
هدف: براي افزودن متن ساده دلخواه ، اغلب براي تنظيمات بدون نوع ركورد خاص خود استفاده مي شوند.
دستور: TXT(‘name’, ‘content’, optional record modifiers)
مثال: TXT(‘@’, ‘This is a TXT record.’)
ركوردهاي CAA :
هدف: محدود كردن و گزارش در مورد مجوزها(CA) كه مي توانند گواهينامه TLS را براي دامنه / زير دامنه شما صادر كنند.
دستور: CAA(‘name’, ‘tag’, ‘value’, optional record modifiers)
مثال: CAA(‘@’, ‘issue’, ‘letsencrypt.org’)
براي شروع اضافه كردن ركوردهاي DNS براي دامنه يا بخش DNS تفويض شده ، پيكربندي DNS خود را ويرايش كنيد:
⦁ $ nano dnsconfig.js
در مرحله بعد ، مي توانيد پر كردن پارامترهاي مربوط به عملكرد D () موجود را با استفاده از دستور گفته شده در ليست قبلي ، و همچنين بخش Domain Modifiers از مطالب DNSControl شروع كنيد. كاما (،) بايد بين هر ركوردي استفاده شود.
براي ارجاع ، بلوك كد در اينجا حاوي يك پيكربندي كامل نمونه براي يك تنظيم DNS ساده اوليه است:
~/dnscontrol/dnsconfig.js

D(‘your_domain’, REG_NONE, DnsProvider(DNS_vpsgol),
A(‘@’, ‘your-server-ipv4-address’),
A(‘www’, ‘your-server-ipv4-address’),
A(‘mail’, ‘your-server-ipv4-address’),
AAAA(‘@’, ‘your-server-ipv6-address’),
AAAA(‘www’, ‘your-server-ipv6-address’),
AAAA(‘mail’, ‘your-server-ipv6-address’),
MX(‘@’, 10, ‘mail.your_domain.’),
TXT(‘@’, ‘v=spf1 -all’),
TXT(‘_dmarc’, ‘v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;’)
);

پس از تكميل تنظيمات اوليه DNS ، فايل را ذخيره كنيد و ببنديد.
در اين مرحله فايل پيكربندي اوليه DNS را تنظيم مي كنيد كه شامل سوابق DNS شماست. در مرحله بعد ، پيكربندي را تست كرده و آن را مستقر مي كنيد.
مرحله 5 – تست و استفاده از پيكربندي DNS
در اين مرحله ، شما يك بررسي دستور محلي را بر روي پيكربندي DNS خود اجرا كرده و سپس تغييرات را در سرور مجازي / ارائه دهنده زنده DNS مستقر مي كنيد.
در مرحله اول ، به فهرست dnscontrol خود برويد:
⦁ $ cd ~/dnscontrol
در مرحله بعدي ، از عملكرد پيش نمايش DNSControl استفاده كنيد تا دستور فايل خود را بررسي كنيد و تغييرات را ايجاد كنيد (بدون اينكه آنها را در واقع ايجاد كنيد)
⦁ $ dnscontrol preview
اگر دستور فايل پيكربندي DNS شما صحيح باشد ، DNSControl مروري بر تغييراتي كه ايجاد مي كند ، ارائه مي دهد. كه بايد شبيه زير باشد:
Output
******************** Domain: your_domain
—– Getting nameservers from: vpsgol
—– DNS Provider: vpsgol…8 corrections
#1: CREATE A your_domain your-server-ipv4-address ttl=300
#2: CREATE A www.your_domain your-server-ipv4-address ttl=300
#3: CREATE A mail.your_domain your-server-ipv4-address ttl=300
#4: CREATE AAAA your_domain your-server-ipv6-address ttl=300
#5: CREATE TXT _dmarc.your_domain “v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;” ttl=300
#6: CREATE AAAA www.your_domain your-server-ipv6-address ttl=300
#7: CREATE AAAA mail.your_domain your-server-ipv6-address ttl=300
#8: CREATE MX your_domain 10 mail.your_domain. ttl=300
—– Registrar: none…0 corrections
Done. 8 corrections.

اگر هشدار خطايي را در خروجي خود مشاهده مي كنيد ، DNSControl جزئياتي راجع به اينكه چه خطايي و در كجاي فايل شما قرار دارد ارائه ميدهد.
هشدار: دستور بعدي تغييراتي را در سوابق DNS شما و احتمالاً ساير تنظيمات ايجاد مي كند. لطفاً اطمينان حاصل كنيد كه براي اين كار آمادگي داريد ، از جمله گرفتن نسخه پشتيبان از پيكربندي DNS موجود خود ، و همچنين اطمينان از داشتن ابزارهايي براي بازگرداندن در صورت لزوم.
سرانجام ، مي توانيد تغييرات را در ارائه دهنده DNS زنده خود ايجاد كنيد:
⦁ $ dnscontrol push
خروجي مشابه با زير را مشاهده خواهيد كرد:
Output
******************** Domain: your_domain
—– Getting nameservers from: vpsgol
—– DNS Provider: vpsgol…8 corrections
#1: CREATE TXT _dmarc.your_domain “v=DMARC1; p=reject; rua=mailto:abuse@your_domain; aspf=s; adkim=s;” ttl=300
SUCCESS!
#2: CREATE A your_domain your-server-ipv4-address ttl=300
SUCCESS!
#3: CREATE AAAA your_domain your-server-ipv6-address ttl=300
SUCCESS!
#4: CREATE AAAA www.your_domain your-server-ipv6-address ttl=300
SUCCESS!
#5: CREATE AAAA mail.your_domain your-server-ipv6-address ttl=300
SUCCESS!
#6: CREATE A www.your_domain your-server-ipv4-address ttl=300
SUCCESS!
#7: CREATE A mail.your_domain your-server-ipv4-address ttl=300
SUCCESS!
#8: CREATE MX your_domain 10 mail.your_domain. ttl=300
SUCCESS!
—– Registrar: none…0 corrections
Done. 8 corrections.

حال اگر تنظيمات DNS مربوط به دامنه خود را در كنترل پنل vpsgol بررسي كنيد ، تغييرات را مشاهده خواهيد كرد.

همچنين مي توانيد با اجراي يك جستجوي DNS براي بخش دامنه / تفويض شده خود با استفاده از Dig ، ايجاد ركورد را بررسي كنيد.
اگر dig را نصب نكرديد ، بايد بسته dnsutils را نصب كنيد:
⦁ $ sudo apt install dnsutils
پس از نصب dig ، مي توانيد از آن براي جستجوي DNS براي دامنه خود استفاده كنيد. خواهيد ديد كه سوابق به همين ترتيب به روز شده اند:
⦁ $ dig +short your_domain
خروجي را مشاهده خواهيد كرد كه آدرس IP و سابقه DNS مربوطه را از بخش شما كه با استفاده از DNSControl مستقر شده است نشان ميدهد. سوابق DNS مي تواند مدتي طول بكشد تا گسترش يابد ، بنابراين ممكن است لازم باشد كه صبر كنيد و اين دستور را دوباره اجرا كنيد.
در اين مرحله آخر ، شما يك بررسي نحو محلي فايل پيكربندي DNS را اجرا كرديد ، سپس آن را به ارائه دهنده زنده DNS خود مستقر كرديد و آزمايش كرديد كه تغييرات با موفقيت انجام شده اند.
نتيجه
در اين مقاله شما DNSControl را تنظيم كرده و پيكربندي DNS را به يك ارائه دهنده زنده مستقر كرده ايد. اكنون مي توانيد تغييرات پيكربندي DNS خود را در يك محيط امن و آفلاين قبل از گسترش آنها ، مديريت و آزمايش كنيد.
اگر مي خواهيد اين موضوع را بيشتر بررسي كنيد ، DNSControl به گونه اي طراحي شده است كه در خط CI / CD شما ادغام شود ، به شما اين امكان را مي دهد تا تست هاي عميق را انجام دهيد و كنترل بيشتري بر روي به كارگيري براي توليد داشته باشيد. همچنين مي توانيد DNSControl را در فرآيندهاي ساخت و استقرار زيرساخت خود ادغام كنيد ، كه به شما امكان مي دهد سرورها را مستقر كرده و آنها را به طور كامل به DNS اضافه كنيد.
اگر مي خواهيد با DNSControl بيشتر پيش برويد ، مقالات vpsgol را در ادامه ببينيد كه مراحل بعدي جالب ديگري را براي كمك به ادغام DNSControl در مديريت تغيير و گردش كار شما در زمينه استقرار زيرساخت ها ارائه مي دهد:
⦁ مقدمه اي براي ادغام مداوم ، تحويل و استقرار
⦁ مقايسه ابزارهاي CI / CD: Jenkins ، GitLab CI ، Buildbot ،Drone و Concourse
⦁ شروع به كار با مديريت پيكربندي


برچسب: ،
ادامه مطلب
امتیاز:
 
بازدید:
+ نوشته شده: ۳۰ دى ۱۳۹۸ساعت: ۰۲:۲۶:۱۸ توسط:server موضوع: