Product SiteDocumentation Site

3.2. طريقة الهجرة

In order to guarantee continuity of the services, each computer migration must be planned and executed according to the plan. This principle applies regardless of which operating system is used.

3.2.1. تفقد الخدمات وتحديدها

على الرغم من بساطة هذا الخطوة، إلا أنها أساسية. يعلم مدير النظم الجاد حقاً الأدوار الرئيسية لكل واحد من المخدمات، لكن هذه الأدوار قد تتغير، وأحياناً قد يُثبِّت المستخدمون المتقدمون بعض الخدمات ”الشاردة“ (wild services). تسمح لك معرفة وجود هذه الخدمات على أن تقرر ماذا ستفعل فيها على الأقل، بدلاً من حذفها اعتباطياً.
لذلك كان من الحكمة إعلام مستخدميك بالمشروع قبل تهجير المخدم. قد يفيدك تثبيت أشهر البرمجيات الحرة التي سيعملون عليها بعد هجرتهم إلى دبيان على حواسيبهم المكتبية قبل الهجرة لإشراكهم في المشروع؛ لعل LibreOffice ومجموعة برمجيات موزيلا أفضل الأمثلة هنا.

3.2.1.1. الشبكة والعمليات

تتعرف الأداة nmap (في الحزمة ذات الاسم نفسه) سريعاً على خدمات الإنترنت التي تستضيفها الأجهزة المتصلة بالشبكة دون الحاجة للدخول إلى تلك الأجهزة حتى. فقط استدع الأمر التالي على جهاز آخر متصل بالشبكة نفسها:
$ nmap mirwiz
Starting Nmap 7.93 ( https://nmap.org ) at 2024-05-20 00:15 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
5666/tcp open  nrpe
9999/tcp open  abyss

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
If the server is a Unix machine offering shell accounts to users, it is interesting to determine if processes are executed in the background in the absence of their owner. The command ps auxw displays a list of all processes with their user identity. By checking this information against the output of the who or w commands, which give a list of logged in users, it is possible to identify rogue or undeclared servers or programs running in the background. Looking at crontabs (tables listing automatic actions scheduled by users) will often provide interesting information on functions fulfilled by the server (a complete explanation of cron is available in قسم 9.7, “جدولة المهام باستخدام cron وatd).
في جمع الحالات، من الضروري أخذ نسخة احتياطية عن مخدماتك: فهذا يسمح باستعادة المعلومات في وقت لاحق، عندما يشتكي المستخدمون من مشاكل معينة نتجت عن الهجرة.

3.2.2. النسخ الاحتياطي للإعدادات

من الحكمة الاحتفاظ بإعدادات كل خدمة تكتشفها حتى تستطيع تثبيت ما يقابلها على المخدم بعد التغيير. أضعف الإيمان أن تأخذ نسخة احتياطية عن ملفات الضبط.
بالنسبة لأجهزة يونكس، تكون ملفات الضبط عادة في المجلد /etc/، لكنها قد تُخزَّن أيضاً في مجلد فرعي في /usr/local/. هذه هي حال البرامج التي ثبتت من الكود المصدري، بدلاً من تثبيتها من حزمة. في بعض الحالات، قد تجد بعض هذه الملفات في /opt/.
بالنسبة لخدمات إدارة البيانات (مثل قواعد البيانات)، أفضل حل هو تصدير البيانات إلى صيغة قياسية يستطيع البرنامج الجديد استيرادها بسهولة. تكون هذه الصيغ نصية عادة ولها توثيق يشرحها؛ قد تكون SQL dump مثلاً بالنسبة لقواعد البيانات، أو ملف LDIF بالنسبة لمخدمات LDAP.
النسخ الاحتياطي لقواعد البيانات

شكل 3.2. النسخ الاحتياطي لقواعد البيانات

برمجيات المخدمات مختلفة، ومن المستحيل شرح جميع الحالات الموجودة بالتفصيل. قارن بين وثائق البرامج الحالية والبرامج الجديدة حتى تتعرف على الأجزاء القابلة للتصدير (وبالتالي، قابلة للاستيراد ثانية) والأجزاء التي تحتاج معالجة يدوية. ستوضح لك قراءة هذا الكتاب طريق إعداد البرامج الرئيسية في مخدمات لينكس.

3.2.3. السيطرة على مخدم دبيان سابق

يمكننا تحليل جهاز يعمل مسبقاً بنظام دبيان حتى نتمكن من السيطرة عليه بشكل فعال.
أول الملفات التي سنتحقق منها هو /etc/debian_version، الذي يحوي عادة رقم إصدار نسخة دبيان المُثبَّتة (هذا الملف جزء من الحزمة base-files). إذا حوى الملف codename/sid، فهذا يعني أن النظام قد حُدِّث باستخدام حزم من إحدى التوزيعات التطويرية (سواء الاختبارية أو غير المستقرة).
يفحص البرنامج apt-show-versions (من حزمة دبيان ذات الاسم نفسه) قائمة الحزم المُثبّتة ويتعرف على النسخ المتوفرة. يمكن استخدام aptitude أيضاً لأداء هذه المهام، ولو أن عملها ليس آلياً بالكامل.
بنظرة سريعة على الملف /etc/apt/sources.list (والمجلد /etc/apt/sources.list.d/) سنعرف أماكن ورود حزم دبيان إلى النظام. إذا ظهرت مصادر عديدة غير معروفة، فقد يختار مدير النظام إعادة تثبيت نظام التشغيل على الحاسوب بالكامل لضمان التوافق التام مع البرمجيات التي يوفرها دبيان.
The sources.list file is often a good indicator: the majority of administrators keep, at least in comments, the list of APT sources that were previously used. But you should not forget that sources used in the past might have been deleted, and that some random packages grabbed on the Internet might have been manually installed (with the help of the dpkg command). In this case, the machine is misleading in its appearance of being a “standard” Debian system. This is why you should pay attention to any indication that will give away the presence of external packages (appearance of deb files in unusual directories, package version numbers with a special suffix indicating that it originated from outside the Debian project, such as ubuntu or lmde, etc.). Below are two examples, showcasing unusual version suffixes and a third-party package without a source.
$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                          Version                        Architecture Description
+++-=============================-==============================-============-===================
[..]
ii  docker-buildx-plugin          0.14.0-1~debian.12~bookworm    amd64        Docker Buildx cli plugin.
ii  docker-ce                     5:26.1.3-1~debian.12~bookworm  amd64        Docker: the open-source application container engine
ii  docker-ce-cli                 5:26.1.3-1~debian.12~bookworm  amd64        Docker CLI: the open-source application container engine
ii  docker-ce-rootless-extras     5:26.1.3-1~debian.12~bookworm  amd64        Rootless support for Docker.
[..]
$ apt-show-versions | grep No
hc-utils:all 0.0.4-1 installed: No available version in archive
وبالمثل، من المفيد تحليل محتويات المجلد /usr/local/، الذي يفترض أن يحوي البرامج المترجمة والمُثبَّتة يدوياً. معرفة البرمجيات المُثبّتة بهذه الطريقة مفيد جداً، لأن هذا يطرح أسئلة عن سبب عدم استخدام حزم دبيان الموافقة، إذا كانت هذه الحزم متوفرة.

3.2.4. تثبيت دبيان

بعد أن نعرف كل المعلومات المطلوبة من المخدم الحالي، يمكننا إيقاف عمله والبدء بتثبيت دبيان عليه.
يجب أن نعرف معمارية الجهاز حتى نختار النسخة المناسبة له. إذا كان الجهاز حاسوباً شخصياً جديداً نوعاً ما، فالغالب أن يكون amd64 (الحواسيب الشخصية القديمة كانت i386 عادة). في الحالات الأخرى، يمكننا تضييق الاحتمالات حسب نظام التشغيل المستخدم سابقاً.
جدول 3.1 is not intended to be exhaustive, but may be helpful. Note that it lists Debian architectures which are no longer supported in the current stable release. In any case, the original documentation for the computer is the most reliable source to find this information.

جدول 3.1. تقابل نظم التشغيل مع المعماريات

نظام التشغيلالمعماريات
DEC Unix (OSF/1)‎alpha, mipsel
HP Unixia64, hppa
IBM AIXpowerpc
Irixmips
OS Xamd64, powerpc, i386
z/OS, MVSs390x, s390
Solaris, SunOSsparc, i386, m68k
Ultrixmips
VMSalpha
Windows 95/98/MEi386
Windows NT/2000i386, alpha, ia64, mipsel
Windows XP / Windows Server 2003-2008i386, amd64, ia64
Windows RTarmel, armhf, arm64
Windows Vista / Windows 7-8-10-11 / Windows Server 2010-amd64

3.2.5. تثبيت الخدمات المختارة وإعدادها

Once Debian is installed, we need to individually install and configure each of the services that this computer must host. The new configuration must take into consideration the prior one in order to ensure a smooth transition. All the information collected in the first two steps will be useful to successfully complete this part.
تثبيت الخدمات المختارة

شكل 3.3. تثبيت الخدمات المختارة

قبل الغوص في هذه العملية بقدميك الاثنتين، نحن ننصحك بشدة بإكمال قراءة هذا الكتاب. بعد ذلك ستفهم طريقة إعداد الخدمات المطلوبة بشكل أدق.