سرور مجازی

۲ مطلب با کلمه‌ی کلیدی «به روز رسانی سرور» ثبت شده است

  • ۰
  • ۰

نحوه استفاده از Ansible برای نصب و راه اندازی Docker در اوبونتو 20.04

ورود به سایت

معرفی

اتوماسیون سرور در حال حاضر به دلیل ماهیت یکبار مصرف محیط های کاربردی مدرن، نقش اساسی در مدیریت سیستم ایفا می کند. ابزارهای مدیریت پیکربندی مانند Ansible معمولاً برای ساده‌سازی فرآیند نصب خودکار سرور با ایجاد رویه‌های استاندارد برای سرورهای جدید و همچنین کاهش خطای انسانی مرتبط با تنظیمات دستی استفاده می‌شوند.

Ansible یک معماری ساده ارائه می دهد که نیازی به نرم افزار خاصی برای نصب روی گره ها ندارد. همچنین مجموعه ای قوی از ویژگی ها و ماژول های داخلی را ارائه می دهد که نوشتن اسکریپت های اتوماسیون را تسهیل می کند.

این راهنما نحوه استفاده از Ansible را برای خودکارسازی مراحل موجود در راهنمای ما در مورد نحوه نصب و استفاده از Docker در اوبونتو 20.04 توضیح می دهد. Docker برنامه‌ای است که فرآیند مدیریت کانتینرها، فرآیندهای جدا شده از منابع را که به روشی مشابه ماشین‌های مجازی عمل می‌کنند، اما قابل حمل‌تر، منابع دوست‌تر و بیشتر به سیستم عامل میزبان وابسته هستند، ساده می‌کند.

پیش نیازها

برای اجرای تنظیمات خودکار ارائه شده توسط playbook در این راهنما، به موارد زیر نیاز دارید:

  • یک گره کنترلی Ansible: یک ماشین اوبونتو 20.04 با Ansible نصب و پیکربندی شده است تا با استفاده از کلیدهای SSH به میزبان Ansible شما متصل شود. اطمینان حاصل کنید که گره کنترل دارای یک کاربر معمولی با مجوزهای sudo و فایروال فعال است، همانطور که در راهنمای راه اندازی سرور اولیه ما توضیح داده شده است.
  • یک یا چند میزبان Ansible: یک یا چند سرور اوبونتو 20.04 راه دور که قبلاً طبق راهنمای نحوه استفاده از Ansible برای خودکارسازی تنظیمات اولیه سرور در اوبونتو 20.04 تنظیم شده است.

این کتاب بازی چه کاری انجام می دهد؟

این کتاب بازی Ansible جایگزینی برای اجرای دستی روشی است که در راهنمای ما در مورد نحوه نصب و استفاده از Docker در اوبونتو 20.04 بیان شده است. Playbook خود را یک بار تنظیم کنید و بعد از هر نصب از آن استفاده کنید.

اجرای این کتاب بازی، اقدامات زیر را روی میزبان های Ansible شما انجام می دهد:

  • aptitude را نصب کنید که توسط Ansible به عنوان جایگزینی برای مدیر بسته apt ترجیح داده می شود.
  • بسته های سیستمی مورد نیاز را نصب کنید.
  • کلید Docker GPG APT را نصب کنید.
  • مخزن رسمی Docker را به منابع apt اضافه کنید.
  • Docker را نصب کنید.
  • ماژول Python Docker را از طریق پیپ نصب کنید.
  • تصویر پیش‌فرض مشخص‌شده توسط default_container_image را از Docker Hub بکشید.
  • تعداد کانتینرهای تعریف شده توسط متغیر container_count را ایجاد کنید، هر کدام با استفاده از تصویر تعریف شده توسط default_container_image، و دستور تعریف شده در default_container_command را در هر کانتینر جدید اجرا کنید.

پس از اتمام اجرای کتاب بازی، تعدادی کانتینر بر اساس گزینه هایی که در متغیرهای پیکربندی خود تعریف کرده اید ایجاد خواهید کرد.

برای شروع، وارد یک کاربر دارای sudo در سرور گره کنترل Ansible خود شوید.

مرحله 1 – آماده کردن Playbook خود

فایل playbook.yml جایی است که تمام وظایف شما در آن تعریف می شود. یک کار کوچکترین واحد عملی است که می توانید با استفاده از کتاب بازی Ansible به طور خودکار انجام دهید. اما ابتدا، فایل playbook خود را با استفاده از ویرایشگر متن دلخواه خود ایجاد کنید:

nano playbook.yml

با این کار یک فایل YAML خالی باز می شود. قبل از اضافه کردن وظایف به کتاب بازی خود، با افزودن موارد زیر شروع کنید:

playbook.yml

---
- hosts: all
  become: true
  vars:
    container_count: 4
    default_container_name: docker
    default_container_image: ubuntu
    default_container_command: sleep 1

تقریباً هر کتاب بازی که با آن روبرو می شوید با اعلان هایی مشابه این شروع می شود. hosts اعلام می کند که گره کنترل Ansible کدام سرورها را با این کتاب بازی هدف قرار می دهد. تبدیل وضعیت می کند که آیا همه دستورات با امتیازات ریشه افزایش یافته انجام می شوند یا خیر.

vars به شما امکان می دهد داده ها را در متغیرها ذخیره کنید. اگر تصمیم به تغییر این موارد در آینده دارید، فقط باید این خطوط را در فایل خود ویرایش کنید. در اینجا توضیح مختصری در مورد هر متغیر آورده شده است:

  • container_count: تعداد کانتینرهایی که باید ایجاد شوند.
  • default_container_name: نام کانتینر پیش‌فرض.
  • default_container_image: تصویر پیش‌فرض Docker برای استفاده در هنگام ایجاد کانتینرها.
  • default_container_command: دستور پیش فرض برای اجرا در کانتینرهای جدید.

مرحله 2 – افزودن وظایف نصب بسته ها به Playbook خود

به طور پیش فرض، وظایف به صورت همزمان توسط Ansible به ترتیب از بالا به پایین در کتاب بازی شما اجرا می شوند. این بدان معناست که ترتیب کارها مهم است، و شما می توانید با خیال راحت فرض کنید که اجرای یک کار قبل از شروع کار بعدی به پایان می رسد.

همه وظایف موجود در این کتاب بازی می توانند به تنهایی بایستند و مجدداً در سایر کتاب های بازی شما مورد استفاده قرار گیرند.

اولین وظایف خود یعنی نصب aptitude، ابزاری برای ارتباط با مدیر بسته لینوکس و نصب بسته های سیستم مورد نیاز را اضافه کنید. Ansible اطمینان حاصل می کند که این بسته ها همیشه بر روی سرور شما نصب می شوند:

playbook.yml

  tasks:
    - name: Install aptitude
      apt:
        name: aptitude
        state: latest
        update_cache: true

    - name: Install required system packages
      apt:
        pkg:
          - apt-transport-https
          - ca-certificates
          - curl
          - software-properties-common
          - python3-pip
          - virtualenv
          - python3-setuptools
        state: latest
        update_cache: true

در اینجا، شما از ماژول داخلی apt Ansible برای هدایت Ansible برای نصب بسته های خود استفاده می کنید. ماژول ها در Ansible میانبرهایی برای اجرای عملیاتی هستند که در غیر این صورت باید به عنوان دستورات bash خام اجرا می شدند. اگر aptitude در دسترس نباشد، Ansible با خیال راحت به apt برای نصب بسته ها باز می گردد، اما Ansible از لحاظ تاریخی استعداد را ترجیح داده است.

می توانید بسته ها را به دلخواه خود اضافه یا حذف کنید. این اطمینان حاصل می کند که همه بسته ها نه تنها موجود هستند، بلکه در آخرین نسخه هستند و پس از فراخوانی به روز رسانی با apt انجام می شود.

مرحله 3 – افزودن وظایف نصب Docker به Playbook خود

وظیفه شما آخرین نسخه Docker را از مخزن رسمی نصب می کند. کلید Docker GPG برای تأیید دانلود اضافه می شود، مخزن رسمی به عنوان منبع بسته جدید اضافه می شود و Docker نصب می شود. علاوه بر این، ماژول داکر برای پایتون نیز نصب خواهد شد:

playbook.yml

    - name: Add Docker GPG apt Key
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present

    - name: Add Docker Repository
      apt_repository:
        repo: deb https://download.docker.com/linux/ubuntu focal stable
        state: present

    - name: Update apt and install docker-ce
      apt:
        name: docker-ce
        state: latest
        update_cache: true

    - name: Install Docker Module for Python
      pip:
        name: docker

خواهید دید که ماژول‌های Ansible داخلی apt_key و apt_repository ابتدا به آدرس‌های اینترنتی صحیح اشاره می‌کنند، سپس وظیفه دارند از وجود آنها اطمینان حاصل کنند. این امکان نصب آخرین نسخه Docker را به همراه استفاده از پیپ برای نصب ماژول برای پایتون فراهم می کند.

مرحله 4 – افزودن Docker Image و وظایف Container به Playbook خود

ایجاد واقعی کانتینرهای Docker شما از اینجا با کشیدن تصویر Docker مورد نظر شما شروع می شود. به طور پیش فرض، این تصاویر از داکر هاب رسمی می آیند. با استفاده از این تصویر، کانتینرها مطابق با مشخصات تعیین شده توسط متغیرهای اعلام شده در بالای کتاب بازی شما ایجاد می شوند:

playbook.yml

    - name: Pull default Docker image
      community.docker.docker_image:
        name: "{{ default_container_image }}"
        source: pull

    - name: Create default containers
      community.docker.docker_container:
        name: "{{ default_container_name }}{{ item }}"
        image: "{{ default_container_image }}"
        command: "{{ default_container_command }}"
        state: present
      with_sequence: count={{ container_count }}

از docker_image برای کشیدن تصویر Docker که می‌خواهید به عنوان پایه کانتینرهای خود استفاده کنید استفاده می‌شود. docker_container به شما اجازه می دهد تا مشخصات کانتینرهایی را که ایجاد می کنید، به همراه دستوری که می خواهید آنها را ارسال کنید، مشخص کنید.

with_sequence روش Ansible برای ایجاد یک حلقه است و در این حالت ایجاد کانتینرهای شما را با توجه به تعداد تعیین شده شما حلقه می کند. این یک حلقه شمارش اولیه است، بنابراین متغیر آیتم در اینجا عددی را ارائه می دهد که تکرار حلقه فعلی را نشان می دهد. این شماره در اینجا برای نامگذاری ظروف شما استفاده می شود.

مرحله 5 – کتاب راهنمای کامل خود را مرور کنید

کتاب بازی شما باید تقریباً شبیه شکل زیر باشد، با تفاوت های جزئی بسته به سفارشی سازی های شما:

playbook.yml

---
- hosts: all
  become: true
  vars:
    container_count: 4
    default_container_name: docker
    default_container_image: ubuntu
    default_container_command: sleep 1d

  tasks:
    - name: Install aptitude
      apt:
        name: aptitude
        state: latest
        update_cache: true

    - name: Install required system packages
      apt:
        pkg:
          - apt-transport-https
          - ca-certificates
          - curl
          - software-properties-common
          - python3-pip
          - virtualenv
          - python3-setuptools
        state: latest
        update_cache: true

    - name: Add Docker GPG apt Key
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present

    - name: Add Docker Repository
      apt_repository:
        repo: deb https://download.docker.com/linux/ubuntu focal stable
        state: present

    - name: Update apt and install docker-ce
      apt:
        name: docker-ce
        state: latest
        update_cache: true

    - name: Install Docker Module for Python
      pip:
        name: docker

    - name: Pull default Docker image
      community.docker.docker_image:
        name: "{{ default_container_image }}"
        source: pull

    - name: Create default containers
      community.docker.docker_container:
        name: "{{ default_container_name }}{{ item }}"
        image: "{{ default_container_image }}"
        command: "{{ default_container_command }}"
        state: present
      with_sequence: count={{ container_count }}

با خیال راحت این کتاب راهنما را طوری تغییر دهید که مطابق با نیازهای فردی شما در جریان کار خود باشد. برای مثال، می‌توانید از ماژول docker_image برای فشار دادن تصاویر به Docker Hub یا ماژول docker_container برای راه‌اندازی شبکه‌های کانتینری استفاده کنید.

مرحله 6 – اجرای Playbook خود

اکنون آماده اجرای این کتاب بازی در یک یا چند سرور هستید. اکثر کتاب‌های پخش به‌طور پیش‌فرض پیکربندی شده‌اند که در هر سرور موجود در فهرست شما اجرا شوند، اما شما این بار سرور خود را مشخص می‌کنید.

برای اجرای playbook فقط در server1 که به صورت sammy متصل می شود، می توانید از دستور زیر استفاده کنید:

ansible-playbook playbook.yml -l server1 -u sammy

پرچم -l سرور شما را مشخص می‌کند و پرچم -u مشخص می‌کند که کدام کاربر در سرور راه دور وارد شود. خروجی مشابه این دریافت خواهید کرد:

این نشان می دهد که راه اندازی سرور شما کامل شده است! خروجی شما نباید دقیقاً یکسان باشد، اما مهم این است که هیچ شکستی نداشته باشید.

پس از اتمام اجرا، از طریق SSH به سروری که توسط Ansible ارائه شده است وارد شوید تا بررسی کنید که آیا کانتینرها با موفقیت ایجاد شده اند یا خیر.

وارد سرور راه دور با:

ssh sammy@your_remote_server_ip

و ظروف Docker خود را در سرور راه دور فهرست کنید:

sudo docker ps -a

شما باید خروجی مشابه این را ببینید:

 

Output

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
a3fe9bfb89cf        ubuntu              "sleep 1d"          5 minutes ago       Created                                 docker4
8799c16cde1e        ubuntu              "sleep 1d"          5 minutes ago       Created                                 docker3
ad0c2123b183        ubuntu              "sleep 1d"          5 minutes ago       Created                                 docker2
b9350916ffd8        ubuntu              "sleep 1d"          5 minutes ago       Created                                 docker1

این بدان معناست که کانتینرهای تعریف شده در playbook با موفقیت ایجاد شده اند. از آنجایی که این آخرین کار در playbook بود، همچنین تأیید می کند که playbook به طور کامل در این سرور اجرا شده است.

نتیجه

تنظیم خودکار زیرساخت شما نه تنها می تواند در وقت شما صرفه جویی کند، بلکه کمک می کند تا اطمینان حاصل شود که سرورهای شما از یک پیکربندی استاندارد پیروی می کنند که می تواند مطابق با نیازهای شما سفارشی شود. با ماهیت توزیع شده برنامه های مدرن و نیاز به سازگاری بین محیط های مرحله بندی مختلف، اتوماسیون مانند این به یک جزء اصلی در فرآیندهای توسعه بسیاری از تیم ها تبدیل شده است.

در این راهنما، نحوه استفاده از Ansible برای خودکار کردن فرآیند نصب و راه‌اندازی Docker در یک سرور راه دور را نشان دادید. از آنجایی که هر فرد معمولاً هنگام کار با کانتینر نیازهای متفاوتی دارد، توصیه می کنیم برای اطلاعات بیشتر و موارد استفاده از ماژول docker_container Ansible، اسناد رسمی Ansible را بررسی کنید.

 

 

https://vpsgol.net/product/vps-germany/

 

https://vpsgol.net/product/vps-usa/

 

https://vpsgol.net/product/vps-france/

 

https://vpsgol.net/product/vps-canada/

 

https://vpsgol.net/product/vps-poland/

 

https://vpsgol.net/product/vps-netherlands/

 

https://vpsgol.net/product/vps-england/

برچسب‌ها:VPS یا سرور مجازیآماده کردن Playbookافزودن Docker Imageانواع سرور مجازیاوبونتو 20.04ایجاد سرور مجازیبه روز رسانی سرورخرید سرور مجازیکتاب بازی Ansible

  • behnam gol mohamadi
  • ۰
  • ۰

 چگونه سرورهای اوبونتو 20.04 را به روز نگه داریم

ورود به سایت

معرفی

در این آموزش، بهترین روش ها را برای به روز نگه داشتن سرورهای اوبونتو 20.04 خود بررسی خواهید کرد. درست مانند تقویت امنیت شبکه، گام‌های زیادی وجود دارد که می‌توانید برای اطمینان از اینکه سرورهایتان بدون مداخله در آینده به کار امن خود ادامه می‌دهند، انجام دهید.

تعدادی ابزار و پیکربندی وجود دارد که می‌توانید آن‌ها را برای اکثر سرورهای اوبونتو، فراتر از آنچه که به طور خودکار برای شما پیکربندی شده است، اعمال کنید. اگر مدیریت سرور خود را انجام می‌دهید، وصله دستی همه محیط‌هایتان می‌تواند بسیار مخرب و مستعد خطا باشد.

این آموزش شامل موارد زیر خواهد بود: آزمایش راه‌اندازی مجدد برازنده به دنبال بهترین شیوه‌ها برای مدیریت برنامه، برای به حداقل رساندن هرگونه عوارض ناشی از به‌روزرسانی‌های تعمیر و نگهداری، پیکربندی به‌روزرسانی‌های خودکار برای اکثر بسته‌ها و کتابخانه‌های در حال اجرا بر روی دستگاه شما وصله هسته زنده، و سایر بهترین روش‌ها در مورد به‌روزرسانی‌های هسته

پیش نیازها

یک سرور اوبونتو 20.04 و یک کاربر غیر ریشه با امتیازات sudo.

مرحله 1 – پیروی از بهترین روش ها برای مدیریت برنامه

بخش اساسی پیکربندی سرور برای ارتقای خودکار اطمینان از اینکه همه برنامه‌های در حال اجرا بر روی سرور قادر به راه‌اندازی صحیح پس از توقف برنامه‌ریزی نشده یا راه‌اندازی مجدد هستند، است. مدیران بسته لینوکس طوری طراحی شده‌اند که بدون اختلال در پس‌زمینه اجرا شوند تا تعمیر و نگهداری لازم با هزینه‌های اضافی همراه نباشد. با وجود این، یکی از رایج‌ترین دلایل برای نداشتن یک استراتژی به‌روزرسانی خوب، نگرانی در مورد نحوه رفتار سرور شما پس از راه‌اندازی مجدد است.

در صورت امکان، برنامه های موجود در پشته شما باید توسط سیستم init سرور شما مدیریت شود، که در اکثر توزیع های لینوکس مدرن از جمله اوبونتو سیستمی است. Systemd دستور systemctl را برای تعامل با سرویس های در حال اجرا و راه اندازی مجدد خودکار آنها در صورت نیاز ارائه می دهد. تقریباً تمام نرم افزارهایی که از طریق مدیریت بسته شما نصب می شوند و برای اجرا در پس زمینه طراحی می شوند، باید به طور خودکار یک سرویس systemd و یک فایل واحد پیکربندی را به عنوان بهترین روش ارائه دهند.

هنگام اجرای نرم افزار خود، یا نرم افزار مستقر شده از مخازن Git، ایده بدی نیست که فایل های واحد خود را برای ادغام با systemd بنویسید. به عنوان یک جایگزین سبک، ممکن است ترجیح دهید از ابزاری مانند سرپرست استفاده کنید. همچنین می‌توانید از زمان‌بندی cron سیستم خود با دستور reboot@ استفاده کنید.

پس از اینکه پیکربندی در جای خود قرار گرفت، مطمئن شوید که آن را از طریق راه اندازی مجدد تست کنید. می‌توانید با اجرای sudo shutdown now -r راه‌اندازی مجدد کنید، که فرآیندهای در حال اجرا شما را کاملاً متوقف می‌کند و بلافاصله راه‌اندازی مجدد می‌شود. همچنین می‌توانید به‌جای زمان کنونی، زمان را به hh:mm یا چند دقیقه از هم‌اکنون تعیین کنید تا در آینده راه‌اندازی مجدد را برنامه‌ریزی کنید. استقرار تولید معمولاً پس از قطعی های برنامه ریزی نشده نیازی به توجه شما ندارد و همه سرویس ها و نقاط پایانی لازم باید به طور خودکار بازیابی شوند.

اکنون که مطمئن شده‌اید محیط شما با راه‌اندازی مجدد تعمیر و نگهداری مشکلی نخواهد داشت، در مرحله بعد، نحوه برنامه‌ریزی به‌روزرسانی‌های خودکار را خواهید آموخت.

مرحله 2 – پیکربندی ارتقاءهای بدون نظارت

مدیر بسته اوبونتو، apt، دارای یک گردش کار کاملاً ثابت برای انجام یک ارتقاء کامل سیستم است. ابتدا، آپدیت apt را اجرا می‌کنید تا لیست بسته‌های خود را به‌روزرسانی کنید، و سپس، apt upgrade را بدون مشخص کردن بسته‌ای اجرا می‌کنید تا هر بسته در سیستم را ارتقا دهید. اگر با بسته‌های شخص ثالث تداخل نسخه داشته باشید یا اگر عمداً برخی از بسته‌ها را ارتقا نداده‌اید، این گردش کار ممکن است کمی متفاوت باشد، اما دستورات اصلی یکسان هستند.

اوبونتو یک ابزار منحصر به فرد به نام ارتقاهای بدون نظارت را به منظور بازیابی و نصب خودکار وصله های امنیتی و سایر ارتقاءهای ضروری برای سرور شما فراهم می کند. اکثر سرورهای اوبونتو با این ابزار به صورت خودکار نصب و پیکربندی می شوند، اما می توانید آن را با دستورات apt زیر نصب کنید:

sudo apt update
sudo apt install unattended-upgrades

پس از نصب، می توانید بررسی کنید که آیا سرویس ارتقاء بدون نظارت با استفاده از systemctl اجرا می شود:

sudo systemctl status unattended-upgrades.service

پیکربندی پیش‌فرض به‌روزرسانی‌های بدون نظارت به‌طور خودکار رفع اشکال و به‌روزرسانی‌های امنیتی را برای اکثر بسته‌های موجود در مخازن اوبونتو بازیابی می‌کند. با این حال، اگر از نسخه‌های قدیمی‌تر برخی بسته‌ها برای جلوگیری از تغییرات بالادستی استفاده می‌کنید، یا اگر سرور شما علاوه بر اوبونتو از مخازن بسته شخص ثالث استفاده می‌کند، می‌توانید سرویس ارتقاء بدون نظارت را پیکربندی کنید.

پیکربندی آن در /etc/apt/apt.conf.d/50unattended-upgrades ذخیره می شود. این فایل را با استفاده از nano یا ویرایشگر متن مورد علاقه خود باز کنید:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

فایل به خوبی حاشیه نویسی شده است، و می توانید خطوط بسیاری از نظرات کد (با //) را ببینید که عملکرد آن را توضیح می دهند. اولین بلوک پیکربندی، بسته‌هایی را که به‌طور خودکار به‌روزرسانی می‌شوند، بررسی می‌کند و با الگوی نام‌های مخزن بسته اوبونتو مطابقت دارد. فایل‌های موجود در مخزن هسته و مخزن -security به طور پیش‌فرض به‌روزرسانی می‌شوند، اما خطوط حاوی مخازن -updates، -proposed و -backports به‌طور پیش‌فرض نظر داده می‌شوند.

این مخازن به‌طور پیش‌فرض غیرفعال هستند، زیرا به احتمال زیاد حاوی تغییرات قطعی در بسته‌های نصب‌شده شما هستند. برای اینکه به صورت دستی آنها را برای ارتقای بدون نظارت فعال کنید، می توانید نمادهای // نظر را از این خطوط حذف کنید.

در پایین تر از فایل، تعدادی گزینه با ضامن تنظیمات درست / نادرست وجود دارد. به عنوان مثال، پس از نصب بسته هایی که برای اعمال نیاز به راه اندازی مجدد دارند، یک جابجایی برای راه اندازی مجدد خودکار وجود دارد. می توانید این گزینه را با حذف علامت // و تغییر false به true فعال کنید. با این حال، انجام این کار باعث می شود سرور شما در فواصل غیرقابل پیش بینی از دسترس خارج شود. اگر این گزینه را فعال کردید، مطمئن شوید که برنامه‌ها یا کاربران شما می‌توانند خرابی را تحمل کنند.

پس از اتمام ویرایش فایل را ذخیره کرده و ببندید. اگر از nano استفاده می کنید، Ctrl+X را فشار دهید، سپس وقتی از شما خواسته شد، Y و سپس Enter را فشار دهید.

اگر تغییراتی در پیکربندی ایجاد کردید، سرویس ارتقاهای بدون نظارت را مجدداً بارگیری کنید تا اعمال شود:

sudo systemctl reload unattended-upgrades.service

اکنون باید راه‌حل‌هایی برای اطمینان از دریافت به‌روزرسانی‌های امنیتی ضروری همه بسته‌های روی سرور بدون هیچ گونه مداخله اضافی داشته باشید. در مرحله آخر، یاد خواهید گرفت که چگونه هسته خود را به روز نگه دارید، و چگونه می توانید راه اندازی مجدد سرور را در مواقع ضروری مدیریت کنید.

مرحله 3 – به روز رسانی و LivePatching هسته

کمتر از بسته های دیگر، باید هسته سیستم خود را به روز کنید. هسته لینوکس شامل (تقریبا) تمام درایورهای سخت افزاری در حال اجرا است و مسئول بیشتر تعاملات سطح پایین سیستم است. به‌روزرسانی‌های هسته معمولاً فقط در صورتی ضروری هستند که آسیب‌پذیری با مشخصات بالایی برای رفع آن وجود داشته باشد، اگر نیاز به استفاده از یک ویژگی عمومی جدید هسته دارید، یا اگر هسته شما آنقدر قدیمی شده است که خطر انباشته شدن باگ‌ها و آسیب‌پذیری‌ها وجود دارد. شما ممکن است آگاه نباشید

هیچ روش جهانی برای زمان بندی خودکار به روز رسانی هسته لینوکس وجود ندارد. این به این دلیل است که به‌روزرسانی‌های هسته از گذشته نیازمند راه‌اندازی مجدد کامل سیستم بوده‌اند و زمان‌بندی راه‌اندازی مجدد بدون ایجاد فرضیاتی در مورد محیط شما غیرممکن است. انتظار می‌رود که بسیاری از سرورها تا حد امکان در دسترس بودن 24 ساعته و 7 روز هفته را ارائه دهند و راه‌اندازی مجدد می‌تواند مدت زمان نامعلومی طول بکشد یا نیاز به مداخله دستی داشته باشد.

اگر می‌خواهید مدتی از کار افتادگی را تحمل کنید، به‌روزرسانی هسته‌تان ساده است: به‌روزرسانی‌های apt بدون نظارت را می‌توان برای نصب و آماده‌سازی هسته‌های جدید به همراه بسته‌های دیگر پیکربندی کرد و پس از راه‌اندازی مجدد، سرور شما باید به‌طور خودکار از هسته جدید استفاده کند. اکثر استقرارهای تولید به پیچیدگی بیشتری در مورد راه اندازی مجدد مانند این نیاز دارند تا از در دسترس بودن سرویس اطمینان حاصل شود. به عنوان مثال، شما ممکن است از یک متعادل کننده بار برای هدایت خودکار ترافیک به سرورهایی استفاده کنید که می توانند عملکردهای یکسانی را در یک استقرار مقیاس افقی ارائه دهند، در حالی که آنها به صورت جداگانه به ترتیب راه اندازی مجدد می شوند، تا از هرگونه خرابی قابل مشاهده جلوگیری شود.

فعال کردن Livepatch برای اطمینان از Uptime سرور در طول به روز رسانی هسته

برای جلوگیری از خرابی در هنگام ارتقای هسته، می توانید از ویژگی هسته لینوکس به نام وصله زنده استفاده کنید. این ویژگی امکان پیاده سازی به روز رسانی هسته را بدون راه اندازی مجدد می دهد. دو نگهدارنده اصلی برای وصله‌های زنده هسته وجود دارد: Canonical، که سرویس Livepatch خود را برای اوبونتو ارائه می‌کند، و KernelCare که اوبونتو را علاوه بر سایر توزیع‌های اصلی لینوکس پشتیبانی می‌کند. هر دو برای استفاده نیاز به ثبت نام دارند و فقط سرویس Canonical برای استفاده فردی رایگان است.

می توانید برای یک کلید Livepatch در https://auth.livepatch.canonical.com/ ثبت نام کنید. پس از ثبت نام، می توانید بسته snap canonical-livepatch را نصب کنید. Snap یکی دیگر از مدیریت بسته های اوبونتو است که در کنار apt اجرا می شود.

sudo snap install canonical-livepatch

می‌توانید با استفاده از کلید وب‌سایت آن‌ها، با فرمان یک خطی، canonical-livepatch را فعال کنید:

sudo canonical-livepatch enable your-key

خروجی باید حاوی پیام Successfully enabled device باشد. این سرویس باید از این پس بدون هیچ گونه مداخله دیگری در پس زمینه اجرا شود و می توانید وضعیت آن را با استفاده از وضعیت canonical-livepatch بررسی کنید:

sudo canonical-livepatch status

شما اکنون به‌روزرسانی‌های خودکار هسته را برای سرور خود پیکربندی کرده‌اید، به این معنی که دیگر نیازی به راه‌اندازی مجدد برای حفظ یک محیط امن و به‌روز نیست.

نتیجه

در این آموزش، چندین استراتژی را برای به روز نگه داشتن سرورهای اوبونتو به طور خودکار بررسی کردید. همچنین برخی از تفاوت های ظریف مخازن بسته، به روز رسانی هسته و مدیریت راه اندازی مجدد سرور را یاد گرفتید. همه اینها اصول مهم DevOps و کار با سرورها به طور گسترده تر هستند و تقریباً تمام پیکربندی های تولید بر اساس این مفاهیم اصلی هستند.

 

https://vpsgol.net/product/vps-germany/

 

https://vpsgol.net/product/vps-usa/

 

https://vpsgol.net/product/vps-france/

 

https://vpsgol.net/product/vps-canada/

 

https://vpsgol.net/product/vps-poland/

 

https://vpsgol.net/product/vps-netherlands/

 

https://vpsgol.net/product/vps-england/

برچسب‌ها:LivePatching هستهاتصال به سرور مجازیبه روز رسانی سرورخرید سرور مجازیراه اندازی سرورسرور مجازیسرورهای اوبونتو 20.04فعال کردن Livepatch

 

  • behnam gol mohamadi