Plesk Automation 11.5 Moving to Automation

About This Document

Contents

About This Document ...... 5 Introduction ...... 6 Preparing for the Move ...... 8 1. Install the Plesk Automation Moving Tool ...... 9 2. Install Mail Sync (Windows Servers)...... 10 3. Configuring Firewalls ...... 11 4. Prepare Source Servers ...... 12 5. Prepare Service Nodes ...... 13 Register Service Nodes in Plesk Automation ...... 15 Check Disk Space on Service Nodes ...... 15 Install MySQL on IIS Web Nodes (Windows Servers) ...... 15 Install (Windows Servers) ...... 16 6. (Optional) Create Reverse DNS Zones ...... 16 7. (Optional) Prepare for Assimilating SmarterMail Servers ...... 16 8. (Optional) Prepare for Assimilating Servers ...... 18 Transfer Scenario for Plesk 8.6 and Later ...... 20 Multiple Webspaces in a Single Subscription ...... 21 1. Configure the Tool ...... 22 2. Import Resellers to Plesk Automation ...... 25 3. Import Plans to Plesk Automation ...... 26 4. Generate a Transfer List ...... 26 5. Associate Subscriptions with Plans ...... 28 6. Check for Possible Conflicts ...... 29 7. Install MySQL on Target IIS Nodes ...... 30 8. Run Transfer ...... 31 9. Redirect DNS to the New Servers ...... 32 10. Verify the Transferred Data ...... 32 11. Finalize the Synchronization of Content ...... 32 Transfer Scenario for Expand 2.3.3 ...... 34 1. Import Resellers to Plesk Automation ...... 35 2. Import Plans to Plesk Automation ...... 36 3. Configure the Tool ...... 37

About This Document

4. Generate a Transfer List ...... 39 5. Associate Subscriptions with Plans ...... 41 6. Check for Possible Conflicts ...... 42 7. Run Transfer ...... 43 Transfer Scenario for H-Sphere 3.5 and Later ...... 46 Prerequisites ...... 50 1. Prepare Source Servers ...... 50 2. Configure the Tool ...... 52 3. Generate a Transfer List ...... 53 4. Import Resellers to Plesk Automation ...... 55 5. Associate Subscriptions from H-Sphere with Plans in PPA ...... 56 6. Perform the Migration ...... 57 8. Verify the Transferred Data ...... 58 Transfer Scenario for PBAS ...... 59 1. Import Plans to Plesk Automation ...... 61 2. Connect Plesk Automation to Odin Business Automation Standard ...... 62 3. Generate the Transfer Data and Configuration Files ...... 64 4. Configure the Tool ...... 66 5. Check for Possible Conflicts ...... 67 6. Install MySQL on IIS Nodes (Windows Servers) ...... 67 7. Run Transfer ...... 68 8. Finalize Transfer ...... 68 Transfer Scenario for Helm 3 ...... 71 1. Prepare Source Servers ...... 74 2. Configure the Tool ...... 75 3. Import Resellers to Plesk Automation ...... 76 4. Import Plans to Plesk Automation ...... 77 5. Generate a Transfer List ...... 77 6. Associate Subscriptions from Helm with Plans in Plesk Automation...... 79 7. Check for Possible Conflicts ...... 80 8. Run Transfer ...... 81 9. Redirect DNS to the New Servers ...... 81 10. Verify the Transferred Data ...... 82 11. Finalize the Synchronization of Content ...... 82 Transfer Scenario for Helm 4.2.2...... 84

About This Document

1. Prepare Source Servers ...... 86 2. Configure the Tool ...... 87 3. Import Resellers to Plesk Automation ...... 88 4. Import Plans to Plesk Automation ...... 89 5. Generate a Transfer List ...... 90 6. Associate Subscriptions from Helm with Plans in Plesk Automation...... 91 7. Check for Possible Conflicts ...... 92 8. Run Transfer ...... 93 9. Redirect DNS to the New Servers ...... 94 10. Verify the Transferred Data ...... 94 11. Finalize the Synchronization of Content ...... 95 Troubleshooting ...... 96 Known Issues and Limitations ...... 96

About This Document

C H A P T E R 1

About This Document

This document describes how to move from a number of independent servers controlled by some hosting panels to a multi-server environment controlled by Plesk Automation.

The document is intended for administrators who are considering moving their hosting servers under the Plesk Automation control and are willing to gain all benefits of centralized server management.

Introduction

C H A P T E R 2

Introduction

Currently, a large number of hosting providers use control panels like Plesk as a means to manage web hosting on a single server. Typically, such servers are administered separately, so server maintenance costs grow with each new added server. To reduce the costs and simplify server maintenance, we offer the providers to transition their existing infrastructure to a multi-server environment managed from a single web interface called Plesk Automation.

Plesk Automation is a web hosting where one central server (management node) controls an arbitrary number of other servers with various roles - web, mail, DNS, and so on. In terms of Plesk Automation, these controlled servers are called service nodes. When a customer subscribes to a web hosting plan, Plesk Automation allocates all the necessary resources on service nodes and links these resources to the customer's account. For example, when a customer subscribes to a shared web hosting plan, Plesk Automation creates a webspace for the customer on one of the available web server nodes. If the subscription also includes mail services, Plesk Automation creates mailboxes for the customer on one of the mail server nodes.

Note: This document assumes you already have a working Plesk Automation installation. For information about how to install Plesk Automation, refer to the Plesk Automation: Deployment Guide.

Moving to Plesk Automation Moving to Plesk Automation involves transferring of hosting data from existing servers to Plesk Automation service nodes. All business objects (service plans, customer and reseller accounts, and other) are transferred from the servers to the Plesk Automation management node. All subscriptions, and mailboxes are relocated to registered Plesk Automation service nodes.

When migrating from Plesk or Expand, you also have the option to keep existing SmarterMail mail servers and assimilate them in a Plesk Automation installation.

Supported Source Platforms The following source platforms are supported:

• Plesk 8.6 and later • Plesk Expand 2.3.3 • H-Sphere 3.5 and later • Odin Business Automation Standard 4.3.1-12 and later • Helm 3. • Helm 4.2.2

Introduction

Prerequisites Before starting a transfer, you should perform a number of common preparation steps (on page 8). Once the steps are completed, you can proceed to transferring data. The transfer scenarios vary depending on the source platform.

Preparing for the Move

C H A P T E R 3

Preparing for the Move

You should perform the following preparation steps before performing the move:

1 Install the moving tool (on page 9). To perform your move to Plesk Automation, you should use a command-line tool called panel-migrator, which is available from the Odin . 2 Install mail sync software (Windows servers) (on page 10). This step is required only if you perform the move from Windows-based Panel servers. Without this software, the tool will be unable to transfer mail from such servers. 3 Open ports in firewalls (on page 11). To ensure that the data transfer is possible, configure the firewalls on the source and destination servers to allow connections on the necessary ports. On Windows-based source servers, also make sure that the administrative shares (admin$, c$, d$) exist. 4 Prepare the source servers (on page 12). Carry out several checks and install the rsync software on Windows-based nodes. 5 Prepare the destination service nodes (on page 13). Add the required number of servers to Plesk Automation and install additional software. Once the preparation is finished, you can start the data transfer.

In this chapter:

1. Install the Plesk Automation Moving Tool ...... 9 2. Install Mail Sync Software (Windows Servers) ...... 10 3. Configuring Firewalls...... 11 4. Prepare Source Servers ...... 12 5. Prepare Service Nodes ...... 13 6. (Optional) Create Reverse DNS Zones ...... 16 7. (Optional) Prepare for Assimilating SmarterMail Servers ...... 16 8. (Optional) Prepare for Assimilating Database Servers ...... 18

Preparing for the Move

1. Install the Plesk Automation Moving Tool

We strongly recommend that you install the tool on the management node. However, if needed, you can run the tool on any server in your network that meets the following requirements:

• CentOS 5.x/6.x or Red Hat Enterprise 5.x/6.x is installed on the server. • The server is able to connect to your hosting servers and the Plesk Automation management node.

. To install the tool on a server: 1 Log in to your server as root. 2 Download the installation script: http://download.automation.odin.com/ppa/11.5/panel- migrator/installer.sh 3 Make installer.sh executable: chmod +x installer.sh 4 Install the tool by running the script: ./installer.sh

After you complete this step, the tool will be ready for operation.

The tool is automatically updated every time you run it.

Tuning the Migration Performance By default, Plesk Automation restarts Apache service on Plesk Automation Apache service nodes after every change that requires a restart. There are several such changes during the transfer of a single subscription. If the Plesk Automation Apache service node carries many sites, each restart of the Apache service may take up to a minute. For example, if you transfer 10 subscriptions to a single Plesk Automation Apache service node, Apache restart takes 30 seconds, and this happens 3 times during the transfer of each subscription. In this case, migration takes additional 15 minutes just to restart the Apache service.

To reduce the migration time, you can do the following: set Plesk Automation apache-restart- interval setting to a high value before transfer, run the transfer, restore the original Apache restart interval, and then restart Apache on all Apache service nodes.

If you want the migration tool to do this automatically, specify a value for the apache- restart-interval setting in the migration tool's configuration file. You can learn more about configuration in the corresponding sections titled Configure the Tool.

Preparing for the Move

2. Install Mail Sync Software (Windows Servers)

Important: This step is required if the source mail server on your Plesk for Windows supports IMAP. By default, the support for IMAP is turned on in all versions of Plesk for Windows starting with Plesk 9. If you use an earlier Plesk version or if you intentionally turned off the support for IMAP, skip this step.

The Plesk Automation moving tool transfers mail services from Windows servers using a third- party utility called imapsync. Therefore, before transferring data from Windows servers, you should install imapsync on the same server where you installed the Plesk Automation moving tool. If you are planning to assimilate a single SmarterMail server, then you do not need to install imapsync.

. To install imapsync on CentOS 5, use the Plesk Automation moving tool: panel-migrator install-imapsync

. To install imapsync on RHEL 5, follow the instructions below: 1 Install EPEL repository by running the following command: On 32-bit OSes: rpm -ihv http://dl.fedoraproject.org/pub/epel/5/i386/epel-release- 5-4.noarch.rpm On 64-bit OSes: rpm -ihv http://dl.fedoraproject.org/pub/epel/5/x86_64/epel- release-5-4.noarch.rpm 2 Install imapsync from the EPEL repository: yum install imapsync

. To install imapsync on CentOS 6 or RHEL 6, follow the instructions below: 1 Install EPEL repository by running the following command: On 32-bit OSes: rpm -ihv http://dl.fedoraproject.org/pub/epel/6/i386/epel-release- 6-8.noarch.rpm On 64-bit OSes: rpm -ihv http://dl.fedoraproject.org/pub/epel/6/x86_64/epel- release-6-8.noarch.rpm 2 For RHEL 6, install the "-File-Copy-Recursive" package from the CentOS 6 repository: # rpm -ihv http://mirror.centos.org/centos/6/os/i386/Packages/perl-File-Copy- Recursive-0.38-4.el6.noarch.rpm 3 Install imapsync from the EPEL repository:

Preparing for the Move

yum install imapsync

3. Configuring Firewalls

If a source or destination server is behind a , you need to properly configure the firewall to allow the migration data exchange.

The following ports must be opened on the source servers.

Source platform Services and ports Linux-based servers running Plesk SSH connections • TCP port 22 Plesk API • TCP port 8443 Windows-based servers running Plesk Files and Printers sharing • TCP ports: 135, 139, 445 • UDP ports: 137, 138 SQL server • TCP ports: 1433 (if using the default instance) • UDP ports: 1434 • TCP ports: all, or manually selected (if using a named instance) rsync • TCP ports: 873 Plesk API • TCP ports: 8443 POP3 and IMAP • TCP ports: 110, 143 Windows-based servers operating as Plesk Files and Printers sharing Expand centralized mail servers • TCP ports: 135, 139, 445 • UDP ports: 137, 138 Plesk API • TCP ports: 8443 POP3 and IMAP • TCP ports: 110, 143

Preparing for the Move

Windows-based servers operating as Plesk Microsoft SQL Server Expand centralized database servers • TCP ports: 1433 (if using the default instance) • UDP ports: 1434 • TCP ports: all, or manually selected (if using a named instance) MySQL • TCP ports: 3306

4. Prepare Source Servers

The preparation of source servers for transfer consists of two main steps: checking that the source servers meet the transfer requirements and installing the rsync software (only for Windows servers).

Preliminary Checking Before you start the transfer, perform the following checks on your source servers:

1 Make sure that your source servers are capable of working as slave DNS servers. To check this, you can: 1. Create a sample domain on your source server. 2. Select the source server's DNS server as the slave DNS server for the domain's zone. 3. Ensure that changes in the zone are successfully propagated from the master DNS server to your slave DNS server. 2 Make sure your source servers meet the following disk space requirements: • At least 1 GB of free disk space. • Additional free disk space for storing dumps of . A dump may be several times larger in size than the original database. Installing the rsync Software (Windows Servers) To transfer data from Windows-based servers, you need to install the rsync software on them. When migrating from Expand, Helm 3, and Plesk for Windows, rsync is configured automatically.

. To install and configure the rsync software on the source servers: 1 Download the installation file cwRsyncServer_4.0.5_Installer.zip from http://download.automation.odin.com/ppa/11.5/panel- migrator/cwRsyncServer_4.0.5_Installer.zip. 2 Unpack the file and install rsync following the installation instructions.

Important: You must specify a user account with administrator's privileges during installation.

Preparing for the Move

3 Update the rsync configuration file rsyncd.conf with the strings given below. The file is located in the rsync installation directory (C:\Program Files\ICW by default) uid = 0 gid = 0 hosts allow = , , ... = rsyncd.log [vhosts] path = /cygdrive/c/inetpub/vhosts read only = true transfer logging = yes where , , ... are the IP addresses of the Windows-based service nodes.

Important: If virtual hosts in your Plesk installation are not located in the default directory, change the value of the path variable: 1. Obtain the right path from the Windows registry: HKLM\SOFTWARE\PLESK\PSA Config\Config\HTTPD_VHOSTS_D for 32-bit systems or HKLM\SOFTWARE\Wow6432Node\PLESK\PSA Config\Config\HTTPD_VHOSTS_D for 64-bit systems. 2. Update the value of the path variable with the path from the registry. Note that you should convert the path to the Cygwin format. For example, if your virtual hosts are located at D:\home\plesk_vhosts, the resulting path is /cygdrive/d/home/plesk_vhosts

4 Create the C:\migrator directory and update the rsync configuration file rsyncd.conf with the strings given below. [migrator] path = /cygdrive/c/migrator read only = true transfer logging = yes 5 Configure your firewall to allow inbound connections from target Windows nodes to the port 873. 6 Start the rsync service on behalf of the Windows administrator: net start RsyncServer

After installing and configuring rsync, go to the service settings (Services > Log On tab), and make sure that administrator's username and are specified, or Local system account is selected. Restart the service after changing the user.

5. Prepare Service Nodes

Before starting the transfer, you should prepare your Plesk Automation service nodes for this. These service nodes must be a complete replacement for your source hosting servers: They must provide all the services provided by the source servers.

Example 1 For example, you want to migrate from two Plesk servers: one for Windows and one for Linux. To correctly prepare for the transfer, you should:

Preparing for the Move

1 Prepare two clean servers: one with installed Linux and one with installed Windows . 2 Register both servers in Plesk Automation: • Windows server as the node with the IIS web server / MS SQL Server 2008 database server role. • Linux server as the node with the Apache web server / Postfix mail server / MySQL database server role. 3 Install MySQL on the Windows service node. 4 Install SSI on the Windows service node. 5 Prepare two clean Linux servers (for the DNS service). 6 Register these servers as nodes with the DNS server role. Example 2 For example, you want to migrate from two Plesk for Windows servers. The migration should be performed on two separate Windows service nodes. To correctly prepare for the transfer, you should: 1 Prepare two clean Windows servers (replacement for your existing servers) and one clean Linux server (for the mail service). 2 Register Windows servers in Plesk Automation as nodes with the IIS web server / MS SQL Server 2008 database server role. 3 Register Linux server as the node with the Postfix mail server role. 4 Install MySQL on the Windows service nodes. 5 Install SSI on the Windows service nodes. 6 Prepare two clean Linux servers (for the DNS service). 7 Register these servers as nodes with the DNS server role. Example 3 For example, you want to migrate from Expand that controls two Plesk servers: one for Windows and one for Linux. To correctly prepare for the transfer, you should:

1 Prepare two clean servers: one with installed Linux and one with installed Windows operating systems. 2 Register both servers in Plesk Automation: • Windows server as the node with the IIS web server / MS SQL Server 2008 database server role. • Linux server as the node with the Apache web server / Postfix mail server / MySQL database server role. 3 Install MySQL on the Windows service node. 4 Install SSI on the Windows service node. 5 Prepare two clean Linux servers (for the DNS service). 6 Register these servers as nodes with the DNS server role.

Preparing for the Move

Example 4 For example, you want to migrate from Expand that controls two Plesk for Windows servers without the mail service. The migration must be performed on two separate Windows service nodes. To correctly prepare for the transfer, you should: 1 Prepare two clean Windows servers (replacement for your existing servers) and one clean Linux server (for the mail service). 2 Register Windows servers in Plesk Automation as nodes with the IIS web server / MS SQL Server 2008 database server role. 3 Register Linux server as the node with the Postfix mail server role. 4 Install MySQL on the Windows service nodes. 5 Install SSI on the Windows service nodes. 6 Prepare two clean Linux servers (for the DNS service). 7 Register these servers as nodes with the DNS server role.

Next in this section:

Register Service Nodes in Plesk Automation ...... 15 Check Disk Space on Service Nodes ...... 15 Install MySQL on IIS Web Server Nodes (Windows Servers)...... 15 Install Server Side Includes (Windows Servers) ...... 16

Register Service Nodes in Plesk Automation

The transfer scenario assumes that you already have a working Plesk Automation environment with service nodes that can be used as a replacement for your existing servers. Therefore, before performing the data transfer, you should register these service nodes.

For instructions on how to register service nodes in Plesk Automation, refer to the Plesk Automation: Deployment Guide, section Adding Service Nodes.

Check Disk Space on Service Nodes

Make sure your Plesk Automation target service nodes have the same (or more) amount of disk space as source servers do.

Install MySQL on IIS Web Server Nodes (Windows Servers)

While Plesk for Windows provides support for MySQL databases, IIS-based web server nodes in Plesk Automation do not do that. This means that before transferring customer databases from Windows-based Plesk servers, you should first add support for MySQL to the target node.

Preparing for the Move

. To add support for MySQL on the target IIS web server node: 1 Obtain the MySQL 5.1 distribution package and install it following the installation instructions. 2 Add the MySQL installation directory to the PATH environment variable. 3 Restart the PEM service by running the following commands on behalf of the Windows administrator: net stop pem net start pem

Install Server Side Includes (Windows Servers)

By default, support for Server Side Includes (SSI) is not enabled on Windows servers. Therefore, if SSI was enabled on your source servers, you must turn on support for SSI on the Plesk Automation Windows service nodes as well.

. To turn on support for SSI on a Windows service node: 1 Connect to the node over RDP. 2 Log in to the node as Administrator. 3 Add the SSI role to the server in Server Manager > Roles > Web Server (IIS) > Add Role Services > Server Side Includes.

6. (Optional) Create Reverse DNS Zones

A reverse DNS lookup process (when a looks up a name based on its address) is essential to a large number of services. The processing of reverse requests is based on reverse DNS zones that store the information about IP addresses and corresponding domain names. This information is represented by PTR records contained within a corresponding reverse DNS zone.

By default, the reverse DNS lookups are disabled in Plesk Automation. To enable them, you must create one or more reverse DNS zones according to your network configuration. You can do this in Administration Panel > Services > DNS Zones > DNS tab > Reverse DNS Zones. Note that you do not need to create PTR records. Plesk Automation will automatically create them for all hosted domains, once you have created a suitable reverse DNS zone.

7. (Optional) Prepare for Assimilating SmarterMail Servers

The information provided in this article is applicable only to those who migrate from Plesk 9.5 or later, or Expand 2.3, and who use Windows-based SmarterMail servers.

Preparing for the Move

Starting from Plesk Automation 11.5, you have the option to keep existing SmarterMail mail servers in production and connect them to your Plesk Automation installation. In this case, mailboxes will remain on the SmarterMail servers and Plesk Automation will control the servers just like any other service nodes. The existing SmarterMail servers can be used for serving new domains and domains transferred from Plesk or Plesk Expand.

Compared to the usual data transfer process, this assimilation offers the following advantages: • There is no need to buy new hardware for a new SmarterMail server. • There is no need to buy an additional SmarterMail license for a new SmarterMail server. • Zero downtime for the mail services. No additional mail synchronization is required after moving. However, when migrating SmarterMail in transfer mode, the downtime can also be significantly reduced by setting low TTL values in DNS zones before migration. • When using external DNS servers (not controlled by the source panel), you do not have to change mail DNS records. There are also several disadvantages in the assimilation: • You should be very careful when using the source panel after domains are moved to Plesk Automation: Any changes to the mail settings of domains in the source panel might disrupt the operation of mail services. • Assimilation cannot be reverted. Once a domain is in Plesk Automation, you cannot transfer it back to the old panel. For this reason, SmarterMail assimilation must not be used when performing test migrations. In general, we recommend performing a transfer instead of assimilation, if you can obtain new hardware and a SmarterMail license.

Supported Software Versions • SmarterMail 8-11. Versions earlier than 8 are not supported. • Plesk 9.5, 10.4, 11.0, 11.5. • Plesk Expand 2.3.2 with centralized mail based on Plesk 9.5, 10.4, 11.0, 11.5. Prerequisites 1 Connect the existing SmarterMail server to Plesk Automation as a regular service node. Refer to Administrator's Guide to learn how to do it. 2 Configure a service template for SmarterMail migration. You need to configure a service template that includes the Mail Service resource that is provisioned to a SmarterMail node. When creating service template with the Add Shared Hosting Template wizard, set Mail Hosting to SmarterMail-based. Refer to Plesk Automation Administrator's Guide to learn how to create a new service template. 3 Check whether SmarterMail and the newly created service template are properly configured: a Based on the service template, create in Plesk Automation a test subscription with a webspace and mail resource. b Make sure that there are no failed tasks related to the subscription in Plesk Automation's task manager (in Operations > Tasks).

Preparing for the Move

c Log in to the hosting panel (Operations > Subscriptions > subscription name > Managed By > Login as Customer), and try creating a mailbox (Mail tab > Create Address). d Log in to the SmarterMail web interface using the SmarterMail administrator's credentials and make sure that the mailbox was created in SmarterMail. e (Optional) Make sure that this mailbox can receive new messages and that you can send new messages from that email address. Running the Transfer Run the data transfer as described in the following chapters. During the transfer, you will not need to use any special settings or additional configuration steps to ensure that the mailboxes will not be transferred.

8. (Optional) Prepare for Assimilating Database Servers

You have the option to keep existing database servers in production and connect them to your Plesk Automation installation.

In this case, databases and database users will remain on the existing database servers and Plesk Automation will control the servers like any other external database servers. The existing database servers can be used for serving new domains and domains transferred from other hosting platforms.

Compared to the usual data transfer process, this assimilation offers the following advantages:

• There is no need to buy new hardware. • There is no need to reconfigure existing customers' applications that use databases. • In case of Microsoft SQL Server (or other commercial solutions) there is no need to buy additional licenses.

There are also several disadvantages in the assimilation: • You should be very careful when using the source panel after domains are moved to Plesk Automation: for example, when you remove a domain from the source panel, databases will be removed too. • Two instances of the same (on the source and on the target server) use the same databases, which may lead to conflicts. You should consider that and be careful when testing migrated web applications. In general, we recommend performing a transfer instead of assimilation, if you can obtain new hardware, licenses, and reconfigure web applications after migration.

Preparing for the Move

Prerequisites 1. Connect existing database servers to Plesk Automation as external database servers. To do this, use the Add Database Server wizard in Administration Panel > Infrastructure > Database Servers.

Important: To be able to register Microsoft SQL Server-based database servers, you should have at least one IIS web server node registered in Plesk Automation.

When specifying database server administrator's credentials, do not use "root" as the username. 2. Create resource types for these servers. To do this, go to Products > Resources > Add New Resource Type > Database Service, type a name, for example "assimilated MySQL server", select a database server type, and specify the IP address and port of the external database server. 3. Configure service templates that use these resources. Refer to Plesk Automation Administrator's Guide to learn how to create a new service template. You can specify the resources when creating a service template with the wizard, or you can manually add the resources to any service template. 4. Check whether the service templates and external database servers are properly configured: a Based on a service template, create in Plesk Automation a test subscription with a webspace and a database. b Make sure that there are no failed tasks related to the subscription in Plesk Automation task manager (in Operations > Tasks). c Log in to the hosting panel (Operations > Subscriptions > subscription name > Managed By > Login as Customer), and try creating a database and a database user. d (Optional) Make sure that you can log in to the external database server with new database user's credentials, and that the database is present on the server. Running the Transfer Run the data transfer as described in the following chapters. During the transfer, you will not need to use any special settings or additional configuration steps to ensure that the databases will not be transferred.

Transfer Scenario for Plesk 8.6 and Later

C H A P T E R 4

Transfer Scenario for Plesk 8.6 and Later

The transfer of hosting data requires you to have a working Plesk Automation environment with service nodes that can be used as a replacement for your existing servers: All hosting data are transferred to particular Plesk Automation nodes. Thus, all business objects such as plans, customer and reseller accounts are transferred to the Plesk Automation management node. Subscriptions from your existing servers are transferred to certain service nodes.

Performing the Data Transfer The process of transferring hosting data consists of the following steps: 1 Configure the transfer tool. The tool is configured with the help of a configuration file. It defines various communication parameters such as server IP addresses, the administrator's credentials, and so on. 2 Import resellers to Plesk Automation (on page 25). The transfer tool does not fully automate the transfer of resellers to Plesk Automation: It automatically transfers reseller accounts while you need to manually configure these accounts and reseller plans before transferring resellers' customers and domains. 3 Import plans (templates) to Plesk Automation (on page 26). Service plans are not automatically registered in Plesk Automation during transfer. Therefore, you should either create your plans in Plesk Automation manually or use the transfer tool for this purpose. 4 Create a transfer list (on page 26). A transfer list is a file that specifies what objects (plans, reseller accounts, and subscriptions) should be transferred to Plesk Automation from source servers. 5 Associate subscriptions and plans (on page 28). Associate subscriptions with certain imported plans. 6 Check for possible conflicts and limitations (on page 29). Before moving to Plesk Automation, we strongly recommend that you perform a preliminary check for possible transfer conflicts. For example, two different service plans on different Panels may have the same name. Based on the check results, the tool generates a report with all found conflicts. 7 Install MySQL on target Windows-based IIS service nodes. 8 Run the transfer process (on page 31). Once all preparation steps are completed, you can run the transfer. In this step, the tool transfers all subscriptions from your existing servers to registered Plesk Automation service nodes. 9 Redirect DNS to the new servers (on page 32).

Transfer Scenario for Plesk 8.6 and Later

After DNS services are relocated to Plesk Automation, you need to update all your NS records on the registrar's DNS servers with the IP address of your Plesk Automation DNS server. 10 Verify that the data were transferred correctly (on page 32). The operability of web, mail, DNS, and FTP services for each transferred domain is checked. 11 Finalize the synchronization of content (on page 32). Ensure that any changes to the content made by your customers during the transfer process are transferred as well. 12 (Optional) Create reverse DNS zones (on page 16). As Plesk Automation does not automatically create reverse DNS zones for used IP network addresses, this should be done manually.

In this chapter:

Multiple Webspaces in a Single Subscription ...... 21 1. Configure the Tool ...... 22 2. Import Resellers to Plesk Automation ...... 25 3. Import Plans to Plesk Automation ...... 26 4. Generate a Transfer List ...... 26 5. Associate Subscriptions with Plans ...... 28 6. Check for Possible Conflicts ...... 29 7. Install MySQL on Target IIS Nodes ...... 30 8. Run Transfer ...... 31 9. Redirect DNS to the New Servers ...... 32 10. Verify the Transferred Data ...... 32 11. Finalize the Synchronization of Content ...... 32

Multiple Webspaces in a Single Subscription

In Plesk Automation, several sites can be hosted either in one subscription, or in individual subscriptions. By default, when transferring sites from Plesk 8 or 9, every domain of a user is transferred to a separate subscription. This results in domain owners having multiple subscriptions to manage, which is not very convenient. To avoid this inconvenience, the migration tool provides the option to transfer all domains of a user into multiple webspaces under one subscription.

To use this option, you need to do the following:

1. Before starting a transfer, create in Plesk Automation a service template that will provide enough web hosting and mail hosting resources. In service template properties (in Products > Service Templates > template name > Resources tab), set the following types of resources to unlimited or equal to the number of migrated sites: Apache Webspace, IIS Webspace, Postfix Mail, SmarterMail, and Subscription.

Transfer Scenario for Plesk 8.6 and Later

2. In the tool configuration, set the migration mode, as shown in the section 1. Configure the Tool (on page 22), Example 4.

1. Configure the Tool

Since the transfer tool communicates with a number of servers, you should provide it with server IP addresses, administrators' credentials, and other information. The tool is configured with the help of a config.ini file, which is not created by default. For your convenience, the directory /opt/panel-migrator/conf/samples/ contains the plesk-to-ppa.ini file which you can use as a basis for creating your own config.ini.

. To configure the tool: 1 Create the config.ini file based on the template. For example: cp /opt/panel-migrator/conf/samples/plesk-to-ppa.ini config.ini 2 Edit the config.ini file to configure the tool. The description of file sections is provided below. The Structure of the Configuration File The config.ini file consists of several sections of two types:

• Predefined. These sections contain information about your Plesk Automation management node and various aspects of data transfer. The names of the sections [GLOBAL] and [ppa] are predefined by the tool and you should not change them. • Custom. These sections contain information about your existing servers. You can use arbitrary names for such sections. For example, [plesk1], [plesk2], and so on.

Also, each section has a number of settings of two types: • Mandatory. You must define these settings. • Optional. You do not have to define these settings. The value that will be assumed when you do not define a setting is specified in the configuration template file inside that setting's description. That description also has a commented line with the setting and its default value: if you want to change the value, uncomment that line and change the value in it. The meaning of each setting is described in the configuration template file.

Examples of the Configuration File Let us take a look at the examples of the config.ini file. In all these examples, Plesk Automation is deployed with webmail on a separate service node with IP address 192.168.0.21.

Example 1.

Transfer Scenario for Plesk 8.6 and Later

In this example, we are going to transfer data from three Plesk servers (two on Linux and one on Windows). [GLOBAL] source-type: plesk source-servers: plesk1, plesk2, plesk3 target-type: ppa

[ppa] ip: 192.168.0.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[plesk1] ip: 192.168.0.100 os: panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[plesk2] ip: 192.168.0.101 os: unix panel-username: admin panel-password: setup2 ssh-username: root ssh-auth-type: password ssh-password: 234wer

[plesk3] ip: 192.168.0.102 os: windows panel-username: admin panel-password: setup3E windows-username: Administrator windows-password: 345ertYU

Example 2

In this example, we are going to transfer data from a Plesk server on Linux, and for config.ini file. Instead of using the password, we will set up the key-based . [GLOBAL] source-type: plesk source-servers: plesk1 target-type: ppa

[ppa] ip: 192.168.0.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe

Transfer Scenario for Plesk 8.6 and Later webmail-ip: 192.168.0.21

[plesk1] ip: 192.168.0.100 os: unix panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: key ssh-key: /root/.ssh/id_rsa

Example 3

In this example, we are going to transfer data from a Plesk server on Linux, which uses an external PostgreSQL server to host user databases. That PostgreSQL server is registered in Plesk using its IP v4 address (192.168.0.200). [GLOBAL] source-type: plesk source-servers: plesk1 external--servers: pg1 target-type: ppa

[ppa] ip: 192.168.0.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[plesk1] ip: 192.168.0.100 os: unix panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[pg1] host: 192.168.1.200 ip: 192.168.1.200 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

Example 4

In this example, we are going to transfer domains from a Plesk 8 server on Linux to Plesk Automation subscriptions with multiple webspaces. [GLOBAL] source-type: plesk source-servers: plesk1 target-type: ppa transfer-domains-to-subscription: same

[ppa] ip: 192.168.0.1 panel-username: admin

Transfer Scenario for Plesk 8.6 and Later panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[plesk1] ip: 192.168.0.100 os: unix panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

Example 5

In this example, we are going to transfer domains from a Plesk 11 server on Windows to Plesk Automation, and assimilate an existing SmarterMail server. [GLOBAL] source-type: plesk source-servers: plesk1 target-type: ppa

[ppa] ip: 192.168.0.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[plesk1] ip: 10.52.53.54 os: windows panel-username: admin panel-password: setup4E windows-username: Administrator windows-password: 128erfJR copy-mail-content: none

2. Import Resellers to Plesk Automation

The transfer tool has the following limitation: It allows you to transfer reseller accounts to Plesk Automation but it does not automatically transfer reseller plans. Therefore, to seamlessly import existing reseller accounts from your servers, you should first manually create reseller plans in Plesk Automation that correspond to the ones on your servers, and subscribe the resellers to these plans after the transfer. See the detailed instructions below.

. To import resellers to Plesk Automation: 1 Create reseller plans (templates) in Plesk Automation that correspond to reseller plans (templates) in your hosting solution. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates.

Transfer Scenario for Plesk 8.6 and Later

2 Generate a transfer list file called migration-list, by issuing the following command: # panel-migrator generate-migration-list config.ini 3 Edit the transfer list file migration-list (located in your session directory) to exclude reseller accounts that you do not want to transfer to Plesk Automation. To exclude a certain account from transfer, comment out or delete the corresponding line from the list. The lines look like Reseller: . 4 Perform the transfer of reseller accounts to the Plesk Automation management node by running the command: # panel-migrator import-resellers config.ini All resellers that exist in your hosting solution will be transferred to Plesk Automation. 5 Subscribe the transferred resellers to the newly created reseller plans. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates. 6 Configure hosting service templates on behalf of the reseller. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

3. Import Plans to Plesk Automation

The transfer tool does not perform the transfer of service plans to Plesk Automation. Therefore, you should do this manually.

. To import plans to Plesk Automation: 1 Create service plans (templates) in Plesk Automation that correspond to hosting plans on your Plesk servers. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates. 2 Configure subscription provisioning by assigning proper provisioning attributes to the templates. The provisioning attribute is a tag that links a plan and nodes on which the services included into the plan should be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Customers and Resellers.

4. Generate a Transfer List

A transfer list defines the list of objects (plans, reseller accounts, user accounts, and subscriptions) that should be transferred from source servers to Plesk Automation. The transfer list file can be automatically generated by the transfer tool. By default, after the generation, it contains all objects that are present on source servers (see the example below).

Transfer Scenario for Plesk 8.6 and Later

. To generate the transfer list, if you have not done this in step 2, run the following command: # panel-migrator generate-migration-list config.ini After you run the command, the tool will create the migration-list file in the session directory defined in your config.ini. You will need this file during further transfer steps.

Transfer List Structure After generation, the list contains all subscriptions that exist on source servers. In addition, the file contains plans, reseller and customer accounts to which the subscriptions are related.

The list comprises a number of sections - one section per each reseller. The sections are marked with a line Reseller: Reseller's name.

Each section consists of a number of subsections - one subsection per each service plan of the reseller. These subsections are marked with a line Plan: Plan name. Note that plan names cannot contain the # symbol.

Each plan subsection contains a list of customer accounts subscribed to that plan, and the domain names of the customers' subscriptions. Customer account names are marked with a line Customer: customer's name.

By default, customer accounts are listed below the corresponding reseller accounts. You can move the customer account to other resellers, including the administrator, using the transfer list.

Each subscription must be assigned to a customer. By default, administrator's subscriptions are assigned to a special customer called ppa-admin. Reseller's subscriptions are assigned to a special customer called ppa-. If such customer accounts already exist in Plesk Automation, the migration tool will transfer subscriptions without checking whether the subscriptions belong to those accounts.

You can reassign all subscriptions (including the administrator's and resellers' subscriptions) to any customers using the transfer list.

Note: You can assign subscriptions to nonexistent customers. In such a case, the migration tool will create the corresponding customer accounts in Plesk Automation (without any personal information prefilled) and will transfer subscriptions to them.

Note that your hosting plans are not grouped under a certain section: They go at the beginning of the file before the reseller sections. Depending on the type of the source hosting platform, the initial content of the file may differ: • If a source platform is Plesk 10.x and later, the tool automatically determines association between plans and subscriptions. Thus, each plan section contains the list of associated subscriptions. The only exceptions are custom subscriptions - subscriptions that are not associated with a certain plan. Custom subscriptions are placed outside of plan sections. Typically, all you need is to move custom subscriptions to a certain plan section.

Transfer Scenario for Plesk 8.6 and Later

• If a source platform is Plesk 9.x or earlier, the file will contain an unsorted list of all subscriptions and service plans (templates). You should associate subscriptions with the plans by moving them to corresponding plan sections. An Example of the List # The list of subscriptions # These subscriptions must be moved to a section of a certain service plan. Otherwise, the tool will not start transfer. Customer: ppa-admin admins-subscription1.tld Customer: bobs customer1-subscription1.tld customer1-subscription2.tld

# Administrator's service plans and subscriptions Plan: Gold hosting Customer: ppa-admin admins-subscription2.tld Customer: jacks customer2-subscription1.tld customer2-subscription2.tld

Plan: Bronze hosting Plan: Silver hosting # Resellers Reseller: johns_123 # The subscriptions that are not assigned to a certain service plan. They must be moved to a section of a certain service plan of this reseller. Customer: ppa-johns_123 notassigned1.tld # Reseller's service plans Plan: Unlimited Customer: ppa-johns_123 # The subscriptions of this reseller reseller-subscription1.tld reseller-subscription2.tld # The customers of this reseller subscribed to this plan Customer: johndoe # The subscriptions of this customer reseller1-customer1-subscription1.tld

Reseller: toms # Reseller's service plans Plan: Reseller Plan 2 # The customers of this reseller subscribed to this plan Customer: katie_23 # The subscriptions of this customer reseller2-customer1-subscription1.tld

5. Associate Subscriptions with Plans

In this step you should associate subscriptions that exist on your servers with certain service plans you have imported to Plesk Automation in the previous step. This is done by adjusting the transfer list file.

As all subscriptions in Plesk Automation should be associated with certain plans (templates), this step is obligatory for all hosting platforms:

Transfer Scenario for Plesk 8.6 and Later

• Plesk 9.x and earlier do not support association between plans (templates) and subscription. Therefore, you should associate them before performing the data transfer. • In Plesk 10.x and later all subscriptions are associated with certain plans (these associations are automatically reflected in the file). The only exceptions are custom subscriptions - subscriptions that are not the instances of certain service plans. As Plesk Automation does not support custom subscriptions, you need to associate them with certain plans using the transfer list.

. To associate subscriptions with certain service plans, edit the transfer file.

The association is performed by placing the corresponding subscription line under a certain plan section, or placing a line describing a plan (Plan: ) above the lines describing subscriptions. Note that the tool will not start the transfer until there are subscriptions which are not associated with plans. If you do not want to associate certain subscriptions with plans, comment out the corresponding lines or delete them.

Note: All plans from the list must exist in Plesk Automation. Otherwise, the tool will be unable to complete the transfer.

For example, to associate the custom subscription admins-subscription.tld with the Gold hosting plan move the corresponding line under the plan section.

Before After # Custom subscriptions Plan: Gold hosting Customer: ppa-admin Customer: ppa-admin admins-subscription.tld admins-subscription.tld

Plan: Gold hosting Customer: bob Customer: bob customer1-subscription1.tld customer1-subscription1.tld Plan: Silver hosting Plan: Silver hosting

6. Check for Possible Conflicts

Before performing a transfer, we strongly recommend that you perform a preliminary check for possible conflicts that can cause issues during the data transfer process or even make switching to Plesk Automation impossible. Such a check is performed by the transfer tool and includes a number of checks concerning various aspects of hosting panels' functionality. Below we describe the most important checks that may require your attention:

Transfer Scenario for Plesk 8.6 and Later

• Check for customer / reseller accounts with the same e-mails and contact names. There are three account parameters that the tools use to identify an account: username, e-mail, and contact name. Let us look closer at the system behavior when these parameters match for different accounts: • Usernames, e-mails, and contact names are the same. The system considers such accounts to represent the same person or company: Only one of them will be transferred to Plesk Automation. The priority is given to the account from the panel that is listed first in the sources string of config.ini. Accounts from other panels are ignored: Their subscriptions are also registered in Plesk Automation, but these subscriptions become associated with the customer / reseller account which had the priority during the transfer. If you want each of such accounts to be transferred to Plesk Automation, specify another e-mail and username for conflicting accounts. • Usernames and contact names are the same, e-mails are different. The move to Plesk Automation will be impossible until you specify another username for conflicting accounts. • Usernames and e-mails are the same, contact names are different. The move to Plesk Automation will be impossible until you specify the same contact names (if these are the same persons) for conflicting accounts. • E-mails are the same, usernames and contact names are different. The move to Plesk Automation will be impossible until you specify other e-mails for conflicting accounts.

. To perform the preliminary check: $ panel-migrator check config.ini Based on the check results, the tool generates a report. The report contains messages of two types: • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when a certain issue blocks the transfer. You must resolve all issues marked as ERROR before performing the transfer.

7. Install MySQL on Target IIS Nodes

While Plesk for Windows provides support for MySQL databases, IIS-based web server nodes in Plesk Automation do not do that. This means that before transferring customer databases from Windows-based Plesk servers, you should first add support for MySQL to the target node.

Transfer Scenario for Plesk 8.6 and Later

. To add support for MySQL on the target IIS web server node: 1. Obtain the MySQL 5.1 distribution package and install it following the installation instructions. 2. Add the MySQL installation directory to the PATH environment variable. 3. Restart the PEM service by running the following commands on behalf of the Windows administrator: net stop pem net start pem

8. Run Transfer

Once all preparation steps are done, you can run the transfer process.

. To run the transfer: 1 Issue the following command: panel-migrator transfer-accounts config.ini The tool performs the transfer of your hosting data to certain service nodes. 2 Test the transferred domains: panel-migrator test-all config.ini --skip-dns-forwarding-test The test-all command helps you verify that the transferred domains are operating properly. However, it does not check whether mail can be sent and received. You should manually check that. 3 If any issues were found by the tool, resolve them and re-run the command in step 2 to verify they are resolved. The tool does not require you to resolve all of these issues. You can resolve only the important ones. Note that this command allows specifying a different transfer list, which can be useful when a transfer has failed for many domains, and you do not want to test these domains. In such a case, specify the latest list with successfully transferred domains, for example: panel-migrator test-all config.ini --skip-dns-forwarding-test --migration-list-file migration-session/successful-subscriptions.1385955582.55

Transfer Scenario for Plesk 8.6 and Later

9. Redirect DNS to the New Servers

As the DNS service is relocated to the Plesk Automation DNS server, you should update all your NS records on the registrar's DNS server with the IP addresses of your Plesk Automation DNS servers.

Also, make sure that DNS propagation has ended. This means that you should wait for the period of time which is equal to the sum of TTL and SOA refresh interval.

10. Verify the Transferred Data

. To check the operability of web, mail, DNS, and FTP services for each transferred domain, issue the following command: panel-migrator test-all config.ini --skip-dns-forwarding-test The test-all command checks the following:

• Websites. It checks the main page and links to the same website (or relative links) located on the main page. • DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains

Otherwise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution. After resolving all issues, we recommend that you restart the check.

11. Finalize the Synchronization of Content

. To complete the synchronization of content between the source and the destination servers, do the following: 1 Copy the content that could be added by your customers during the transfer process from your source servers. • To copy mail content:

Transfer Scenario for Plesk 8.6 and Later

panel-migrator copy-mail-content config.ini • To copy website content: panel-migrator copy-content config.ini • To copy databases: panel-migrator copy-db-content config.ini In this step, the tool will update the content of the transferred subscriptions with any changes that were made during the transfer. Note that the tool makes a full copy of databases (as opposed to mail and where only new content is copied) which may require significant time. 2 Check that the transfer completed successfully. a Issue the command panel-migrator test-all config.ini. b Send a few email messages from some external address to a transferred mailbox, and check that these messages were received successfully. 3 Remove the rsync software from the source Windows servers.

Transfer Scenario for Expand 2.3.3

C H A P T E R 5

Transfer Scenario for Expand 2.3.3

Transferring of hosting data from Plesk Expand 2.3.3 (hereafter referred to as Expand) requires you to have a working Plesk Automation environment with service nodes that can be used as a replacement for your existing servers: All hosting data are transferred to particular Plesk Automation nodes. Thus, all business objects such as plans, customer and reseller accounts are transferred to the Plesk Automation management node. Subscriptions from your existing servers are transferred to certain service nodes.

Expand, as a multi-server solution, provides the support for two specific server types: central mail servers and central DNS servers. The services from these servers are transferred in the following way: • Central mail servers. Mailboxes and their content are relocated from such servers to a mail server node registered in Plesk Automation. • Central DNS servers. DNS services are relocated to DNS servers registered in Plesk Automation: They store all DNS zones from the Expand's central DNS server. After the transfer, Expand's DNS server starts to forward all requests to a Plesk Automation's master DNS server. This allows keeping all existing NS records on a registrar's DNS server as is. Performing the Data Transfer The process of transferring hosting data consists of the following steps: 1 Import resellers to Plesk Automation (on page 35). Reseller accounts are not automatically transferred to Plesk Automation: you should do this manually. 2 Import plans (templates) to Plesk Automation (on page 36). Service plans are not automatically registered in Plesk Automation during transfer: you should do this manually. 3 Configure the panel-migrator tool (on page 37). The tool is configured with the help of a configuration file. This defines various communication parameters such as server IP addresses, the administrator's credentials, and so on. 4 Create a transfer list (on page 39). A transfer list is a file that specifies what objects (plans, reseller accounts, and subscriptions) should be transferred to Plesk Automation from source servers. 5 Associate subscriptions and plans (on page 41). Associate subscriptions with certain imported plans.

Transfer Scenario for Expand 2.3.3

6 Check for possible conflicts and limitations (on page 42). Before moving to Plesk Automation, we recommend that you perform a preliminary check for possible transfer conflicts. For example, two different service plans on different Panels may have the same name. Based on the check results, the tool generates a report with all found conflicts. 7 Run the transfer process (on page 43). Once all preparation steps are completed, you can run the transfer. In this step, the tool transfers all subscriptions from your existing servers to registered Plesk Automation service nodes.

In this chapter:

1. Import Resellers to Plesk Automation ...... 35 2. Import Plans to Plesk Automation ...... 36 3. Configure the Tool ...... 37 4. Generate a Transfer List ...... 39 5. Associate Subscriptions with Plans ...... 41 6. Check for Possible Conflicts ...... 42 7. Run Transfer ...... 43

1. Import Resellers to Plesk Automation

The panel-migrator tool does not automatically transfer reseller accounts to Plesk Automation. You should do this manually.

To import resellers to Plesk Automation:

1 Create reseller plans (templates) in Plesk Automation that correspond to reseller plans (templates) in your hosting solution. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates. 2 Create all reseller accounts you want to transfer as described in the Plesk Automation: Operations Guide, section Creating Reseller Accounts. 3 Subscribe the resellers you created in step 2 to the newly created reseller plans. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates. 4 Configure hosting service templates on behalf of the reseller. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

Transfer Scenario for Expand 2.3.3

2. Import Plans to Plesk Automation

The panel-migrator tool does not perform the transfer of service plans to Plesk Automation. Therefore, you should do this manually. Note that this refers to all types of service plans: hosting plans, reseller plans, and hosting plans of your resellers.

. To import hosting plans to Plesk Automation: 1 Create service plans (templates) in Plesk Automation that correspond to hosting plans in Expand. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates. 2 Configure subscription provisioning by assigning proper provisioning attributes to the templates. The provisioning attribute is a tag that links a plan and nodes on which the services included into the plan should be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Customers and Resellers.

. To import reseller plans to Plesk Automation: 1 Create reseller plans (templates) in Plesk Automation that correspond to reseller plans in Expand. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates. 2 Subscribe resellers transferred in step 3. Import Resellers to Plesk Automation (on page 35) to the newly created reseller templates. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates.

. To import hosting plans of a certain reseller to Plesk Automation: 1 Create service plans (templates) in Plesk Automation that correspond to the hosting plans of this reseller in Expand. To do this, use the Add New Service Template button in Operations > Resellers > select a reseller > Subscriptions tab > Service templates. 2 Configure subscription provisioning by assigning proper provisioning attributes to the templates. The provisioning attribute is a tag that links a plan and nodes on which the services included into the plan should be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Customers and Resellers.

Transfer Scenario for Expand 2.3.3

3. Configure the Tool

Since the panel-migrator tool communicates with a number of servers, you should provide it with server IP addresses, administrators' credentials, and other information. The tool is configured with the help of the config.ini file, which is not created by default. For your convenience, the directory /opt/panel-migrator/conf/samples/ contains the expand-to-ppa.ini file that you can use as a basis for creating your own config.ini.

Important: We strongly recommend that you create a separate directory for each transfer operation and perform the transfer being in this directory.

. To configure the tool: 1 Create the config.ini file based on the template. For example: cp /opt/panel-migrator/conf/samples/expand-to-ppa.ini config.ini 2 Edit the config.ini file to configure the tool. The description of file sections is provided below. The Structure of the Configuration File The config.ini file consists of several sections of two types:

• Predefined. These sections contain information about your Plesk Automation management node and various aspects of data transfer. The names of the sections [GLOBAL] and [ppa] are predefined by the tool and you should not change them. The [expand] section contains the information about your Expand server. • Custom. These sections contain information about your existing servers. You can use arbitrary names for such sections. For example, [plesk1], [plesk2], and so on.

Also, each section has a number of settings of two types:

• Mandatory. You must define these settings. • Optional. You do not have to define these settings. The value that will be assumed when you do not define a setting is specified in the configuration template file inside that setting's description. That description also has a commented line with the setting and its default value: if you want to change the value, uncomment that line and change the value in it. The meaning of each setting is described in the configuration template file.

An Example of the Configuration File Let us take a look at the example of the config.ini file.

Example 1

Transfer Scenario for Expand 2.3.3

In this example, we are going to transfer data from Expand with the following servers connected: two Panel servers (one on Linux and one on Windows), one centralized mail server, and one centralized DNS server. The Plesk Automation installation in this example is deployed with webmail on a separate service node with IP address 192.168.1.21. [GLOBAL] source-type: expand source-servers: plesk1, plesk2 centralized-mail-servers: cm1 centralized-dns-servers: cd1 target-type: ppa

[ppa] ip: 192.168.1.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.1.21

[expand] ip: 192.168.0.1 panel-username: root panel-password: 123qwe ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[plesk1] ip: 192.168.0.2 os: unix panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[plesk2] ip: 192.168.0.3 os: windows panel-username: admin panel-password: setup2 windows-username: Administrator windows-password: 234werTY

[cm1] ip: 192.168.0.4 os: unix panel-username: admin panel-password: setup3 ssh-username: root ssh-auth-type: password ssh-password: 345ert

[cd1] ip: 192.168.0.5 ssh-username: root ssh-auth-type: password ssh-password: 456rty

Example 2

Transfer Scenario for Expand 2.3.3

In this example, we are going to transfer data from an Expand installation that has one Linux-based web hosting server, and one centralized Windows-based mail server running SmarterMail. The mail server will be assimilated. [GLOBAL] source-type: expand source-servers: plesk1 centralized-mail-servers: cm1 target-type: ppa

[ppa] ip: 192.168.1.1 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.1.21

[expand] ip: 192.168.0.1 panel-username: root panel-password: 123qwe ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[plesk1] ip: 192.168.0.2 os: unix panel-username: admin panel-password: setup1 ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[cm1] ip: 10.52.53.54 os: windows panel-username: admin panel-password: setup windows-username: Administrator windows-password: setup copy-mail-content: none

4. Generate a Transfer List

A transfer list defines the list of objects (plans, reseller accounts, user accounts, and subscriptions) that should be transferred from source Panels to Plesk Automation. The transfer list file can be automatically generated by the panel-migrator tool. By default, after the generation, it contains all objects that are present on source servers (see the example below).

. To generate the transfer list, run the following command: # panel-migrator generate-migration-list config.ini After you run the command, the tool will create the migration-list file in the session directory defined in your config.ini. You will need this file during further transfer steps.

Transfer Scenario for Expand 2.3.3

Transfer List Structure After generation, the list contains all subscriptions that exist on source Panels. In addition, the file contains plans, reseller and customer accounts to which the subscriptions are related.

The list comprises a number of sections - one section per each Expand reseller. The sections are marked with a line Reseller: Reseller's name.

Each section consists of a number of subsections - one subsection per each service plan of the reseller. These subsections are marked with a line Plan: Plan name. Note that plan names cannot contain the # symbol.

Each plan subsection contains a list of customer accounts subscribed to that plan, and the domain names of the customers' subscriptions. Customer account names are marked with a line Customer: customer's name.

By default, customer accounts are listed below the corresponding reseller accounts. You can move the customer account to other resellers, including the administrator, using the transfer list.

Each subscription must be assigned to a customer. By default, administrator's subscriptions are assigned to a special customer called ppa-admin. Reseller's subscriptions are assigned to a special customer called ppa-. If such customer accounts already exist in Plesk Automation, the migration tool will transfer subscriptions without checking whether the subscriptions belong to those accounts.

You can reassign all subscriptions (including the administrator's and resellers' subscriptions) to any customers using the transfer list.

Note: You can assign subscriptions to nonexistent customers. In such a case, the migration tool will create the corresponding customer accounts in Plesk Automation (without any personal information prefilled) and will transfer subscriptions to them.

Note that your hosting plans are not grouped under a certain section: They go at the beginning of the file before the reseller sections.

The tool automatically determines association between plans and subscriptions. Thus, each plan section contains the list of associated subscriptions. The only exceptions are custom subscriptions - subscriptions that are not associated with a certain plan. Custom subscriptions are placed outside of plan sections. Typically, all you need is to move custom subscriptions to a certain plan section.

An Example of the List # The list of subscriptions # These subscriptions must be moved to a section of a certain service plan. Otherwise, the tool will not start transfer. Customer: ppa-admin admins-subscription1.tld Customer: bobs customer1-subscription1.tld customer1-subscription2.tld Customer: johns_123 # Expand Plesk resellers are converted into Plesk Automation customers.

Transfer Scenario for Expand 2.3.3

notassigned1.tld

# Administrator's service plans and subscriptions Plan: Gold hosting Customer: ppa-admin admins-subscription2.tld Customer: jacks customer2-subscription1.tld customer2-subscription2.tld Customer: johns_123 # Expand Plesk resellers are converted into Plesk Automation customers. reseller-subscription1.tld reseller-subscription2.tld Customer: johndoe # The subscriptions of this customer reseller1-customer1-subscription1.tld

Plan: Bronze hosting Plan: Silver hosting # Expand Resellers Reseller: exp_ress1 Plan: Plesk Automation plan for exp_ress1 customers Customer: jake site1.tld site2.tld Customer: robert # Expand Plesk resellers are converted into Plesk Automation customers. site3.tld site4.tld

5. Associate Subscriptions with Plans

In this step you should associate subscriptions that exist on your servers with certain service plans you have imported to Plesk Automation in one of the previous steps. This is done by adjusting the transfer list file.

By default, the file already contains such associations for all subscriptions. As Plesk Automation does not support custom subscriptions, you need to associate them with certain plans using the transfer list.

Note: The list contains plans and subscriptions only from the Expand server. Plans from Panel servers connected to Expand are ignored.

. To associate subscriptions with certain service plans, edit the transfer file. The association is performed by placing the corresponding subscription line under a certain plan section, or placing a line describing a plan (Plan: ) above the lines describing subscriptions. Note that the tool will not start the transfer until there are subscriptions that are not associated with plans. If you do not want to associate certain subscriptions with plans, comment out the corresponding subscription lines or delete them.

Note: All plans from the list must exist in Plesk Automation. Otherwise, the tool will be unable to complete the transfer.

Transfer Scenario for Expand 2.3.3

For example, to associate the custom subscription admins-subscription.tld with the Gold hosting plan, move the corresponding line under the plan section.

Before After # Custom subscriptions Plan: Gold hosting Customer: ppa-admin Customer: ppa-admin admins-subscription.tld admins-subscription.tld

Plan: Gold hosting Customer: bob Customer: bob customer1-subscription1.tld customer1-subscription1.tld Plan: Silver hosting Plan: Silver hosting

6. Check for Possible Conflicts

Before performing the transfer, we strongly recommend that you perform a preliminary check for possible conflicts that can cause issues during the data transfer process or even make switching to Plesk Automation impossible. Such a check is performed by the panel-migrator tool and includes a number of checks concerning various aspects of hosting panels' functionality. Below we describe the most important checks that may require your attention: • Check for customer / reseller accounts with the same e-mails and contact names. There are three account parameters that the tool uses to identify an account: username, e-mail, and contact name. Let us look closer at the system behavior when these parameters match for different accounts: • Usernames, e-mails, and contact names are the same. The system considers such accounts to represent the same person or company: Only one of them will be transferred to Plesk Automation. The priority is given to the account from the panel that is listed first in the sources string of config.ini. Accounts from other panels are ignored: Their subscriptions are also registered in Plesk Automation, but these subscriptions become associated with the customer / reseller account which had the priority during the transfer. If you want each of such accounts to be transferred to Plesk Automation, specify other e-mail and username for conflicting accounts. • Usernames and contact names are the same, e-mails are different. The move to Plesk Automation will be impossible until you specify another username for conflicting accounts. • Usernames and e-mails are the same, contact names are different. The move to Plesk Automation will be impossible until you specify the same contact names (if these are the same persons) for conflicting accounts. • E-mails are the same, usernames and contact names are different. The move to Plesk Automation will be impossible until you specify other e-mails for conflicting accounts.

. To perform the preliminary check: $ panel-migrator check config.ini

Transfer Scenario for Expand 2.3.3

Based on the check results, the tool generates a report. The report contains messages of two types: • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when a certain issue blocks the transfer. You must resolve all issues marked as ERROR before performing the transfer.

7. Run Transfer

Once all preparation steps are done, you can run the transfer process.

. To complete the transfer: 1 Lower records' TTL and refresh interval on the central DNS servers. This will let you minimize the time of new DNS records propagation. You can do this by running the command: panel-migrator set-low-dns-timings config.ini This command sets TTL and refresh time using the value of the zones-ttl parameter from the config.ini file. We recommend that you use the default value (120 seconds). 2 Run the transfer: panel-migrator transfer-accounts config.ini The tool performs the transfer of your hosting data to certain service nodes. If you did not set the resource limits in the service templates that you use for transfer to Unlimited, then the migration tool may exhaust certain resources of a Plesk Automation subscription while creating webspaces that do not need these resources. This can result in failure to create the webspaces for which the resources are required. To avoid this, use the option --allocate-only-required-resources. For example: panel-migrator transfer-accounts config.ini --allocate-only- required-resources

Test the transferred domain by issuing the command panel-migrator test-all config.ini -- skip-dns-forwarding-test.

The test-all command checks the following: • Websites. It checks the main page and links to the same website (or relative links) located on the main page.

Transfer Scenario for Expand 2.3.3

• DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains were transferred correctly, the report will show "All domains were transferred correctly." Otherwise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution. 1 If any issues were found by the tool, resolve them and re-run the command in the previous step to verify they are resolved. The tool does not require you to resolve all of these issues. You can resolve only the important ones. Note that this command allows specifying a different transfer list, which can be useful when a transfer has failed for many domains, and you do not want to test these domains. In such a case, specify the latest list with successfully transferred domains, for example: panel-migrator test-all config.ini --skip-dns-forwarding-test --migration-list-file migration-session/successful- subscriptions.1385955582.55 2 Prohibit your hosting customers from accessing their subscriptions both on the source servers and target service nodes. You can do this in any way you find convenient. For example, temporarily change customers' or prohibit connections to the 8443 port on the server. 3 Ensure that the period of time which is equal to the sum of old values of TTL and SOA refresh interval has passed since you ran the tool. This guarantees that all mail clients receive a new TTL value before you switch DNS forwarding on. 4 Turn on DNS forwarding: panel-migrator set-dns-forwarding config.ini

Note: If you perform the transfer from Expand with the central DNS server, you should set up DNS forwarding on this server instead of removing it from your infrastructure. In this case, the central DNS server continues to work - it does not store any DNS records (this is done by Plesk Automation) but only forwards all requests to a Plesk Automation's master DNS server. This allows keeping all existing NS records on a registrar's DNS server as is.

5 Ensure that the period of time which is equal to the sum of new values of TTL and SOA refresh interval (that you set up on the step 1) has passed after you switched forwarding. This guarantees that all clients have received the new address of your mail server. 6 Copy the content that could be added by your customers during the transfer process from your source servers. • To copy mail content:

Transfer Scenario for Expand 2.3.3

panel-migrator copy-mail-content config.ini • To copy website content: panel-migrator copy-content config.ini • To copy databases: panel-migrator copy-db-content config.ini In this step, the tool will update the content of the transferred subscriptions with the changes that were made between the steps 1 and 3.

Note: The tool makes a full copy of databases (as opposed to mail and web content where only new content is copied) which may require significant time.

7 On target service nodes, allow your hosting customers to access their subscriptions. 8 Check that the transfer completed successfully by issuing the following command: panel-migrator test-all config.ini

Transfer Scenario for H-Sphere 3.5 and Later

C H A P T E R 6

Transfer Scenario for H-Sphere 3.5 and Later

In the current release, Plesk Automation migration tools allow for migration of H-Sphere for Linux and Windows hosting subscriptions to the Plesk Automation environment. This includes migration of the websites running under Apache and IIS web servers, mail accounts from H-Sphere qmail to Plesk Automation postfix, MySQL and Microsoft SQL Server databases.

To start the migration, you need a running Plesk Automation environment with all required service nodes attached. The service templates (hosting plans) should be pre-configured in Plesk Automation. You will be mapping your old H-Sphere subscriptions to the Plesk Automation plans.

Note: To learn more about configuring the Plesk Automation environment before migration, see the section Prerequisites (on page 50).

During migration, all account information is imported to the Plesk Automation management node. After that, the migration tool creates a subscription in Plesk Automation and the hosting content is copied into this subscription.

If you are using reseller accounts, you should import the reseller's data first, and then configure service templates for these resellers. After that you will be mapping the subscriptions belonging to the resellers in H-Sphere to the service templates for these resellers in Plesk Automation .

Note that DNS records are not migrated from H-Sphere. Instead, Plesk Automation creates new zone definitions based on its own DNS zone template. You can pre- configure the DNS template from Plesk Automation administration panel.

Mapping of Business Objects In H-Sphere In PPA

Admin Provider User Customer Account Subscription Reseller Reseller The first domain of an account The main domain of a subscription Other domains of an account Add-on domains Subdomain Subdomain Third-level domain Add-on domain Parked domain Add-on domain

Transfer Scenario for H-Sphere 3.5 and Later

Stopgap domain Add-on domain Known Limitations for Transfers from H-Sphere Migration of the following hosting features and settings on Linux-based servers is not supported:

• ModLogAn • Referrer Log • Agent Log • Redirects • • Web Access Control • PHP file extensions Migration of the following hosting features and settings on Windows-based servers is not supported: • FrontPage • Redirects • Additional server aliases • Any settings of Microsoft Exchange • Web access control based on domain names is not transferred, as it's not supported in Plesk Automation. IP-address-based web access control settings are transferred. • SSI #exec directive support • ODBC DSNs Plesk Automation does not support ASP.NET 1.1. Sites using ASP.NET 1.1 will have to work with ASP.NET 2.0 after transfer. Please consider this when checking the transferred sites.

Migration of the following mail features is not supported: • mail SMS • comments from mailboxes • mailing lists • gray lists • mail domain keys • mail accounts on subdomains

After migration, database users will have the database administrator privileges. The privileges of database users that were granted before migration are not restored.

The migration tool does not support csh on FreeBSD.

Transfer Scenario for H-Sphere 3.5 and Later

Known Problems • After transfer of virtual directories located in user's home directory (above the site's directory), the virtual directory is not accessible over the the Web, resulting in the error 403 Forbidden. To resolve it, Plesk Automation administrators should grant the corresponding IIS anonymous web user (IUSR_) all permissions (except Full Control) on the transferred directory and files/directories under it.

• After transfer of error pages placed above the site's directory, IIS will respond with its default error messages instead of these error pages. To resolve this, Plesk Automation administrators should grant the corresponding IIS anonymous web user (IUSR_) the Read permission on the transferred error pages' files.

• If a customer wants to change the path to error page file in Plesk Automation Hosting Panel, Hosting Panel will reject the entered path, unless customer places the error page file under /error_docs directory and enters its relative path starting after error_docs/. • IIS dedicated application pools are not transferred. Plesk Automation allows using different PHP and ASP.NET versions in different virtual directories of a webspace as long as this webspace is not using a dedicated application pool. So it's up to the customer to choose: either to use a dedicated application pool, or to have the ability to set different PHP and ASP.NET versions in different sites and different virtual directories of the same webspace. • Applications that need to create files in the directories of add-on domains or subdomains (such as WordPress), will not operate properly after transfer because they do not have the write permission. To resolve this, after completing the transfer, go to the Customer Panel > Websites tab, click the Hosting Settings link to the add- on domain or subdomain, switch on the Additional write/modify permissions, and click OK. • An IIS site transferred from H-Sphere may not work, issuing 500 Internal Server Error, if that site is using parent paths in its ASP pages. For example, a page of such a site refers to another page as: <% Response.Write Server.MapPath("../example.asp") %> Plesk Automation offers IIS hosting on Windows 2008 and 2012. IIS on both these versions does not allow using parent paths by default. When a site is using parent paths, IIS does not let it work. Possible solutions: • After migration of a specific site: enable the use of parent paths for the specific site that is using them, in that site's ASP settings in IIS Manager.

Transfer Scenario for H-Sphere 3.5 and Later

• Before migration of any sites: enable the use of parent paths for all future sites on an IIS service node, in global or default settings of its IIS service. • Before or after migration of specific sites: notify the site owners that the parent paths policy has been changed, and they must modify their sites so as to avoid the use of parent paths; otherwise, their sites will not work. • MnoGoSearch and PHPBB are migrated but are not manageable through Plesk Automation. Performing a Migration The process of transferring hosting data is performed by the panel-migrator tool and consists of a number of steps:

1 Prepare source servers. 2 Configure the panel-migrator tool. The tool is configured with the help of a configuration file. This defines various communication parameters such as server IP addresses, the administrator's credentials, and so on. 3 Create a transfer list. A transfer list is a file that specifies what objects (reseller accounts and subscriptions) should be transferred to Plesk Automation from the source H-Sphere server. 4 Import resellers to Plesk Automation. The panel-migrator tool does not fully automate the transfer of resellers to Plesk Automation: It automatically transfers reseller accounts while you need to manually configure these accounts and reseller plans before transferring resellers' customers and domains. 5 Associate subscriptions from H-Sphere and plans in Plesk Automation. 6 Run the migration process. Once all preparation steps are completed, you can run a migration. In this step, the tool creates new subscriptions in Plesk Automation according to the chosen service templates and imports the subscription content from H-Sphere: websites, databases, and mailboxes. 7 Set up DNS forwarding to ensure that the migrated domains are resolved in the DNS. 8 Verify the transferred data. The operability of web, mail, DNS, and FTP services for each transferred domain is checked. In this chapter:

Prerequisites ...... 50 1. Prepare Source Servers ...... 50 2. Configure the Tool ...... 52 3. Generate a Transfer List ...... 53 4. Import Resellers to Plesk Automation ...... 55 5. Associate Subscriptions from H-Sphere with Plans in PPA ...... 56 6. Perform the Migration...... 57 7. Set Up DNS Forwarding ...... 57 8. Verify the Transferred Data ...... 58

Transfer Scenario for H-Sphere 3.5 and Later

Prerequisites

Before migrating, configure the Plesk Automation environment: 1 Attach all required service nodes. http://download.automation.odin.com/ppa/11.5/docs/en- US/online/ppa_deployment_guide/70075.htm. 2 Install license keys. http://download.automation.odin.com/ppa/11.5/docs/en- US/online/ppa_deployment_guide/71386.htm. 3 Create service plans (referred to as shared hosting templates) in Plesk Automation that correspond to hosting plans on your H-Sphere server. http://download.automation.odin.com/ppa/11.5/docs/en- US/online/ppa_operations_guide/70952.htm. 4 Assign provisioning attributes to the plans. The provisioning attribute is a tag that links a plan and nodes on which the services included in the plan can be set up. For details, refer to the link from item 3.

1. Prepare Source Servers Prepare the H-Sphere Control Panel Server PostgreSQL in H-Sphere is usually configured to accept only local connections. Thus, you need to do the following: 1 Reconfigure PostgreSQL to listen on any interface. Comment out the virtual_host setting in /var/lib/pgsql/data/postgresql.conf. 2 Change the PostgreSQL authentication settings to accept connections from the migration tool. Add a new line to /var/lib/pgsql/data/pg_hba.conf: host all all MIGRATION_TOOL_SERVER_IP 255.255.255.255 password where MIGRATION_TOOL_SERVER_IP is the IP address of the server on which the migration tool is installed. 3. Restart PostgreSQL: /etc/init.d/postgresql restart 4. Restart H-Sphere control panel: /etc/init.d/httpdcp restart Prepare the H-Sphere Windows Servers For each Windows-based server that you want to transfer, do the following: 1 Switch off H-Sphere's rsync service. To do this: a Edit the file "C:\Program Files\HSphere\Config\hsphere.config" and comment out all sections describing "rsync". After commenting, these sections should look like:

Transfer Scenario for H-Sphere 3.5 and Later

and b After saving your changes in this file, restart H- running these two commands in Windows command line: net stop hsphere net start hsphere c By using the Windows Task Manager, end the process called rsync.exe. 2 Install the RsyncServer service. a Download the installer archive from http://download.automation.odin.com/ppa/11.5/panel- migrator/cwRsyncServer_4.0.5_Installer.zip, unpack it, and install the RsyncServer

Transfer Scenario for H-Sphere 3.5 and Later

b Update the Rsync Server configuration file rsyncd.conf with the strings given below. The file is located in the Rsync Server installation directory (C:\Program Files\ICW by default) uid = 0 gid = 0 hosts allow = , , ... log file = rsyncd.log [vhosts] path = read only = true transfer logging = yes where , , ... are the IP addresses of the Windows-based service nodes. is the cygwin-style path to the directory containing IIS users home directories. The default path to this directory is C:\hshome, and the corresponding cygwin-style path is /cygwin/c/hshome c Change the system settings and run the installed RsyncServer service: 1. Click Start > Administrative Tools > Services. 2. In the Properties of the RsyncServer service: 3. On the Log On tab, select Local System account for the Log on as setting. 4. On the General tab, change the Startup type to automatic, and start the service.

2. Configure the Tool

Since the panel-migrator tool communicates with a number of servers, you should provide it with server IP addresses, administrators' credentials, and other information. The tool is configured with the help of the config.ini file, which is not created by default. For your convenience, the directory /opt/panel-migrator/conf/samples/ contains a template file called hsphere-to-ppa.ini that you can use as a basis for creating your own config.ini.

. To configure the tool: 1 Create the config.ini file based on the template. For example: cp /opt/panel-migrator/conf/samples/hsphere-to-ppa.ini config.ini 2 Edit the config.ini file to configure the tool. The description of file sections is provided below.

Transfer Scenario for H-Sphere 3.5 and Later

The Structure of the Configuration File The config.ini file consists of several sections, which contain information about your Plesk Automation management node and various aspects of data transfer. The names of the sections [GLOBAL] and [ppa] are predefined by the tool and you should not change them. The configuration file should also contain the [hsphere] section with the information about your H-Sphere server.

Also, each section has a number of settings of two types:

• Mandatory. You must define these settings. • Optional. You do not have to define these settings. The value that will be assumed when you do not define a setting is specified in the configuration template file inside that setting's description. That description also has a commented line with the setting and its default value: if you want to change the value, uncomment that line and change the value in it. The meaning of each setting is described in the configuration template file.

An Example of the Configuration File Let us take a look at the example of the config.ini file. In this example, we are going to transfer data from a single H-Sphere server. The Plesk Automation installation in this example has webmail on a separate service node with IP address 192.168.0.1. [GLOBAL] source-type: hsphere target-type: ppa

[ppa] ip: 192.168.0.20 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[hsphere] ip: 192.168.0.200 ssh-username: root ssh-auth-type: password ssh-password: 123qwe db-port: 5432 db-name: hsphere db-user: wwwuser db-password: 1q2w3e

3. Generate a Transfer List

A transfer list defines the list of objects (accounts and subscriptions) that should be migrated from the source H-Sphere server to Plesk Automation. The transfer list file can be automatically generated by the panel-migrator tool. By default, after the generation, it contains all objects that are present on the source H-Sphere server. See the example below.

Transfer Scenario for H-Sphere 3.5 and Later

. To generate the transfer list, run the following command: # panel-migrator generate-migration-list config.ini After you run the command, the tool will create a migration-list file in the session directory defined in your config.ini. You will need this file during further transfer steps.

If the creation of the transfer list is interrupted because of errors, and an error report is shown, resolve the issues as described in the section 6. Perform the Migration (on page 57).

Transfer List Structure After generation, the list contains all subscriptions that exist on source servers. In addition, the file contains plans, reseller and customer accounts to which the subscriptions are related.

The list comprises a number of sections - one section per each reseller. The sections are marked with a line Reseller: Reseller's name.

Each section consists of a number of subsections - one subsection per each service plan of the reseller. These subsections are marked with a line Plan: Plan name. Note that plan names cannot contain the # symbol.

Each plan subsection contains a list of customer accounts subscribed to that plan, and the domain names of the customers' subscriptions. Customer account names are marked with a line Customer: customer's name.

By default, customer accounts are listed below the corresponding reseller accounts. You can move the customer account to other resellers, including the administrator, using the transfer list.

Each subscription must be assigned to a customer. By default, administrator's subscriptions are assigned to a special customer called ppa-admin. Reseller's subscriptions are assigned to a special customer called ppa-. If such customer accounts already exist in Plesk Automation, the migration tool will transfer subscriptions without checking whether the subscriptions belong to those accounts.

You can reassign all subscriptions (including the administrator's and resellers' subscriptions) to any customers using the transfer list.

Note: You can assign subscriptions to non-existent customers. In such a case, the migration tool will create the corresponding customer accounts in Plesk Automation (without any personal information prefilled) and will transfer subscriptions to them.

An Example of the List # The list of subscriptions # These subscriptions must be moved to a section of a certain service plan. Otherwise, the tool will not start transfer. Customer: ppa-admin admins-subscription1.tld Customer: bobs customer1-subscription1.tld customer1-subscription2.tld

Transfer Scenario for H-Sphere 3.5 and Later

# Administrator's service plans and subscriptions Plan: Gold hosting Customer: ppa-admin admins-subscription2.tld Customer: jacks customer2-subscription1.tld customer2-subscription2.tld

Plan: Bronze hosting Plan: Silver hosting # Resellers Reseller: johns_123 # The subscriptions that are not assigned to a certain service plan. They must be moved to a section of a certain service plan of this reseller. Customer: ppa-johns_123 notassigned1.tld # Reseller's service plans Plan: Unlimited Customer: ppa-johns_123 # The subscriptions of this reseller reseller-subscription1.tld reseller-subscription2.tld # The customers of this reseller subscribed to this plan Customer: johndoe # The subscriptions of this customer reseller1-customer1-subscription1.tld

Reseller: toms # Reseller's service plans Plan: Reseller Plan 2 # The customers of this reseller subscribed to this plan Customer: katie_23 # The subscriptions of this customer reseller2-customer1-subscription1.tld

4. Import Resellers to Plesk Automation

The panel-migrator tool has the following limitation: It allows you to transfer reseller accounts to Plesk Automation but it does not automatically transfer reseller plans. Therefore, to seamlessly import existing reseller accounts from your servers, you should first manually create reseller plans in Plesk Automation that correspond to the ones on your servers, and subscribe the resellers to these plans after the transfer. See the detailed instructions below.

. To import resellers to Plesk Automation: 1 Create reseller plans (templates) in Plesk Automation that correspond to reseller plans (templates) in your hosting solution. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates. 2 Edit the transfer list file migration-list (located in your session directory) to exclude reseller accounts that you do not want to transfer to Plesk Automation. To exclude a certain account from transfer, comment out or delete the corresponding line from the list. The lines look like Reseller: .

Transfer Scenario for H-Sphere 3.5 and Later

3 Perform the transfer of reseller accounts to the Plesk Automation management node by running the command: # panel-migrator import-resellers config.ini All resellers that exist in your hosting solution will be transferred to Plesk Automation. 4 Subscribe the transferred resellers to the newly created reseller plans. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates. 5 Configure hosting service templates on behalf of the reseller. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

5. Associate Subscriptions from H-Sphere with Plans in PPA

In this step you should associate the subscriptions that are present on your H-Sphere server with the service plans you have created in Plesk Automation in the previous step. This is done by adjusting the transfer list file.

. To associate subscriptions with service plans, edit the transfer file. The association is performed by placing the corresponding subscription line under a certain plan section, or placing a line describing a plan (Plan: ) above the lines describing subscriptions. Note that the tool will not start the transfer until there are subscriptions that are not associated with plans. If you do not want to associate certain subscriptions with plans, comment out the corresponding lines or delete them.

Note: All plans from the list must exist in Plesk Automation. Otherwise, the tool will be unable to complete the migration.

For example, to associate the custom subscription admins-subscription.tld with the Gold hosting plan, move the corresponding line under the plan section.

Before After # Custom subscriptions Plan: Gold hosting Customer: ppa-admin Customer: ppa-admin admins-subscription.tld admins-subscription.tld

Plan: Gold hosting Customer: bob Customer: bob customer1-subscription1.tld customer1-subscription1.tld Plan: Silver hosting Plan: Silver hosting

Transfer Scenario for H-Sphere 3.5 and Later

6. Perform the Migration

Once all preparation steps are done, run the migration process by issuing the following command: panel-migrator transfer-accounts config.ini.hsphere -- migration-list-file migration-list

During the migration or transfer, all data from H-Sphere are saved to a backup. If there are settings or data that cannot be migrated because of database inconsistency, network connection problems, or other issues, the migration tool interrupts the migration process and shows a report with recommendations on how to resolve such issues. After seeing this report, you need to resolve the detected issues and restart the migration. If all issues are properly resolved, the migration will not be interrupted. If not all of the detected issues were resolved, but you still want to migrate the remainder of data, run the migration tool with the option --ignore-fetch-source-errors: panel-migrator transfer-accounts config.ini.hsphere -- migration-list-file migration-list --ignore-fetch-source- errors

In this case, only the subscriptions and accounts that do not have any issues will be migrated.

When the migration is finished, a message similar to the following will be shown in the console:

"Report tree was saved in migration- session/resellers_report_tree. file."

You can learn about the results of the migration process by viewing the contents of this file.

Important: After migration is completed, modify the migrated sites so that they start using their databases hosted by Plesk Automation. This will help you (1) ensure that the sites on the source server are not affected while the migrated sites are being tested on the destination server, and (2) ensure that the migrated sites remain operable after the source server is decommissioned.

7. Set Up DNS Forwarding To ensure that the migrated domains are resolved, issue the following command:

Transfer Scenario for H-Sphere 3.5 and Later

panel-migrator set-dns-forwarding config.ini --migration-list migration-list

8. Verify the Transferred Data

. To check the operability of web, mail, DNS, and FTP services for each transferred domain, issue the following command: panel-migrator test-all config.ini --skip-dns-forwarding-test The test-all command checks the following:

• Websites. It checks the main page and links to the same website (or relative links) located on the main page. • DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains

Otherwise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution. After resolving all issues, we recommend that you restart the check.

Transfer Scenario for PBAS

C H A P T E R 7

Transfer Scenario for PBAS

Odin Business Automation Standard is a billing solution that enables providers to sell hosting services from an arbitrary number of Plesk servers. Transferring data from Odin Business Automation Standard to Plesk Automation implies that all subscriptions that exist on these servers are moved to Plesk Automation service nodes. Other business objects such as plans, customer and reseller accounts are transferred to the Plesk Automation management node and become synced with the corresponding Odin Business Automation Standard objects. Odin Business Automation Standard continues working as is with only difference that now it communicates (creates accounts, subscriptions, and so on) with the Plesk Automation management node instead of a number of separate Plesk servers (see the diagram for convenience).

Resellers after the Transfer Unlike Plesk Automation , resellers in Odin Business Automation Standard are not subscribed to reseller plans (Odin Business Automation Standard does not have such a plan type). Resellers are divided into two groups: those who have their dedicated Plesk server and those who serve customers on shared servers. The main difference between the categories is in the payment model. While resellers with dedicated servers pay periodically for leasing their server, the second category of resellers pays for each subscription purchased by their customers.

To keep the payment model intact, resellers of these two categories should be transferred in different ways. The recommended transfer scenario implies that you subscribe resellers with dedicated servers to separate Plesk Automation reseller templates which guarantee the amount of resources equivalent to the ones provided by their former dedicated server. All the resellers using shared servers are subscribed to some common reseller template.

Transfer Scenario for PBAS

In further sections, instructions for transferring these reseller categories will be given separately and designated by names Resellers on Dedicated Servers and Resellers on Shared Servers correspondingly.

Important Notes • The transfer is possible only from servers with Plesk 8 and later connected to Odin Business Automation Standard. • You can transfer only the subscriptions to the service plans of the Plesk Domain and Plesk Client types. • After the transfer, DNS zones of the transferred domains located on the Odin Business Automation Standard DNS server will be rewritten with the ones from Plesk Automation . Therefore, all changes made to DNS records in Odin Business Automation Standard will be lost after the transfer. Performing the Data Transfer The process of transferring hosting data from Odin Business Automation Standard consists of the following steps: 1 Import plans (templates) to Plesk Automation (on page 61). Service plans are not automatically registered in Plesk Automation during transfer. Therefore, you should create your plans in Plesk Automation manually. 2 Connect Plesk Automation to Odin Business Automation Standard (on page 62). In this step, you should register the Plesk Automation management node in Odin Business Automation Standard and create Odin Business Automation Standard service plans connected with the Plesk Automation templates (created in step 1). 3 Create the transfer data and configuration files (on page 64). After this step, you will get two files: The transfer data file (contains data about subscriptions that should be transferred to Plesk Automation nodes) and the tool configuration file (defines server communication parameters). 4 Configure the panel-migrator tool (on page 66). The tool is configured with the help of the configuration file created in step 4. This file defines various communication parameters such as server IP addresses, the administrator's credentials, and so on. 5 Check for possible conflicts and limitations (on page 67). Before moving to Plesk Automation, we recommend that you perform a preliminary check for possible transfer conflicts. For example, two different subscriptions on different Plesk servers may have system users with the same name. Based on the check results, the tool generates a report with all found conflicts. 6 Install MySQL on IIS Web Server Nodes (Windows Servers) (on page 67). Plesk for Windows provides support for MySQL databases while IIS-based web server nodes in Plesk Automation do not. This means that to transfer customer databases, you should first add support for MySQL to a target IIS node. 7 Run the transfer process (on page 68). Once all preparation steps are completed, you can run the transfer. In this step, the tool transfers all subscriptions from your Plesk servers to Plesk Automation nodes.

Transfer Scenario for PBAS

8 Finalize the transfer (on page 68). In this step, the system creates new Odin Business Automation Standard subscriptions associated with the ones transferred to Plesk Automation nodes. In addition, DNS zones in Odin Business Automation Standard are updated with new servers' IP addresses.

In this chapter:

1. Import Plans to Plesk Automation ...... 61 2. Connect Plesk Automation to Odin Business Automation Standard ...... 62 3. Generate the Transfer Data and Configuration Files ...... 64 4. Configure the Tool ...... 66 5. Check for Possible Conflicts ...... 67 6. Install MySQL on IIS Web Server Nodes (Windows Servers) ...... 67 7. Run Transfer ...... 68 8. Finalize Transfer ...... 68

1. Import Plans to Plesk Automation

As the migration tool does not perform the transfer of service plans to Plesk Automation, you should create the corresponding service templates manually. In addition, if you served resellers through Odin Business Automation Standard and want to transfer them to Plesk Automation, you should also create one reseller template which will be used by all resellers.

. To import plans to Plesk Automation from Odin Business Automation Standard: 1 Log in to Plesk Automation. 2 Create service templates in Plesk Automation that correspond to hosting plans in Odin Business Automation Standard (including the ones owned by resellers). For detailed instructions on how to do this, refer to the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

Transfer Scenario for PBAS

3 Assign provisioning attributes to the plans. The provisioning attribute is a tag that links a plan and nodes on which the services included in the plan can be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Setting Up Your Business Offer. Each Plesk subscription includes support for a number of services, such as web hosting, mail services, and database services. The subscriptions from your hosting solution will be relocated to Plesk Automation service nodes using the standard provisioning workflow: Plesk Automation will match the attribute of a service with attributes of service nodes. If Plesk Automation does not find a match, a subscription will not be relocated. You can assign attributes in the Administration Panel > Products > Service Templates > select a template > Resources > select a resource > Provisioning Attributes. 4 For resellers on shared servers, create a reseller template in Plesk Automation which will be used by all of the transferred resellers. For detailed instructions on how to do this, refer to the Plesk Automation: Operations Guide, section Creating Reseller Templates.

Note: You can create a template with only one resource type - Client accounts.

5 For resellers on dedicated servers, create reseller templates in Plesk Automation which will include all resources for hosting subscriptions, plus the Client account resource. Set the limit on all included resources (except Disk space) to Unlimited. As for Disk space, you can set it to unlimited or to an actual amount that your new dedicated server provides. For detailed instructions on how to do this, refer to the Plesk Automation: Operations Guide, section Creating Reseller Templates.

2. Connect Plesk Automation to Odin Business Automation Standard

To be able to sell Plesk Automation services through Odin Business Automation Standard, you should connect the Plesk Automation management node to your Odin Business Automation Standard instance and create service plans linked to the Plesk Automation templates. These service plans will represent corresponding Plesk Automation templates in Odin Business Automation Standard. Thus, when a customer subscribes to a plan in Odin Business Automation Standard, Plesk Automation will create a subscription to the template linked with this plan.

. To connect Plesk Automation to Odin Business Automation Standard: 1 Log in to Plesk Automation as the administrator. 2 Set the following system settings in System > Settings > System Properties: • Ability to add domains from customer CP - Enabled. • Domain registrar status default value - Ready. • Allow using of several dots in - Enabled.

Transfer Scenario for PBAS

• Allow to move domains between subscriptions - Disabled. • Customers management from POA UI - Disabled. • IDN Domains Support - Enabled. • Ability to remove domains from customer CP - Disabled. 3 Allow access to Plesk Automation Public API from the Odin Business Automation Standard server by adding the server's IP address to System > Settings > Public API > Allowed Networks. 4 Log in to Odin Business Automation Standard as the administrator. 5 Register the Plesk Automation management node by running Service Director > Parallels Automation Manager > Nodes > New Node. When setting the Reseller Service Template parameter, specify the reseller template you created in step 3 of 1. Import Plans to Plesk Automation (on page 61). This reseller template will be used for all resellers on shared servers. 6 Wait until the list of service templates from Plesk Automation is propagated to Odin Business Automation Standard. You can check the list at Service Director > Parallels Automation Manager > Service Templates. 7 For each Plesk Automation service template (excluding the ones owned by resellers on dedicated servers), create the corresponding service plan in Billing Director > Product Manager > Hosting Plans > New Hosting Plan. You will be prompted to provide a number of plan options: • In Select a Plan Type step, set POA as the plan type. • When specifying PA nodes, choose your Plesk Automation management node. • In Service Templates step, specify the Plesk Automation service template that corresponds to the created plan. 8 For each reseller on shared servers: 1. Log in to Odin Business Automation Standard on behalf of a certain reseller using Account Director > Reseller Manager > Resellers > select the reseller > Login to RCC. 2. Create plans by copying those hosting plans (created in step 4) that correspond to the former reseller's plans. You can do this in Billing Director > Product Manager > Hosting Plans > New Hosting Plan > Create a copy of the Provider's existing hosting plan. 9 For each reseller on dedicated servers: 1. Subscribe each reseller to the corresponding reseller plan created in step 4 of 1. Import Plans to Plesk Automation (on page 61).

Important: This operation can be done by the reseller representative only. They should subscribe to the plan through the Odin Business Automation Standard online store.

2. Log in to Odin Business Automation Standard on behalf of a certain reseller using Account Director > Reseller Manager > Resellers > select the reseller > Login to RCC.

Transfer Scenario for PBAS

3. For each Plesk Automation service template that corresponds to former reseller's plan, create a service plan in Billing Director > Product Manager > Hosting Plans > New Hosting Plan. You will be prompted to provide a number of plan options: • In Select a Plan Type step, set POA as the plan type. • When specifying PA nodes, choose your Plesk Automation management node. • In Service Templates step, specify the Plesk Automation service template that corresponds to the created plan. 10 Log in to Plesk Automation as the administrator. 11 For the DNS resource type in Products > Resources > DNS > Activation Parameters tab > Edit, set the First nameserver parameter to the Odin Business Automation Standard server. This means that all DNS zones will be managed by the Odin Business Automation Standard DNS server (by default they are managed by the Plesk Automation DNS server).

Note: By default, the DNS resource type is included in all shared hosting templates. If you use another resource type for DNS services, perform the step for this type.

3. Generate the Transfer Data and Configuration Files

In this step, you create two files needed to complete the transfer to Plesk Automation: • A transfer data file. This is an XML file that defines the list of transferred subscriptions and specifies new plans (created on the previous step 3. Connect Plesk Automation to PBAS (on page 62)) for them. • A transfer configuration file. This file contains various communication parameters such as IP addresses of all involved servers, administrator credentials, and so on.

Both files are created with the help of the plesk_to_ppa_migrate.pl tool which is a part of the Odin Business Automation Standard distribution.

. To generate the transfer data and configuration files: 1 Log in to your Odin Business Automation Standard server over SSH as root. 2 Generate a transfer list file: plesk_to_ppa_migrate.pl -prepare-migration The tool will generate the migration_list.txt file.

Transfer Scenario for PBAS

3 Configure the transfer process by editing the migration_list.txt file. This file is used to map the plans (created in the previous step 3. Connect Plesk Automation to Odin Business Automation Standard (on page 62)) and the former Odin Business Automation Standard plans used for subscriptions you want to transfer. It also allows you to set the exact list of subscriptions to transfer. The example of the file with comments is given below: # Plan mapping. The plans are grouped by owners - the provider and resellers. # In this section, define the mapping between former plans used for transferred subscriptions and new plans (connected to PPA) with which the subscriptions should be associated after the transfer. Each line in this section should contain the former plan's Series Key and new plan's ID separated by the "->" symbol. # Note that for the former plans, the tool automatically takes plans with the latest ID based on their Series Key. # Provider 7 (Plesk Domain)-> 16 12 (Plesk Client 11)-> 20 14 (Plesk Client 9)-> 20 16 (Plesk Domain 9)-> 20 # reseller John Doe 37 (Plesk Domain 3 res)-> 21 38 (Plesk Domain 2 res)-> 22

# The list of subscriptions to transfer. If you don't want to transfer a certain subscription either remove it from this list or comment it out with "#". # Provider 2; customer-domain-plesk.tst # Odin Business Automation Standard customer 3; customer-domain2-plesk.tst # Odin Business Automation Standard customer # reseller John Doe 6; example1.tst 9; example2.tst 4 Generate the transfer data and configuration files: plesk_to_ppa_migrate.pl -start-migration -migration- file=migration_list.txt

After completing this step, the plesk_to_ppa_migrate.pl tool will generate two files:

• migration_data.xml - the transfer data file. • config.ini - the configuration file.

Note: After this step, the tool will also transfer customer and reseller accounts (owners of the transferred subscriptions) from Odin Business Automation Standard to Plesk Automation.

Transfer Scenario for PBAS

4. Configure the Tool

Since the panel-migrator tool communicates with a number of servers, you should provide it with server IP addresses, administrators' credentials, and other information. The tool is configured with the help of the config.ini file, which was created in the previous step 5. Generate the Transfer Data and Configuration Files (on page 64).

. To configure the tool: 1 Copy the config.ini and migration_data.xml files you created in the previous step from the Odin Business Automation Standard server to the server where the panel-migrator tool is located. 2 Edit the config.ini file to configure the tool. The description of file sections is provided below. The Structure of the Configuration File The config.ini file consists of several sections of two types:

• Predefined. These sections contain information about your Plesk Automation management node and various aspects of data transfer. The names of the sections [GLOBAL] and [ppa] are predefined by the tool and you should not change them. • Custom. These sections contain information about your existing servers connected to Odin Business Automation Standard. You can use arbitrary names for such sections. For example, [plesk1], [plesk2], and so on.

Note: The major part of the parameters in the file is already set. Typically, all you have to do is specify authentication settings such as passwords and authentication type. For the meaning of these parameters, their possible values, and for information about other supported parameters, see the configuration template file /opt/panel-migrator/conf/samples/pbas-to- ppa.ini.

An Example of the Configuration File Let us take a look at the example of the config.ini file. In this example, we are going to transfer data from two Plesk servers. The Plesk Automation installation in this example has webmail on a separate service node with IP address 192.168.0.21. [GLOBAL] source-type: pbas pbas-data-file: migration_data.xml source-servers: plesk1, plesk2 target-type: ppa

[ppa] ip: 10.52.71.64 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[plesk1]

Transfer Scenario for PBAS ip: 10.50.51.194 os: unix panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe

[plesk2] ip: 192.168.0.102 os: windows panel-username: admin panel-password: setup1Q windows-username: Administrator windows-password: 123qweQWE

5. Check for Possible Conflicts

Before performing a transfer, we strongly recommend that you perform a preliminary check for possible conflicts that can cause issues during the data transfer process or even make switching to Plesk Automation impossible. Such a check is performed by the panel-migrator tool and includes a number of checks concerning various aspects of hosting panels' functionality, such as usernames of accounts' staff members, DNS hosting type, and other.

. To perform the preliminary check: $ panel-migrator check config.ini Based on the check results, the tool generates a report. The report contains messages of two types: • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when a certain issue blocks the transfer. You must resolve all issues marked as ERROR before performing the transfer.

6. Install MySQL on IIS Web Server Nodes (Windows Servers)

While Plesk for Windows provides support for MySQL databases, IIS-based web server nodes in Plesk Automation do not do that. This means that before transferring customer databases from Windows-based Plesk servers, you should first add support for MySQL to the target node.

. To add support for MySQL on the target IIS web server node: 1 Obtain the MySQL 5.1 distribution package and install it following the installation instructions.

Transfer Scenario for PBAS

2 Add the MySQL installation directory to the PATH environment variable. 3 Restart the PEM service by running the following commands on behalf of the Windows administrator: net stop pem net start pem

7. Run Transfer

Once all preparation steps are completed, you can run the transfer process: 1 Run the transfer: panel-migrator transfer-accounts config.ini The tool performs the transfer of your hosting data to certain service nodes. 2 Test the transferred domains: panel-migrator test-all config.ini --skip-dns-forwarding-test 3 If any issues were found by the tool, resolve them and re-run the command in the previous step to verify they are resolved. The tool does not require you to resolve all of these issues. You can resolve only the important ones. Note that this command allows specifying a different transfer list, which can be useful when a transfer has failed for many domains, and you do not want to test these domains. In such a case, specify the latest list with successfully transferred domains, for example: panel-migrator test-all config.ini --skip-dns-forwarding-test --migration-list-file migration-session/successful- subscriptions.1385955582.55

Note: In this step, DNS zone files on the Odin Business Automation Standard DNS server are not yet updated with new IP addresses of Plesk servers.

8. Finalize Transfer

Once the data transfer is completed, you should finalize the transfer process. During finalization, the plesk_to_ppa_migrate.pl tool will perform the following operations: • New Odin Business Automation Standard subscriptions will be created and associated with the ones transferred to Plesk Automation nodes. • Formerly used Odin Business Automation Standard subscriptions will be put on hold. • DNS zone files on the Odin Business Automation Standard DNS server will be updated with the IP addresses of Plesk Automation service nodes.

Transfer Scenario for PBAS

. To finalize the transfer: 1. Log in to the Odin Business Automation Standard server over SSH as root. 2. Run finalization with the following command: plesk_to_ppa_migrate.pl -finalize-migration -data-file migration_data.xml 3. Ensure that DNS propagation has ended. This means that you should wait for the period of time which is equal to the sum of TTL and SOA refresh interval. 4. Verify that the data were transferred successfully by issuing the following command: panel-migrator test-all config.ini 5. Copy the content that could be added by your customers during the transfer process from your source servers. To do this, log in to the server with the panel-migrator tool as root and run the following commands: • To copy mail content: panel-migrator copy-mail-content config.ini • To copy website content: panel-migrator copy-content config.ini • To copy databases: panel-migrator copy-db-content config.ini 6. Check that the transfer completed successfully by issuing the command panel-migrator test-all config.ini --skip-dns-forwarding- test. The test-all command checks the following: • Websites. It checks the main page and links to the same website (or relative links) located on the main page. • DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains

wise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution.

Transfer Scenario for PBAS

7. Remove the rsync software from Windows service nodes.

Transfer Scenario for Helm 3

C H A P T E R 8

Transfer Scenario for Helm 3

The transfer of hosting data requires you to have a working Plesk Automation environment with service nodes that can be used as a replacement for your existing servers: All hosting data are transferred to particular Plesk Automation nodes.

Mapping of Business Objects In Helm In Plesk Automation Admin Provider Reseller Reseller Package Subscription Domain Domain User Customer Hosting plan Service plan

Migration of the following hosting features and settings is supported: • Resellers • Reseller account details • Extra features • DNS settings • Users • User account details • Domains • Website content • Forwarding domains and domains without hosting • Mail • POP3 accounts • Mail content • Forwarders • Catch-all • Multi-recipient addresses • FTP accounts • Databases • Users

Transfer Scenario for Helm 3

• Content • MIME types • ODBC DSNs • DNS records • Subdomains • Domain aliases • Web settings • Virtual directories • Web scheduler tasks Known Limitations for Transfers from Helm Migration of the following items is not supported: • Secure folders • ColdFusion • FrontPage • Statistics • Domain registrars Custom error pages The following items are not migrated for forwarding domains: • Scripting settings (ASP.NET, PHP, and so on) • Website settings (app pool isolation, and so on) • Secure folders • Virtual directories • Subdomains

MIME types Limitations: • FTP accounts and databases from all package domains are migrated to subscriptions. • PHP 4 and PHP 5 limits are merged. • ASP.NET 1 and ASP.NET 2 limits are merged. • Some Helm limits are turned to permissions. • Plesk Automation does not support MS Access databases, therefore such databases will not appear in the databases list after migration. However, database files (*.mdb) will be migrated as part of private site content. You can use them directly from your applications or create ODBC DSNs for them. If you already have ODBC DSN records for the databases in Helm, they will be migrated to Plesk Automation. • Virtual directories of the "URL redirect" type are not migrated. • All domains in a Plesk subscription share one IP address. Known issues:

Transfer Scenario for Helm 3

• Plesk Automation does not support in scheduled tasks. • Virtual directories of the "URL redirect" type are not migrated. Performing the Data Transfer The process of transferring hosting data consists of the following steps: 1 Prepare source servers for migration. 2 Configure the panel-migrator tool. The tool is configured with the help of a configuration file. It defines various

credentials, and so on. 3 Import resellers to Plesk Automation. The panel-migrator tool does not fully automate the transfer of resellers to Plesk Automation: It automatically transfers reseller accounts, however, you need to

customers and domains. 4 Import plans (templates) to Plesk Automation. Service plans are not automatically registered in Plesk Automation during transfer. Therefore, you should either create your plans in Plesk Automation manually or use the panel-migrator tool for this purpose. 5 Create a transfer list. A transfer list is a file that specifies what objects (plans, reseller accounts, and subscriptions) should be transferred to Plesk Automation from source servers. 6 Associate subscriptions and plans. Associate subscriptions with certain imported plans. 7 Check for possible conflicts and limitations. Before moving to Plesk Automation, we strongly recommend that you perform a preliminary check for possible transfer conflicts. Based on the check results, the tool generates a report with all detected conflicts. 8 Run the transfer process. Once all preparation steps are completed, you can run the transfer. In this step, the tool transfers all subscriptions from your existing servers to registered Plesk Automation service nodes. 9 Redirect DNS to the new servers. After DNS services are relocated to Plesk Automation, you need to update all your NS

DNS server. 10 Verify that the data were transferred correctly. The operability of Web, mail, DNS, and FTP services for each transferred domain is checked. 11 Finalize the synchronization of content.

Transfer Scenario for Helm 3

Ensure that any changes to the content made by your customers during the transfer process are transferred as well. In this chapter:

1. Prepare Source Servers ...... 74 2. Configure the Tool ...... 75 3. Import Resellers to Plesk Automation ...... 76 4. Import Plans to Plesk Automation ...... 77 5. Generate a Transfer List ...... 77 6. Associate Subscriptions from Helm with Plans in Plesk Automation ...... 79 7. Check for Possible Conflicts ...... 80 8. Run Transfer ...... 81 9. Redirect DNS to the New Servers ...... 81 10. Verify the Transferred Data ...... 82 11. Finalize the Synchronization of Content ...... 82

1. Prepare Source Servers

usually configured to accept only local connections. You need to switch on remote connections on the instance of SQL Server 2005/2008 and switch on the SQL Server Browser service. To do this, use the SQL Server 2005/2008 Surface Area Configuration tool. The Surface Area Configuration tool is installed during the installation of SQL Server 2005/2008.

. To switch on remote connections for the Helm database: 1. Go to Start > Programs > Microsoft SQL Server 2005/2008 > Configuration Tools > SQL Server Surface Area Configuration. 2. Click Surface Area Configuration for Services and Connections. 3. Expand Database Engine, click Remote Connections, click Local and remote connections, click the appropriate protocol that should be enabled for your environment, and then click Apply. 4. Click OK when you receive the following message: "Changes to Connection Settings will not take effect until you restart the Database Engine service". 5. In Surface Area Configuration for Services and Connections, expand Database Engine, click Service, click Stop, wait until the MSSQLSERVER service stops, and then click Start to restart the MSSQLSERVER service.

Transfer Scenario for Helm 3

2. Configure the Tool

As the panel-migrator tool communicates with a number of servers, you should provide it with server IP addresses, administr configured with the help of the config.ini file, which is not created by default. For your convenience, the directory /opt/panel-migrator/conf/samples/ contains a template file called helm-3-to-ppa.ini that you can use as a basis for creating your own config.ini.

. To configure the tool: 1. Create a config.ini file based on the template. For example: cp /opt/panel-migrator/conf/samples/helm-3-to-ppa.ini config.ini 2. Edit the config.ini file to configure the tool. The description of file sections is provided below. The Structure of the Configuration File The config.ini file consists of several sections, which contain information about your target management node and various aspects of data transfer. The names of the sections [GLOBAL], [ppa], and [helm3] are predefined by the tool and you should not change them. Each section has a number of settings of two types: • Mandatory. You must define these settings. • Optional. You do not have to define these settings. The value that will be assumed when you do not define a setting is specified in the configuration template file, in the

its default value: if you want to change a value, uncomment that line and change the value in it.

The meaning of each setting is described in the configuration template file.

An Example of the Configuration File Let us take a look at the example of the config.ini file. In this example, we are going to transfer data from a single Helm server. The Plesk Automation installation in this example has webmail on a separate service node with IP address 192.168.0.1. [GLOBAL] source-type: helm3 source-servers: helm3, helm3-remote-server target-type: ppa

[ppa] ip: 192.168.0.20 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: password webmail-ip: 192.168.0.21

Transfer Scenario for Helm 3

[helm3] ip: 192.168.0.200 windows-username: Administrator windows-password: password copy-mail-content: messages db-user: sa db-password: password

[helm3-remote-server] ip: 192.168.0.201 windows-username: Administrator windows-password: password

3. Import Resellers to Plesk Automation

The panel-migrator tool has the following limitation: It allows you to transfer reseller accounts to Plesk Automation, but it does not automatically transfer reseller plans. Therefore, to seamlessly import existing reseller accounts from your servers, you should first manually create reseller plans in panel that correspond to the ones on your servers, and subscribe the resellers to these plans after the transfer. See the detailed instructions below.

. To import resellers to Plesk Automation: 1. Create reseller plans (templates) in Plesk Automation that correspond to reseller plans (templates) in your hosting solution. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates. 2. Generate a transfer list file called migration-list, by issuing the following command: # panel-migrator generate-migration-list config.ini 3. Edit the transfer list file migration-list (located in your session directory) to exclude reseller accounts that you do not want to transfer to Plesk Automation. To exclude a certain account from transfer, comment out or delete the corresponding line from the list. The lines look like Reseller: . 4. Perform the transfer of reseller accounts to the Plesk Automation management node by running the command: # panel-migrator import-resellers config.ini All reseller accounts that are present in your hosting solution will be transferred to Plesk Automation .

Transfer Scenario for Helm 3

5. Subscribe the transferred resellers to the newly created reseller plans. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates. 6. Configure hosting service templates on behalf of the reseller. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

4. Import Plans to Plesk Automation

The panel-migrator tool does not perform the transfer of service plans to Plesk Automation. Therefore, you should do this manually.

. To import plans to Plesk Automation: 1. Create service plans (templates) in Plesk Automation that correspond to hosting plans on your Helm servers. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates. 2. Configure subscription provisioning by assigning proper provisioning attributes to the templates. The provisioning attribute is a tag that links a plan and nodes on which the services included into the plan should be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Customers and Resellers.

5. Generate a Transfer List

A transfer list defines the list of objects (accounts and subscriptions) that should be transferred from the source Helm server to Plesk Automation. The transfer list file can be automatically generated by the panel-migrator tool. By default, after the generation, it contains all objects that are present on the source Helm server (see the example below).

. To generate the transfer list, run the following command: # panel-migrator generate-migration-list config.ini

After you run the command, the tool will create the migration-list file in the session directory defined in your config.ini file. You will need this file during the subsequent transfer steps.

Transfer List Structure After generation, the list contains all subscriptions that are present on source servers. In addition, the file contains plans, reseller and customer accounts to which the subscriptions are related.

Transfer Scenario for Helm 3

The list comprises a number of sections - one section per each reseller. The sections are marked with the line Reseller: Reseller’s name.

Each section consists of a number of subsections - one subsection per each service plan of the reseller. These subsections are marked with the line Plan: Plan name. Note that plan names cannot contain the # symbol.

Each plan subsection contains a list of customer accounts subscribed to that plan, and the domain names of th marked with the line Customer: customer’s name.

By default, customer accounts are listed below the corresponding reseller accounts. You can move the customer account to other resellers, including the administrator, using the transfer list.

If a customer does not have any domains, or has a domain with disabled web and FTP services, the migration tool creates a subscription with a name like ".package".

Each subscription must be assi subscriptions are assigned to a special customer account called ppa- subscriptions are assigned to a special customer account called ppa- . If such customer accounts are already present in Plesk Automation, the migration tool will transfer subscriptions without checking whether the subscriptions belong to those accounts. subscriptions) to any customers using the transfer list.

Note: You can assign subscriptions to non-existent customer accounts. In such a case, the migration tool will create the corresponding customer accounts in Plesk Automation (without any personal information prefilled) and will transfer subscriptions to them.

An Example of the List # The list of subscriptions # These subscriptions must be moved to a section of a certain service plan. Otherwise, the tool will not start transfer. # Administrator’s service plans and subscriptions Plan: Bronze hosting Plan: Silver hosting # Resellers Reseller: johns_123 # The subscriptions that are not assigned to a certain service plan. They must be moved to a section of a certain service plan of this reseller. Customer: ppa-johns_123 notassigned1.tld # Reseller’s service plans Plan: Unlimited Customer: ppa-johns_123 # The subscriptions of this reseller reseller-subscription1.tld reseller-subscription2.tld # The customers of this reseller subscribed to this plan Customer: johndoe # The subscriptions of this customer reseller1-customer1-subscription1.tld

Transfer Scenario for Helm 3

Reseller: toms # Reseller’s service plans Plan: Reseller Plan 2 # The customers of this reseller subscribed to this plan Customer: katie_23 # The subscriptions of this customer reseller2-customer1-subscription1.tld

6. Associate Subscriptions from Helm with Plans in Plesk Automation

In this step, you should associate the subscriptions that are present on your Helm server with the service plans you have created in Plesk Automation in the previous step. This is done by adjusting the transfer list file.

To associate subscriptions with service plans, edit the transfer list file.

The association is performed by placing the corresponding subscription line under a certain plan section, or placing a line describing a plan (Plan: ) above the lines describing subscriptions.

Note that the tool will not start the transfer until there are subscriptions that are not associated with plans. If you do not want to associate certain subscriptions with plans, comment out the corresponding lines or delete them.

Note: All plans from the list must be present in Plesk Automation. Otherwise, the tool will be unable to complete the migration.

For example, to associate a custom subscription called admins-subscription.tld with the Gold hosting plan, move the corresponding line under the plan section.

Before After # Custom subscriptions Plan: Gold hosting Customer: ppa-admin Customer: ppa-admin admins-subscription.tld admins-subscription.tld

Plan: Gold hosting Customer: bob Customer: bob customer1-subscription1.tld customer1-subscription1.tld Plan: Silver hosting Plan: Silver hosting

Transfer Scenario for Helm 3

7. Check for Possible Conflicts

Before performing the transfer, we strongly recommend that you perform a preliminary check for possible conflicts that can cause issues during the data transfer process or even make switching to Plesk Automation impossible. Such a check is performed by the panel-migrator tool and includes a number of checks concerning various aspects of hosting require your attention:

• Check for customer / reseller accounts with the same e-mails and contact names. There are three account parameters that the tool uses to identify an account: username, e-mail, and contact name. Let's take a closer look at how the system behaves when these parameters match for different accounts: • Usernames, e-mails, and contact names are the same. The system considers such accounts to represent the same person or company: Only one of them will be transferred to Plesk Automation. The priority is given to the account from the panel that is listed first in the sources string of config.ini. Accounts from other panels are ignored: Their subscriptions are also registered in Plesk Automation, but these subscriptions become associated with the customer / reseller account which had the priority during the transfer. If you want each of such accounts to be transferred to Plesk Automation, specify other e-mail and username for conflicting accounts. • Usernames and contact names are the same, e-mails are different. The move to Plesk Automation will be impossible until you specify another username for conflicting accounts. • Usernames and e-mails are the same, contact names are different. The move to Plesk Automation will be impossible until you specify the same contact names (if these are the same persons) for conflicting accounts. • E-mails are the same, usernames and contact names are different. The move to Plesk Automation will be impossible until you specify other e-mails for conflicting accounts.

. To perform the preliminary check: panel-migrator check config.ini

Based on the check results, the tool generates a report. The report contains messages of two types: • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when a certain issue blocks the transfer.

You must resolve all issues marked as ERROR before performing the transfer.

Transfer Scenario for Helm 3

8. Run Transfer

Once all preparation steps are done, you can run the transfer process.

. To run the transfer: 1. Issue the following command: panel-migrator transfer-accounts config.ini The tool performs the transfer of your hosting data to certain service nodes. 2. Test the transferred domains: panel-migrator test-all config.ini—skip-dns-forwarding-test The test-all command helps you verify that the transferred domains are operating properly. However, it does not check whether mail can be sent and received. You should manually check that. 3. If any issues were found by the tool, resolve them and re-run the command in step 2 to verify they are resolved. The tool does not require you to resolve all of these issues. You can resolve only the important ones. Note that this command allows specifying a different transfer list, which can be useful when a transfer has failed for many domains, and you do not want to test these domains. In such a case, specify the latest list with successfully transferred domains, for example: panel-migrator test-all config.ini—skip-dns-forwarding-test— migration-list-file migration-session/successful- subscriptions.1385955582.55

9. Redirect DNS to the New Servers

As the DNS service is relocated to the Plesk Automation DNS server, you should update

Automation DNS servers.

Also, make sure that DNS propagation has ended. This means that you should wait for the period of time which is equal to the sum of TTL and SOA refresh interval.

Transfer Scenario for Helm 3

10. Verify the Transferred Data

. To check the operability of Web, mail, DNS, and FTP services for each transferred domain: panel-migrator test-all config.ini --skip-dns-forwarding-test

After you run the command, the tool will report the results of the check.

The test-all command helps you verify that the transferred domains are operating properly. However, it does not check whether mail can be sent and received. You should manually check that.

If all domains were transferred correctly, the report will show "All domains were transferred correctly." Otherwise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution.

After resolving all issues, we recommend that you restart the check.

11. Finalize the Synchronization of Content

. To complete the synchronization of content between the source and the destination servers, do the following: 1. Copy the content that could be added by your customers during the transfer process from your source servers. • To copy mail content: panel-migrator copy-mail-content config.ini • To copy website content: panel-migrator copy-content config.ini • To copy databases: panel-migrator copy-db-content config.ini In this step, the tool will update the content of the transferred subscriptions with any changes that were made during the transfer. Note that the tool makes a full copy of databases (as opposed to mail and web content where only new content is copied), which may require significant time. 2. Check that the transfer completed successfully by issuing the command panel-migrator test-all config.ini --skip-dns-forwarding- test. The test-all command checks the following: • Websites. It checks the main page and links to the same website (or relative links) located on the main page.

Transfer Scenario for Helm 3

• DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains issues. For each issue that might need resolving, the tool will suggest a solution. After resolving all issues, we recommend that you restart the check.

Transfer Scenario for Helm 4.2.2

C H A P T E R 9

Transfer Scenario for Helm 4.2.2

The transfer of hosting data requires you to have a working Plesk Automation environment with service nodes that can be used as a replacement for your existing servers: All hosting data are transferred to particular Plesk Automation nodes.

Mapping of Business Objects In Helm In Plesk Automation Admin Provider

Customer with Account Role "Reseller" Reseller Domain Subscription Customer with Account Role "User" Customer Account Login User

Plan Service Template

Migration of the following hosting features and settings is supported:

• Database Service: • Microsoft SQL Server • Microsoft SQL Server 2005 • Microsoft SQL Server 2008 • MySQL 4 • MySQL 5 • FTP Service • Microsoft FTP • Mail Service • SmarterMail • : • Microsoft IIS 5/6 • Microsoft IIS 7 • Domain Aliases • Sub Domains • Default Docs • Scripting Support

Transfer Scenario for Helm 4.2.2

• Virtual Directories • MIME Types • Custom Error Pages • Email Accounts (POP3) • Mail Aliases. Note that unlike in Plesk Automation, aliases in Helm may refer to any email address. Thus, they are migrated as mail forwarders. Known Limitations for Transfers from Helm Migration of the following items is not supported: • DNS records are not migrated from Helm. Instead, Plesk Automation creates new zone definitions based on its own DNS zone template. You can pre-configure the DNS template from Plesk Automation administration panel. • ASP.NET 1.1 is not supported. Sites using ASP.NET 1.1 will have to work with ASP.NET 2.0 after transfer. Please consider this when checking the transferred sites. • Parked domains. Plesk Automation does not support parked domain. Thus, parked domains are migrated to domains without . After migration, database users will have the database administrator privileges. The privileges of database users that were granted before migration are not restored.

Known Problems • Domains with suspended web service are migrated as suspended domains. • FTP user permissions are not restored. Performing the Data Transfer The process of transferring hosting data consists of the following steps: 1 Prepare source servers. (on page 86) Prepare source servers for migration. 2 Configure the panel-migrator tool. (on page 87) The tool is configured with the help of a configuration file. It defines various communication parameters such as server IP addresses, the administrator's credentials, and so on. 3 Import resellers to Plesk Automation. (on page 88) The panel-migrator tool does not fully automate the transfer of resellers to Plesk Automation: It automatically transfers reseller accounts while you need to manually configure these accounts and reseller plans before transferring resellers' customers and domains. 4 Import plans (templates) to Plesk Automation. (on page 89) Service plans are not automatically registered in Plesk Automation during transfer. Therefore, you should either create your plans in Plesk Automation manually or use the panel-migrator tool for this purpose. 5 Create a transfer list. (on page 90) A transfer list is a file that specifies what objects (plans, reseller accounts, and subscriptions) should be transferred to Plesk Automation from source servers.

Transfer Scenario for Helm 4.2.2

6 Associate subscriptions and plans. (on page 91) Associate subscriptions with certain imported plans. 7 Check for possible conflicts and limitations. (on page 92) Before moving to Plesk Automation, we strongly recommend that you perform a preliminary check for possible transfer conflicts. Based on the check results, the tool generates a report with all detected conflicts. 8 Run the transfer process. (on page 93) Once all preparation steps are completed, you can run the transfer. In this step, the tool transfers all subscriptions from your existing servers to registered Plesk Automation service nodes. 9 Redirect DNS to the new servers. (on page 94) After DNS services are relocated to Plesk Automation, you need to update all your NS records on the registrar's DNS servers with the IP address of your Plesk Automation DNS server. 10 Verify that the data were transferred correctly. (on page 94) The operability of web, mail, DNS, and FTP services for each transferred domain is checked. 11 Finalize the synchronization of content. (on page 95) Ensure that any changes to the content made by your customers during the transfer process are transferred as well. In this chapter:

1. Prepare Source Servers ...... 86 2. Configure the Tool ...... 87 3. Import Resellers to Plesk Automation ...... 88 4. Import Plans to Plesk Automation ...... 89 5. Generate a Transfer List ...... 90 6. Associate Subscriptions from Helm with Plans in Plesk Automation ...... 91 7. Check for Possible Conflicts ...... 92 8. Run Transfer ...... 93 9. Redirect DNS to the New Servers ...... 94 10. Verify the Transferred Data ...... 94 11. Finalize the Synchronization of Content ...... 95

1. Prepare Source Servers

The Helm Control Panel Server's database is usually configured to accept only local connections. You need to switch on remote connections on the instance of SQL Server 2005/2008 and to switch on the SQL Server Browser service. To do this, use the SQL Server 2005/2008 Surface Area Configuration tool. The Surface Area Configuration tool is installed during the installation of SQL Server 2005/2008.

Transfer Scenario for Helm 4.2.2

. To switch on remote connections for the Helm database: 1. Go to Start > Programs > Microsoft SQL Server 2005/2008 > Configuration Tools > SQL Server Surface Area Configuration. 2. Click Surface Area Configuration for Services and Connections. 3. Expand Database Engine, click Remote Connections, click Local and remote connections, click the appropriate protocol that should be enabled for your environment, and then click Apply. 4. Click OK when you receive the following message: "Changes to Connection Settings will not take effect until you restart the Database Engine service". 5. In Surface Area Configuration for Services and Connections, expand Database Engine, click Service, click Stop, wait until the MSSQLSERVER service stops, and then click Start to restart the MSSQLSERVER service.

2. Configure the Tool

As the panel-migrator tool communicates with a number of servers, you should provide it with server IP addresses, administrators' credentials, and other information. The tool is configured with the help of the config.ini file, which is not created by default. For your convenience, the directory /opt/panel-migrator/conf/samples/ contains a template file called helm-to-ppa.ini that you can use as a basis for creating your own config.ini.

. To configure the tool: 1. Create a config.ini file based on the template. For example: cp /opt/panel-migrator/conf/samples/helm-to-ppa.ini config.ini 2. Edit the config.ini file to configure the tool. The description of file sections is provided below. The Structure of the Configuration File The config.ini file consists of several sections, which contain information about your Plesk Automation management node and various aspects of data transfer. The names of the sections [GLOBAL] and [ppa] are predefined by the tool and you should not change them. The configuration file should also contain a [helm] section with information about your Helm server.

Each section has a number of settings of two types: • Mandatory. You must define these settings.

Transfer Scenario for Helm 4.2.2

• Optional. You do not have to define these settings. The value that will be assumed when you do not define a setting is specified in the configuration template file, in the setting's description. That description also has a commented line with the setting and its default value: if you want to change a value, uncomment that line and change the value in it. The meaning of each setting is described in the configuration template file.

An Example of the Configuration File Let us take a look at the example of the config.ini file. In this example, we are going to transfer data from a single Helm server. The Plesk Automation installation in this example has webmail on a separate service node with IP address 192.168.0.1. [GLOBAL] source-type: helm target-type: ppa

[ppa] ip: 192.168.0.20 panel-username: admin panel-password: setup ssh-username: root ssh-auth-type: password ssh-password: 123qwe webmail-ip: 192.168.0.21

[helm] ip: 192.168.0.200 windows-username: Administrator windows-password: password db-instance-name: HELM db-port: 1433 db-name: Helm4DB db-user: sa db-password: password

3. Import Resellers to Plesk Automation

The panel-migrator tool has the following limitation: It allows you to transfer reseller accounts to Plesk Automation but it does not automatically transfer reseller plans. Therefore, to seamlessly import existing reseller accounts from your servers, you should first manually create reseller plans in Plesk Automation that correspond to the ones on your servers, and subscribe the resellers to these plans after the transfer. See the detailed instructions below.

Transfer Scenario for Helm 4.2.2

. To import resellers to Plesk Automation: 1 Create reseller plans (templates) in Plesk Automation that correspond to reseller plans (templates) in your hosting solution. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Reseller Service Templates. 2 Generate a transfer list file called migration-list, by issuing the following command: # panel-migrator generate-migration-list config.ini 3 Edit the transfer list file migration-list (located in your session directory) to exclude reseller accounts that you do not want to transfer to Plesk Automation. To exclude a certain account from transfer, comment out or delete the corresponding line from the list. The lines look like Reseller: . 4 Perform the transfer of reseller accounts to the Plesk Automation management node by running the command: # panel-migrator import-resellers config.ini All resellers that exist in your hosting solution will be transferred to Plesk Automation. 5 Subscribe the transferred resellers to the newly created reseller plans. Learn how to do this in the Plesk Automation: Operations Guide, section Subscribing Resellers to Templates. 6 Configure hosting service templates on behalf of the reseller. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates.

4. Import Plans to Plesk Automation

The panel-migrator tool does not perform the transfer of service plans to Plesk Automation. Therefore, you should do this manually.

. To import plans to Plesk Automation: 1 Create service plans (templates) in Plesk Automation that correspond to hosting plans on your Helm servers. Learn how to do this in the Plesk Automation: Operations Guide, section Creating Shared Hosting Templates. 2 Configure subscription provisioning by assigning proper provisioning attributes to the templates. The provisioning attribute is a tag that links a plan and nodes on which the services included into the plan should be set up. Learn more about attributes in the Plesk Automation: Operations Guide, chapter Customers and Resellers.

Transfer Scenario for Helm 4.2.2

5. Generate a Transfer List

A transfer list defines the list of objects (accounts and subscriptions) that should be transferred from the source Helm server to Plesk Automation. The transfer list file can be automatically generated by the panel-migrator tool. By default, after the generation, it contains all objects that are present on source Helm server (see the example below).

. To generate the transfer list, run the following command: # panel-migrator generate-migration-list config.ini After you run the command, the tool will create the migration-list file in the session directory defined in your config.ini. You will need this file during further transfer steps.

Transfer List Structure After generation, the list contains all subscriptions that exist on source servers. In addition, the file contains plans, reseller and customer accounts to which the subscriptions are related.

The list comprises a number of sections - one section per each reseller. The sections are marked with a line Reseller: Reseller's name.

Each section consists of a number of subsections - one subsection per each service plan of the reseller. These subsections are marked with a line Plan: Plan name. Note that plan names cannot contain the # symbol.

Each plan subsection contains a list of customer accounts subscribed to that plan, and the domain names of the customers' subscriptions. Customer account names are marked with a line Customer: customer's name.

By default, customer accounts are listed below the corresponding reseller accounts. You can move the customer account to other resellers, including the administrator, using the transfer list.

Each subscription must be assigned to a customer. By default, administrator's subscriptions are assigned to a special customer called ppa-admin. Reseller's subscriptions are assigned to a special customer called ppa-. If such customer accounts already exist in Plesk Automation, the migration tool will transfer subscriptions without checking whether the subscriptions belong to those accounts.

You can reassign all subscriptions (including the administrator's and resellers' subscriptions) to any customers using the transfer list.

Note: You can assign subscriptions to non-existent customers. In such a case, the migration tool will create the corresponding customer accounts in Plesk Automation (without any personal information prefilled) and will transfer subscriptions to them.

An Example of the List # The list of subscriptions

Transfer Scenario for Helm 4.2.2

# These subscriptions must be moved to a section of a certain service plan. Otherwise, the tool will not start transfer. Customer: ppa-admin admins-subscription1.tld Customer: bobs customer1-subscription1.tld customer1-subscription2.tld

# Administrator's service plans and subscriptions Plan: Gold hosting Customer: ppa-admin admins-subscription2.tld Customer: jacks customer2-subscription1.tld customer2-subscription2.tld

Plan: Bronze hosting Plan: Silver hosting # Resellers Reseller: johns_123 # The subscriptions that are not assigned to a certain service plan. They must be moved to a section of a certain service plan of this reseller. Customer: ppa-johns_123 notassigned1.tld # Reseller's service plans Plan: Unlimited Customer: ppa-johns_123 # The subscriptions of this reseller reseller-subscription1.tld reseller-subscription2.tld # The customers of this reseller subscribed to this plan Customer: johndoe # The subscriptions of this customer reseller1-customer1-subscription1.tld

Reseller: toms # Reseller's service plans Plan: Reseller Plan 2 # The customers of this reseller subscribed to this plan Customer: katie_23 # The subscriptions of this customer reseller2-customer1-subscription1.tld

6. Associate Subscriptions from Helm with Plans in Plesk Automation

In this step, you should associate the subscriptions that are present on your Helm server with the service plans you have created in Plesk Automation in the previous step. This is done by adjusting the transfer list file.

Transfer Scenario for Helm 4.2.2

. To associate subscriptions with service plans, edit the transfer file. The association is performed by placing the corresponding subscription line under a certain plan section, or placing a line describing a plan (Plan: ) above the lines describing subscriptions. Note that the tool will not start the transfer until there are subscriptions that are not associated with plans. If you do not want to associate certain subscriptions with plans, comment out the corresponding lines or delete them.

Note: All plans from the list must exist in Plesk Automation. Otherwise, the tool will be unable to complete the migration.

For example, to associate the custom subscription admins-subscription.tld with the Gold hosting plan, move the corresponding line under the plan section.

Before After # Custom subscriptions Plan: Gold hosting Customer: ppa-admin Customer: ppa-admin admins-subscription.tld admins-subscription.tld

Plan: Gold hosting Customer: bob Customer: bob customer1-subscription1.tld customer1-subscription1.tld Plan: Silver hosting Plan: Silver hosting

7. Check for Possible Conflicts

Before performing the transfer, we strongly recommend that you perform a preliminary check for possible conflicts that can cause issues during the data transfer process or even make switching to Plesk Automation impossible. Such a check is performed by the panel-migrator tool and includes a number of checks concerning various aspects of hosting panels' functionality. Below we describe the most important checks that may require your attention: • Check for customer / reseller accounts with the same e-mails and contact names. There are three account parameters that the tool uses to identify an account: username, e-mail, and contact name. Let us look closer at the system behavior when these parameters match for different accounts:

Transfer Scenario for Helm 4.2.2

• Usernames, e-mails, and contact names are the same. The system considers such accounts to represent the same person or company: Only one of them will be transferred to Plesk Automation. The priority is given to the account from the panel that is listed first in the sources string of config.ini. Accounts from other panels are ignored: Their subscriptions are also registered in Plesk Automation, but these subscriptions become associated with the customer / reseller account which had the priority during the transfer. If you want each of such accounts to be transferred to Plesk Automation, specify other e-mail and username for conflicting accounts. • Usernames and contact names are the same, e-mails are different. The move to Plesk Automation will be impossible until you specify another username for conflicting accounts. • Usernames and e-mails are the same, contact names are different. The move to Plesk Automation will be impossible until you specify the same contact names (if these are the same persons) for conflicting accounts. • E-mails are the same, usernames and contact names are different. The move to Plesk Automation will be impossible until you specify other e-mails for conflicting accounts.

. To perform the preliminary check: $ panel-migrator check config.ini Based on the check results, the tool generates a report. The report contains messages of two types: • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when a certain issue blocks the transfer.

You must resolve all issues marked as ERROR before performing the transfer.

8. Run Transfer

Once all preparation steps are done, you can run the transfer process.

. To run the transfer: 1 Issue the following command: panel-migrator transfer-accounts config.ini The tool performs the transfer of your hosting data to certain service nodes. 2 Test the transferred domains: panel-migrator test-all config.ini --skip-dns-forwarding-test The test-all command helps you verify that the transferred domains are operating properly. However, it does not check whether mail can be sent and received. You should manually check that.

Transfer Scenario for Helm 4.2.2

3 If any issues were found by the tool, resolve them and re-run the command in step 2 to verify they are resolved. The tool does not require you to resolve all of these issues. You can resolve only the important ones. Note that this command allows specifying a different transfer list, which can be useful when a transfer has failed for many domains, and you do not want to test these domains. In such a case, specify the latest list with successfully transferred domains, for example: panel-migrator test-all config.ini --skip-dns-forwarding-test --migration-list-file migration-session/successful-subscriptions.1385955582.55

9. Redirect DNS to the New Servers

As the DNS service is relocated to the Plesk Automation DNS server, you should update all your NS records on the registrar's DNS server with the IP addresses of your Plesk Automation DNS servers.

Also, make sure that DNS propagation has ended. This means that you should wait for the period of time which is equal to the sum of TTL and SOA refresh interval.

10. Verify the Transferred Data

. To check the operability of web, mail, DNS, and FTP services for each transferred domain: # panel-migrator test-all config.ini After you run the command, the tool will report the results of the check.

The test-all command helps you verify that the transferred domains are operating properly. However, it does not check whether mail can be sent and received. You should manually check that.

If all domains were transferred correctly, the report will show "All domains were transferred correctly." Otherwise, it will show all detected issues and a short summary on the issues. For each issue that might need resolving, the tool will suggest a solution.

After resolving all issues, we recommend that you restart the check.

Transfer Scenario for Helm 4.2.2

11. Finalize the Synchronization of Content

. To complete the synchronization of content between the source and the destination servers, do the following: 1. Copy the content that could be added by your customers during the transfer process from your source servers. • To copy mail content: panel-migrator copy-mail-content config.ini • To copy website content: panel-migrator copy-content config.ini • To copy databases: panel-migrator copy-db-content config.ini In this step, the tool will update the content of the transferred subscriptions with any changes that were made during the transfer. Note that the tool makes a full copy of databases (as opposed to mail and web content where only new content is copied) which may require significant time. 2. Check that the transfer completed successfully by issuing the command panel-migrator test-all config.ini --skip-dns-forwarding- test. The test-all command checks the following: • Websites. It checks the main page and links to the same website (or relative links) located on the main page. • DNS. It checks that all the main DNS records are present in the DNS zone of the domain and point to the correct server. • Mail. For each migrated domain, it checks all mail accounts and the number of transferred email messages. • User accounts. On behalf of system users, it tries to log in via FTP to each subscription at the destination server. • Databases. It checks whether all databases are present on the destination server. After you run the command, the tool will report the results of the check. If all domains were transferred correctly, the report

issues. For each issue that might need resolving, the tool will suggest a solution. 3. Remove the rsync software from the source Windows servers.

Troubleshooting

C H A P T E R 10

Troubleshooting

The panel-migrator tool records all information about performed operations to the info.log file located in the current directory where you run the tool. The log file contains messages of three types: • INFO. Typically, these messages indicate that the tool started performing a certain action. • WARNING. These messages warn you about the potential issues that may affect your further work in Plesk Automation but are not critical for the transfer process. • ERROR. These messages appear when the tool is unable to finish the transfer. In case of ERROR messages, you can also check the debug.log file located in the same directory as the one containing the info.log. This file can provide you with additional information about a certain error. You can use the information from the log file to resolve the issues that occurred during the data transfer.

Next in this chapter you can find a list of known issues and limitations of current implementations of the transfer process.

In this chapter:

Known Issues and Limitations ...... 96

Known Issues and Limitations

Issue/Limitation Notes

DNS forwarding does not work for subdomains You must set up DNS forwarding for these transferred from Plesk 9 and earlier. subdomains manually after the transfer.

Plesk Automation usernames are case-sensitive You can make usernames in Plesk Automation case- as opposed to the usernames on Plesk for insensitive by switching off the Case-sensitive Windows. This can confuse users after their usernames option in System > Settings > System account is transferred to Plesk Automation. Properties. For example, a user with the username "John" got used to logging in to Plesk using the "john" username. He will fail to log in to his account in Plesk Automation after the transfer.

Troubleshooting

Migration of sites created with SiteBuilder from The content of sites created with Web Presence Plesk 8 and Plesk 9 is not fully supported. Builder under Plesk 8 and Plesk 9 will be transferred to Plesk Automation but customers will be unable to work with these sites using Presence Builder. There will be no Edit the site in Presence Builder button in the Hosting Panel.

The migration tool does not fully support Sites that are hosted on standalone Web Presence migration of websites from Odin Business Builder nodes and are registered in Odin Business Automation Standard. Automation Standard are not migrated.

Mailman is not supported. The tool stops if it detects the usage of mailing lists on any domain. You can continue with migration without mailing lists using the --omit-maillists option. Atmail webmail is not supported. After migrating to Plesk Automation 11.5, the links to webmail in the Hosting Panel will open the IMP webmail.

Restricted subscription access for auxiliary Auxiliary users who are restricted to some users is not supported. subscriptions will be disabled after migration to prevent unauthorized access to other subscriptions. Auxiliary users are not transferred from Odin Business Automation Standard.

Customers must have unique e-mail addresses. Panel allows several customers to have the same e- mail address, but this is prohibited by Plesk Automation. Ensure that e-mail addresses of your customers and resellers are unique. Tomcat applications are not transferred. Auxiliary users and user roles owned by the Panel administrator are not transferred.

Reseller accounts are always active after the For example, if a reseller was suspended on a source transfer. Panel, the corresponding reseller on a target panel is active after the transfer.

If there is no password specified for a mailbox, the content of this mailbox will not be transferred. Mail autoresponder attachments are not If your Panel's mail autoresponder is set up to respond transferred. with some files in the attachment, these files will not be transferred to Plesk Automation. Currently, Plesk Automation does not support The support for DomainKeys will be added soon. the DomainKeys spam protection system. DNS zone transfer lists are not transferred. Plesk Automation does not support the zones transfer feature of Plesk for Windows.