Postup ruční migrace MoodleMoodle manual migration steps

Tento článek popisuje postup migrace místního archivu Moodle do Azure.This article describes the steps to migrate the on-premises Moodle archive to Azure. Obsah tohoto archivu Moodle zahrnuje aplikaci Moodle, příslušnou konfiguraci a kopii databáze z místního nasazení Moodle.The contents of this Moodle archive include the Moodle application, relevant configuration, and a copy of the database from the on-premises Moodle deployment. Až úspěšně naimportujete místní zálohu do infrastruktury Azure, provedete aktualizace konfigurace pro Moodle.Once you successfully import the on-premises backup into the Azure infrastructure, you carry out configuration updates for Moodle.

Než zahájíte tento proces, ujistěte se, že jste dokončili všechny kroky v těchto článcích:Before you begin this process, make sure to complete all the steps in these articles:

Po dokončení nasazení šablony Azure Resource Manager (ARM) se přihlaste k Azure Portal a do skupiny prostředků, kterou jste vytvořili v rámci procesu nasazení, se přihlaste.After the Azure Resource Manager (ARM) template deployment finishes, sign in to the Azure portal and go to the resource group you created as part of the deployment process. Projděte si seznam nově vytvořených prostředků infrastruktury.Review the list of newly created infrastructure resources. Vytvořené prostředky vypadají podobně jako na následujícím obrázku v závislosti na šabloně ARM, kterou jste použili pro nasazení.The created resources look similar to the following image, depending on the ARM template you used for deployment.

Snímek obrazovky zobrazující prostředky infrastruktury vytvořené ve skupině prostředků migrace Moodle

Kopírování archivu MoodleCopy the Moodle archive

Prvním krokem v procesu migrace je kopírování archivu Moodle Backup z Azure Blob Storage do virtuálního počítače kontroleru pro nasazení Moodle.The first step in the migration process is to copy the Moodle backup archive from Azure Blob Storage to the controller virtual machine (VM) for the Moodle deployment. Jedná se o stejný archiv, který jste vytvořili v části vytvoření archivu.This is the same archive you created in Create an archive.

Přihlaste se k virtuálnímu počítači kontroleru.Sign in to the controller virtual machine

  1. Pomocí bezplatného Open Source emulátoru terminálu nebo nástroje sériové konzoly , jako je například výstup, se přihlaste k virtuálnímu počítači řadiče.Use a free, open-source terminal emulator or serial console tool like PuTTY to sign in to a controller VM.

  2. V části Konfigurace výstupu zadejte veřejnou IP adresu virtuálního počítače kontroleru jako název hostitele.In PuTTY Configuration, enter the public IP address of the controller VM as the Host Name.

  3. V levém navigačním panelu rozbalte položku SSH.In the left navigation, expand SSH.

    Snímek stránky Konfigurace výstupu.

  4. Vyberte ověřování a vyhledejte soubor klíče SSH, který jste použili k nasazení infrastruktury Azure se šablonou ARM.Select Auth, and find the SSH key file you used to deploy the Azure infrastructure with the ARM template.

  5. Vyberte Otevřít.Select Open. Do pole uživatelské jméno zadejte azureadmin, jak je pevně zakódována v šabloně.For user name, enter azureadmin, as it's hard-coded in the template.

    Snímek stránky konfigurace pro výstupy, kde se zobrazuje nastavení ověřování SSH

Další informace o výstupu najdete v tématu Obecné Nejčastější dotazy a otázky týkající se řešení potíží.For more information about PuTTY, see PuTTY general FAQ/troubleshooting questions.

Stažení a instalace AzCopy na virtuálním počítači kontroleruDownload and install AzCopy on the controller VM

Po přihlášení k virtuálnímu počítači kontroleru spusťte následující příkazy, abyste nainstalovali AzCopy:After you sign in to the controller VM, run the following commands to install AzCopy:

sudo -s
wget https://aka.ms/downloadazcopy-v10-linux
tar -xvf downloadazcopy-v10-linux
sudo rm /usr/bin/azcopy
sudo cp ./azcopy_linux_amd64_*/azcopy /usr/bin/

Zálohování aktuální konfiguraceBack up the current configuration

Než začnete s procesem importu, doporučujeme zálohovat výchozí nebo aktuální konfiguraci.Before you start the import process, it's recommended to back up the default or current configuration.

  1. Vytvořte záložní adresář:Create a backup directory:

    cd /home/azureadmin/
    mkdir -p backup
    mkdir -p backup/moodle
    mkdir -p backup/moodle/html
    
  2. Vytvořte zálohy moodle moodledata adresářů a:Create backups of the moodle and moodledata directories:

    mv /moodle/html/moodle /home/azureadmin/backup/moodle/html/moodle
    mv /moodle/moodledata /home/azureadmin/backup/moodle/moodledata
    

Kopírování archivu Moodle do virtuálního počítače kontroleruCopy the Moodle archive to the controller VM

  1. Spuštěním následujících příkazů Stáhněte komprimovaný storage.tar.gz záložní soubor z Azure Blob Storage do adresáře virtuálního počítače kontroleru /home/azureadmin/ :Run the following commands to download the compressed storage.tar.gz backup file from Azure Blob Storage to the controller VM /home/azureadmin/ directory:

    sudo -s
    cd /home/azureadmin/
    azcopy copy "https://<storageaccount>.blob.core.windows.net/<container>/<BlobDirectoryName><SAStoken>" "/home/azureadmin/storage.tar.gz"
    

    Nahraďte vlastní účet úložiště a hodnoty tokenu SAS.Substitute your own storage account and SAS token values. Příklad:For example:

    azcopy copy "https://onpremisesstorage.blob.core.windows.net/migration/storage.tar.gz?sv=2019-12-12&ss=" "/home/azureadmin/storage.tar.gz"

  2. Extrahujte komprimovaný soubor do adresáře.Extract the compressed file to a directory.

    cd /home/azureadmin
    tar -zxvf storage.tar.gz
    

Import souborů Moodle do AzureImport Moodle files to Azure

Po extrakci můžete najít storage adresář v části home/azureadmin .Once extracted, you can find the storage directory under home/azureadmin. Tento storage adresář obsahuje moodle moodledata adresáře, a a configuration záložní soubor databáze.This storage directory contains moodle, moodledata, and configuration directories, and a database backup file. Každý z těchto souborů a adresářů můžete zkopírovat do cílových umístění v následujících krocích:You copy each of these files and directories to the target locations in the following steps:

  1. Zkopírujte moodle adresáře a moodledata do sdíleného umístění pod /moodle .Copy the moodle and moodledata directories to a shared location under /moodle.

    cp -rf /home/azureadmin/storage/moodle /moodle/html/
    cp -rf /home/azureadmin/storage/moodledata /moodle/moodledata
    

Import databáze Moodle do AzureImport the Moodle database to Azure

Připojte se k serveru Azure Database for MySQL a naimportujte archiv místní databáze Moodle do Azure Database for MySQL.Connect to the Azure Database for MySQL server, and import the on-premises Moodle database archive to Azure Database for MySQL.

Připojení k serveru MySQLConnect to the MySQL server

Instance Azure Database for MySQL jsou chráněny bránou firewall.Azure Database for MySQL instances are protected by a firewall. Ve výchozím nastavení jsou všechna připojení k serveru a databázím v rámci serveru odmítnuty.All connections to the server and the databases inside the server are rejected by default. Před prvním připojením k Azure Database for MySQL nakonfigurujte bránu firewall tak, aby povolovala přístup pro veřejnou IP adresu virtuálního počítače řadiče nebo rozsah IP adres.Before connecting to Azure Database for MySQL for the first time, configure the firewall to allow access for the controller VM's public IP address or IP address range.

Bránu firewall můžete nakonfigurovat pomocí příkazového řádku Azure (Azure CLI) nebo Azure Portal.You can configure the firewall by using the Azure command line (Azure CLI) or the Azure portal.

Spusťte následující příkaz rozhraní příkazového řádku Azure, který nahradí vlastní hodnoty zástupných symbolů:Run the following Azure CLI command, substituting your own values for the placeholders:

az mysql server firewall-rule create --resource-group <myresourcegroup> --server <mydemoserver> --name <AllowMyIP> --start-ip-address <192.168.0.1> --end-ip-address <192.168.0.1>

Nebo v Azure Portal vyberte Azure Database for MySQL server z nasazených prostředků infrastruktury Moodle.Or, in the Azure portal, select the Azure Database for MySQL server from your deployed Moodle infrastructure resources. V levém navigačním panelu na stránce serveru vyberte zabezpečení připojení.In the server page's left navigation, select Connection security.

Tady můžete přidat povolené IP adresy a nakonfigurovat pravidla brány firewall.You can add allowed IP addresses and configure firewall rules here. Po vytvoření pravidel vyberte Uložit .Select Save after you've created the rules.

Snímek obrazovky s podoknem zabezpečení připojení pro server Azure Database for MySQL.

Nyní se můžete připojit k serveru MySQL pomocí mysql Nástroje pro příkazový řádek nebo MySQL Workbench.You can now connect to the MySQL server by using the mysql command-line tool or MySQL Workbench.

Snímek obrazovky s nastavením nového připojení aplikace MySQL Workbench

Pokud chcete získat informace o připojení, přečtěte si stránku Přehled serveru MySQL v Azure Portal.To get connection information, go to your MySQL server's Overview page in the Azure portal. Pomocí ikon kopírování vedle jednotlivých polí zkopírujte název serveru a přihlašovací jméno správce serveru.Use the copy icons next to each field to copy the Server name and Server admin login name.

Například může být název vašeho serveru mydemoserver.mysql.database.azure.com a přihlašovací jméno správce serveru může být myadmin@mydemoserver .For example, your server name might be mydemoserver.mysql.database.azure.com, and the server admin login name might be myadmin@mydemoserver.

Budete také potřebovat heslo.You also need the password. Pokud je nutné resetovat heslo, vyberte možnost resetovat heslo v řádku nabídek.If you need to reset the password, select Reset password in the menu bar.

Tyto informace o databázovém serveru použijte v následujících částech.Use these database server details in the following sections.

Import databáze Moodle do Azure Database for MySQLImport the Moodle database to Azure Database for MySQL

  1. Vytvořte databázi MySQL pro import místní databáze do:Create a MySQL database to import the on-premises database into:

    mysql -h $server_name -u $server_admin_login_name -p$admin_password -e "CREATE DATABASE $moodledbname CHARACTER SET utf8;"
    
  2. Přiřaďte k databázi správná oprávnění:Assign the correct permissions to the database:

    mysql -h $server_name -u $server_admin_login_name -p$admin_password -e "GRANT ALL ON $moodledbname.* TO '$server_admin_login_name' IDENTIFIED BY '$admin_password';"
    
  3. Import databáze:Import the database:

    mysql -h $server_name -u $server_admin_login_name -p$admin_password $moodledbname < /home/azureadmin/storage/database.sql
    

Konfigurace aktualizacíUpdate configurations

Po importu místního archivu databáze Moodle do Azure Database for MySQL aktualizujte podle potřeby následující konfigurace na virtuálním počítači s řadičem:After importing the on-premises Moodle database archive to Azure Database for MySQL, update the following configurations on the controller VM as necessary:

  • Aktualizujte konfigurační soubor Moodle.Update the Moodle config file.
  • Nakonfigurujte oprávnění adresáře.Configure directory permissions.
  • Nakonfigurujte webové servery PHP a NGINX.Configure PHP and NGINX web servers.
  • Aktualizujte název DNS a další proměnné.Update the DNS name and other variables.
  • Nainstalujte všechna chybějící rozšíření PHP.Install any missing PHP extensions.
  • Zajistěte, aby byly instance webových serverů na virtuálním počítači řadiče zastaveny.Ensure the web server instances on the controller VM are stopped.
  • Zkopírujte konfigurační soubory do sdíleného umístění pro kopírování do sady škálování virtuálních počítačů.Copy the config files to a shared location for copying to virtual machine scale sets.

Aktualizace konfiguračního souboru MoodleUpdate the Moodle config file

Aktualizujte parametry podrobností databáze v konfiguračním souboru Moodle /moodle/config.php .Update the database detail parameters in the Moodle configuration file /moodle/config.php.

Pro získání názvu DNS pro tuto úlohu:To get the DNS name for this task:

  1. V Azure Portal vyberte veřejnou IP adresu Load Balancer z nasazených prostředků infrastruktury Moodle.In the Azure portal, select the Load Balancer public IP address from your deployed Moodle infrastructure resources.

  2. Na stránce Přehled vyberte ikonu kopírování vedle názvu DNS.On the Overview page, select the copy icon next to the DNS name.

Postup aktualizace config.php souboru:To update the config.php file:

  1. Zadejte následující příkazy, které chcete upravit config.php v nano editoru:Enter the following commands to edit config.php in the nano editor:

    cd /moodle/html/moodle/
    nano config.php
    
  2. Aktualizujte podrobnosti o databázi v souboru pomocí hodnot, které jste zkopírovali z Azure Portal:Update the database details in the file, using the values you copied from the Azure portal:

    $CFG->dbhost    = 'localhost';                // Change 'localhost' to the server name.
    $CFG->dbname    = 'moodle';                   // Change 'moodle' to the newly created database name.
    $CFG->dbuser    = 'root';                     // Change 'root' to the server admin login name.
    $CFG->dbpass    = 'password';                 // Change 'password' to the server admin login password.
    $CFG->wwwroot   = 'https://on-premises.com';  // Change 'on-premises' to the DNS name.
    $CFG->dataroot  = '/var/moodledata';          // Change the path to '/moodle/moodledata'.
    
  3. Po provedení změn stisknutím kláves CTRL + O uložte soubor a stisknutím kláves CTRL + X ukončete Editor.After making the changes, press Ctrl+O to save the file and Ctrl+X to exit the editor.

Místní adresář můžete uložit do dataroot libovolného umístění.You can store the on-premises dataroot directory at any location.

Konfigurace oprávnění adresářeConfigure directory permissions

  • Přiřaďte 755 a webové-data-vlastník: oprávnění skupiny k moodle adresáři.Assign 755 and www-data owner:group permissions to the moodle directory.

    sudo chmod 755 /moodle/html/moodle sudo chown -R www-data:www-data /moodle/html/moodle
    
  • Přiřaďte 770 a webové-data-vlastník: oprávnění skupiny k moodledata adresáři.Assign 770 and www-data owner:group permissions to the moodledata directory.

    sudo chmod 770 /moodle/moodledata sudo chown -R www-data:www-data /moodle/moodledata
    

Aktualizovat konfigurační soubory webuUpdate web config files

Zálohování a aktualizace conf souboru Nginx:Back up and update the NGINX conf file:

sudo mv /etc/nginx/sites-enabled/*.conf /home/azureadmin/backup/
cd /home/azureadmin/storage/configuration/
sudo cp -rf nginx/sites-enabled/*.conf /etc/nginx/sites-enabled/

Zálohování a aktualizace www.conf souboru php:Back up and update the PHP www.conf file:

_PHPVER='/usr/bin/php -r "echo PHP_VERSION;" | /usr/bin/cut -c 1,2,3'
echo $_PHPVER
sudo mv /etc/php/$_PHPVER/fpm/pool.d/www.conf /home/azureadmin/backup/www.conf
sudo cp -rf /home/azureadmin/storage/configuration/php/$_PHPVER/fpm/pool.d/www.conf /etc/php/$_PHPVER/fpm/pool.d/

Aktualizace proměnných konfigurace NGINXUpdate the NGINX configuration variables

Aktualizujte název DNS cloudu Azure na název DNS místní aplikace Moodle.Update the Azure cloud DNS name to the on-premises Moodle application's DNS name.

  1. Otevřete konfigurační soubor NGINX:Open the NGINX configuration file:

    nano /etc/nginx/sites-enabled/*.conf
    
  2. Nasazení šablony ARM nastaví server NGINX na port 81.The ARM template deployment sets the NGINX server to port 81. SERVER_PORTPokud není 81, aktualizujte soubor v souboru na 81.Update the SERVER_PORT in the file to 81 if it's not 81.

  3. Aktualizujte server_name .Update the server_name. Například pro server_name on-premises.com se aktualizujte on-premises.com pomocí názvu DNS.For example, for a server_name on-premises.com, update on-premises.com with the DNS name. Ve většině případů se název DNS v migraci nemění.In most cases, the DNS name doesn't change in the migration.

  4. Aktualizujte root umístění adresáře HTML.Update the HTML root directory location. Například aktualizujte root /var/www/html/moodle; na root /moodle/html/moodle; .For example, update root /var/www/html/moodle; to root /moodle/html/moodle;.

    Místní kořenový adresář může být v jakémkoli umístění.The on-premises root directory can be at any location.

  5. Po provedení změn stisknutím kláves CTRL + O uložte soubor a klávesu CTRL + X ukončete.After making the changes, press Ctrl+O to save the file and Ctrl+X to exit.

Nainstalovat všechna chybějící rozšíření PHPInstall any missing PHP extensions

Šablony nasazení ARM nainstalují následující rozšíření PHP:The ARM deployment templates install the following PHP extensions:

  • fpm
  • cli
  • curl
  • zip
  • pear
  • mbstring
  • dev
  • mcrypt
  • soap
  • json
  • redis
  • bcmath
  • gd
  • mysql
  • xmlrpc
  • intl
  • xml
  • bz2

Pokud má místní aplikace Moodle nějaká rozšíření PHP, která nejsou na virtuálním počítači kontroléru, můžete je nainstalovat ručně.If the on-premises Moodle application has any PHP extensions that aren't on the controller VM, you can install them manually.

Chcete-li získat seznam rozšíření PHP v místní aplikaci, spusťte příkaz:To get the list of PHP extensions in the on-premises application, run:

php -m

Pokud chcete nainstalovat chybějící rozšíření, spusťte příkaz:To install missing extensions, run:

sudo apt-get install -y php-<extension>

Zajistěte, aby se instance webových serverů na virtuálním počítači kontroleru zastavily.Ensure the web server instances on the controller VM are stopped

  1. Restartujte webové servery.Restart the web servers.

    sudo systemctl restart nginx
    sudo systemctl restart php$_PHPVER-fpm
    
  2. Zastavte webové servery.Stop the web servers.

    sudo systemctl stop nginx
    sudo systemctl stop php$_PHPVER-fpm
    

Když požadavek dosáhne Azure Load Balancer, teď se přesměruje na instance sady škálování virtuálních počítačů, a ne na virtuální počítač řadiče.When a request reaches Azure Load Balancer, it now redirects to virtual machine scale set instances and not to the controller VM.

Kopírovat konfigurační souboryCopy configuration files

Zkopírujte konfigurační soubory PHP a webový server do sdíleného umístění pro pozdější kopírování do instancí sady škálování virtuálních počítačů.Copy PHP and web server configuration files to a shared location for later copying to virtual machine scale set instances.

Chcete-li vytvořit adresář pro konfigurační soubory ve sdíleném umístění, spusťte příkaz:To create the directory for configuration files in a shared location, run:

mkdir -p /moodle/config
mkdir -p /moodle/config/php
mkdir -p /moodle/config/nginx

Chcete-li zkopírovat konfigurační soubory PHP a webový server do sdíleného adresáře, spusťte příkaz:To copy the PHP and web server configuration files to the shared directory, run:

cp /etc/nginx/sites-enabled/* /moodle/config/nginx
cp /etc/php/$_PHPVER/fpm/pool.d/www.conf /moodle/config/php

Další krokyNext steps

Pokračujte v nastavování instance řadiče Moodle a pracovních uzlů pro další kroky v procesu migrace Moodle.Continue to Set up the Moodle controller instance and worker nodes for the next steps in the Moodle migration process.