Source Context Failing checks
Existing Setup
Reuse
Migration
Analyzing the Existing Setup and Migrating
Any computer system overhaul should take the existing system into account. This allows reuse of available resources as much as possible and guarantees interoperability of the various elements comprising the system. This study will introduce a generic framework to follow in any migration of a computing infrastructure to Linux.
Coexistence in Heterogeneous Environments
<primary>environment</primary><secondary>heterogeneous environment</secondary>
Debian integrates very well in all types of existing environments and plays well with any other operating system. This near-perfect harmony comes from market pressure which demands that software publishers develop programs that follow standards. Compliance with standards allows administrators to switch out programs: clients or servers, whether free or not.
Integration with Windows Machines
Samba's SMB/CIFS support ensures excellent communication within a Windows context. It shares files and print queues to Windows clients and includes software that allow a Linux machine to use resources available on Windows servers.
<emphasis>TOOL</emphasis> Samba

Multiple failing checks

The translations in several languages have failing checks

<primary>Samba</primary>

Multiple failing checks

The translations in several languages have failing checks

The latest version of Samba can replace most of the Windows features: from those of a simple Windows NT server (authentication, files, print queues, downloading printer drivers, DFS, etc.) to the most advanced one (a domain controller compatible with Active Directory).
Integration with OS X machines
<primary>Zeroconf</primary>

Multiple failing checks

The translations in several languages have failing checks

<primary>Bonjour</primary>

Multiple failing checks

The translations in several languages have failing checks

<primary>Avahi</primary>

Multiple failing checks

The translations in several languages have failing checks

OS X machines provide, and are able to use, network services such as file servers and printer sharing. These services are published on the local network, which allows other machines to discover them and make use of them without any manual configuration, using the Bonjour implementation of the Zeroconf protocol suite. Debian includes another implementation, called Avahi, which provides the same functionality.
<primary>AFP</primary>

Multiple failing checks

The translations in several languages have failing checks

<primary>AppleShare</primary>

Multiple failing checks

The translations in several languages have failing checks

In the other direction, the Netatalk daemon can be used to provide file servers to OS X machines on the network. It implements the AFP (AppleShare) protocol as well as the required notifications so that the servers can be autodiscovered by the OS X clients.
<primary>AppleTalk</primary>

Multiple failing checks

The translations in several languages have failing checks

Older Mac OS networks (before OS X) used a different protocol called AppleTalk. For environments involving machines using this protocol, Netatalk also provides the AppleTalk protocol (in fact, it started as a reimplementation of that protocol). It ensures the operation of the file server and print queues, as well as time server (clock synchronization). Its router function allows interconnection with AppleTalk networks.
Integration with Other Linux/Unix Machines
Finally, NFS and NIS, both included, guarantee interaction with Unix systems. NFS ensures file server functionality, while NIS creates user directories. The BSD printing layer, used by most Unix systems, also allows sharing of print queues.
Coexistence of Debian with OS X, Windows and Unix systems
How To Migrate
<primary>migration</primary>

Multiple failing checks

The translations in several languages have failing checks

In order to guarantee continuity of the services, each computer migration must be planned and executed according to the plan. This principle applies whatever the operating system used.
Survey and Identify Services
As simple as it seems, this step is essential. A serious administrator truly knows the principal roles of each server, but such roles can change, and sometimes experienced users may have installed “wild” services. Knowing that they exist will at least allow you to decide what to do with them, rather than delete them haphazardly.
For this purpose, it is wise to inform your users of the project before migrating the server. To involve them in the project, it may be useful to install the most common free software programs on their desktops prior to migration, which they will come across again after the migration to Debian; Libre Office and the Mozilla suite are the best examples here.
Network and Processes
<primary><command>nmap</command></primary>

Multiple failing checks

The translations in several languages have failing checks

The <command>nmap</command> tool (in the package with the same name) will quickly identify Internet services hosted by a network connected machine without even requiring to log in to it. Simply call the following command on another machine connected to the same network:

<computeroutput>$ </computeroutput><userinput>nmap mirwiz</userinput>
<computeroutput>Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-24 11:34 CET
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.0037s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds</computeroutput>

Multiple failing checks

The translations in several languages have failing checks

<emphasis>ALTERNATIVE</emphasis> Use <command>netstat</command> to find the list of available services
On a Linux machine, the <command>netstat -tupan</command> command will show the list of active or pending TCP sessions, as well UDP ports on which running programs are listening. This facilitates identification of services offered on the network.
<emphasis>GOING FURTHER</emphasis> IPv6
Some network commands may work either with IPv4 (the default usually) or with IPv6. These include the <command>nmap</command> and <command>netstat</command> commands, but also others, such as <command>route</command> or <command>ip</command>. The convention is that this behavior is enabled by the <parameter>-6</parameter> command-line option.
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 <command>ps auxw</command> displays a list of all processes with their user identity. By checking this information against the output of the <command>who</command> command, which gives a list of logged in users, it is possible to identify rogue or undeclared servers or programs running in the background. Looking at <filename>crontabs</filename> (tables listing automatic actions scheduled by users) will often provide interesting information on functions fulfilled by the server (a complete explanation of <command>cron</command> is available in <xref linkend="sect.task-scheduling-cron-atd" />).
In any case, it is essential to backup your servers: this allows recovery of information after the fact, when users will report specific problems due to the migration.
Backing up the Configuration

Multiple failing checks

The translations in several languages have failing checks

It is wise to retain the configuration of every identified service in order to be able to install the equivalent on the updated server. The bare minimum is to make a backup copy of the configuration files.
For Unix machines, the configuration files are usually found in <filename>/etc/</filename>, but they may be located in a sub-directory of <filename>/usr/local/</filename>. This is the case if a program has been installed from sources, rather than with a package. In some cases, one may also find them under <filename>/opt/</filename>.
For data managing services (such as databases), it is strongly recommended to export the data to a standard format that will be easily imported by the new software. Such a format is usually in text mode and documented; it may be, for example, an SQL dump for a database, or an LDIF file for an LDAP server.
Database backups
Each server software is different, and it is impossible to describe all existing cases in detail. Compare the documentation for the existing and the new software to identify the exportable (thus, re-importable) portions and those which will require manual handling. Reading this book will clarify the configuration of the main Linux server programs.
Taking Over an Existing Debian Server
<primary>recovering a Debian machine</primary>