Etapas de migração manual de moodleMoodle manual migration steps

Este artigo descreve os passos para importar o arquivo Moodle no local para a Base de Dados Azure para o MySQL e, em seguida, configurar a aplicação Azure Moodle.This article describes the steps to import the on-premises Moodle archive to Azure Database for MySQL, and then configure the Azure Moodle application.

Antes de iniciar este processo, certifique-se de completar todos os passos nestes artigos:Before you begin this process, make sure to complete all the steps in these articles:

Depois de terminar a implementação do modelo Azure Resource Manager (ARM), inscreva-se no portal Azure,vá ao grupo de recursos o modelo criado e veja todos os recursos de infraestrutura criados.After the Azure Resource Manager (ARM) template deployment finishes, sign in to the Azure portal, go to the resource group the template created, and view all the created infrastructure resources. Os recursos criados parecem semelhantes à imagem a seguir, dependendo do modelo ARM que usou.The created resources look similar to the following image, depending on which ARM template you used.

Screenshot mostrando recursos de infraestrutura criados no grupo de recursos migratórios Moodle.

Copiar o arquivo MoodleCopy the Moodle archive

Copie o arquivo de backup moodle do Azure Blob Storage para a máquina virtual do controlador (VM).Copy the Moodle backup archive from Azure Blob Storage to the controller virtual machine (VM).

Inscreva-se na máquina virtual do controladorSign in to the controller virtual machine

  1. Utilize um emulador de terminais de código aberto ou uma ferramenta de consola em série como a PuTTY para iniciar súm numa máquina virtual controladora (VM).Use a free, open-source terminal emulator or serial console tool like PuTTY to sign in to a controller virtual machine (VM).

  2. Na Configuração PuTTY, insira o endereço IP público do controlador VM como nome de anfitrião.In PuTTY Configuration, enter the Public IP address of the controller VM as the Host Name.

  3. Na navegação à esquerda, expanda o SSH.In the left navigation, expand SSH.

    Screenshot da página de configuração PuTTY.

  4. Selecione Auth, e encontre o ficheiro de chave SSH que usou para implantar a infraestrutura Azure com o modelo ARM.Select Auth, and find the SSH key file you used to deploy the Azure infrastructure with the ARM template.

  5. Selecione Abrir.Select Open. Para o nome de utilizador, insira azureadmin, uma vez que está codificado no modelo.For user name, enter azureadmin, as it's hard-coded in the template.

    Screenshot da página de configuração PuTTY mostrando definições de autenticação SSH.

Para obter mais informações sobre putty, consulte putty general FAQ/questões de resolução de problemas.For more information about PuTTY, see PuTTY general FAQ/troubleshooting questions.

Descarregue e instale o AzCopy no controlador VMDownload and install AzCopy on the controller VM

Depois de iniciar súpite no controlador VM, execute os seguintes comandos para instalar o 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/

Copie o arquivo para o controlador VMCopy the archive to the controller VM

  1. Executar os seguintes comandos para transferir o ficheiro de backup comprimido storage.tar.gz do Azure Blob Storage para o diretório VM do /home/azureadmin/ controlador: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/'
    

    Substitua a sua própria conta de armazenamento e os valores de ficha SAS.Substitute your own storage account and SAS token values. Por exemplo: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. Extraia o ficheiro comprimido para um diretório.Extract the compressed file to a directory.

    d /home/azureadmin
    ar -zxvf storage.tar.gz
    

Fazer o back up da configuração atualBack up the current configuration

Antes de migrar, volte a subir na configuração atual.Before migrating, back up the current configuration. O diretório de reserva é extraído como storage em home/azureadmin .The backup directory is extracted as storage at home/azureadmin. Este storage diretório contém moodle , e moodledata diretórios de configuração, e um ficheiro de backup de base de dados, que você copia para as localizações desejadas.This storage directory contains moodle, moodledata, and configuration directories, and a database backup file, which you copy to desired locations.

  1. Criar um diretório de reserva:Create a backup directory:

    cd /home/azureadmin/
    mkdir -p backup
    mkdir -p backup/moodle
    mkdir -p backup/moodle/html
    
  2. Criar backups dos moodle moodledata diretórios e diretórios: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
    
  3. Copie os moodle moodledata diretórios e diretórios para um local partilhado, /moodle .Copy the moodle and moodledata directories to a shared location, /moodle.

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

Importe a base de dados moodle para AzureImport the Moodle database to Azure

Ligue-se à Base de Dados Azure para o servidor MySQL e importe o arquivo de base de dados moodle no local para a Base de Dados Azure para o MySQL.Connect to the Azure Database for MySQL server, and import the on-premises Moodle database archive to Azure Database for MySQL.

Ligue-se ao servidor MySQLConnect to the MySQL server

A base de dados Azure para casos MySQL está protegida por uma firewall.Azure Database for MySQL instances are protected by a firewall. Todas as ligações ao servidor e às bases de dados dentro do servidor são rejeitadas por padrão.All connections to the server and the databases inside the server are rejected by default. Antes de ligar à Base de Dados Azure para o MySQL pela primeira vez, configure a firewall para permitir o acesso ao endereço IP público ou intervalo de endereços IP do controlador VM.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.

Pode configurar a firewall utilizando a linha de comando Azure (Azure CLI) ou o portal Azure.You can configure the firewall by using the Azure command line (Azure CLI) or the Azure portal.

Executar o seguinte comando Azure CLI, substituindo os seus próprios valores pelos espaços reservados: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>

Ou, no portal Azure, selecione a Base de Dados Azure para o servidor MySQL a partir dos recursos de infraestrutura moodle implantados.Or, in the Azure portal, select the Azure Database for MySQL server from your deployed Moodle infrastructure resources. Na navegação à esquerda da página do servidor, selecione 'Connection security'.In the server page's left navigation, select Connection security.

Pode adicionar endereços IP permitidos e configurar as regras de firewall aqui.You can add allowed IP addresses and configure firewall rules here. Selecione Save depois de criar as regras.Select Save after you've created the rules.

Screenshot do painel de segurança De Ligação para a Base de Dados Azure para o servidor MySQL.

Agora pode ligar-se ao servidor MySQL utilizando a ferramenta de linha de comando mysql ou a bancada MySQL Workbench.You can now connect to the MySQL server by using the mysql command-line tool or MySQL Workbench.

Screenshot do ecrã MySQL Workbench Configurar nova ligação.

Para obter informações de ligação, aceda à página geral do seu servidor MySQL no portal Azure.To get connection information, go to your MySQL server's Overview page in the Azure portal. Utilize os ícones de cópia ao lado de cada campo para copiar o nome do Servidor e o nome de login do servidor.Use the copy icons next to each field to copy the Server name and Server admin login name.

Por exemplo, o nome do seu servidor pode ser mydemoserver.mysql.database.azure.com , e o nome de login do servidor pode ser myadmin@mydemoserver .For example, your server name might be mydemoserver.mysql.database.azure.com, and the server admin login name might be myadmin@mydemoserver.

Também precisa da senha.You also need the password. Se precisar de redefinir a palavra-passe, selecione Redefinir a palavra-passe na barra de menus.If you need to reset the password, select Reset password in the menu bar.

Utilize estes dados do servidor de bases de dados nas seguintes secções.Use these database server details in the following sections.

Importar a base de dados moodle para Azure Database para o MySQLImport the Moodle database to Azure Database for MySQL

  1. Criar uma base de dados MySQL para importar a base de dados no local para: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. Atribua as permissões corretas à base de dados: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. Importar a base de dados:Import the database:

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

Configurações de atualizaçãoUpdate configurations

Depois de importar o arquivo de base de dados moodle no local para a Base de Dados Azure para o MySQL, atualize as seguintes configurações no controlador VM, se necessário:After importing the on-premises Moodle database archive to Azure Database for MySQL, update the following configurations on the controller VM as necessary:

  • Atualize o ficheiro Moodle config.Update the Moodle config file.
  • Configure permissões de diretório.Configure directory permissions.
  • Configurar servidores web PHP e Nginx.Configure PHP and nginx web servers.
  • Atualize o nome DNS e outras variáveis.Update the DNS name and other variables.
  • Instale quaisquer extensões PHP em falta.Install any missing PHP extensions.
  • Reinicie e, em seguida, pare os servidores web.Restart and then stop the web servers.
  • Copie os ficheiros config para um local partilhado para copiar para conjuntos de escala de máquina virtual.Copy the config files to a shared location for copying to virtual machine scale sets.

Atualizar o ficheiro Moodle configUpdate the Moodle config file

Atualize os parâmetros de detalhe da base de dados no ficheiro de configuração moodle /moodle/config.php .Update the database detail parameters in the Moodle configuration file /moodle/config.php.

Para obter o nome DNS para esta tarefa:To get the DNS name for this task:

  1. No portal Azure, selecione o endereço IP público do Balancer de Carga a partir dos recursos de infraestrutura Moodle implantados.In the Azure portal, select the Load Balancer public IP address from your deployed Moodle infrastructure resources.

  2. Na página 'Vista Geral', selecione o ícone de cópia ao lado do nome DNS.On the Overview page, select the copy icon next to the DNS name.

Para atualizar o config.php ficheiro:To update the config.php file:

  1. Introduza os seguintes comandos para editar config.php no nano editor:Enter the following commands to edit config.php in the nano editor:

    cd /moodle/html/moodle/
    nano config.php
    
  2. Atualize os dados da base de dados no ficheiro, utilizando os valores copiados do portal Azure: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. Depois de escamar as alterações, prima CTRL+O para guardar o ficheiro e CTRL+X para sair do editor.After making the changes, press CTRL+O to save the file and CTRL+X to exit the editor.

Pode armazenar o diretório no local dataroot em qualquer local.You can store the on-premises dataroot directory at any location.

Configure permissões de diretórioConfigure directory permissions

  • Atribua 755 e www-data proprietário:permissões de grupo para o moodle diretório.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
    
  • Atribua 770 e www-data proprietário:permissões de grupo para o moodledata diretório.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
    

Atualizar ficheiros de config webUpdate web config files

Faça o back up e atualize o conf ficheiro 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/

Faça o back up e atualize o www.conf ficheiro 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/

Atualizar variáveis de configuração nginxUpdate nginx configuration variables

Atualize o nome DNS em nuvem Azure para o nome DNS da aplicação Moodle no local.Update the Azure cloud DNS name to the on-premises Moodle application's DNS name.

  1. Abra o ficheiro de configuração nginx:Open the nginx configuration file:

    nano /etc/nginx/sites-enabled/*.conf
    
  2. A implementação do modelo ARM define o servidor nginx para a porta 81.The ARM template deployment sets the nginx server to port 81. Atualize SERVER_PORT o ficheiro para 81 se não for 81.Update the SERVER_PORT in the file to 81 if it's not 81.

  3. Atualize o server_name .Update the server_name. Por exemplo, para uma server_name on-premises.com atualização on-premises.com com o nome DNS.For example, for a server_name on-premises.com, update on-premises.com with the DNS name. Na maioria dos casos, o nome DNS não muda na migração.In most cases, the DNS name doesn't change in the migration.

  4. Atualize a root localização do diretório HTML.Update the HTML root directory location. Por exemplo, atualizar root /var/www/html/moodle; para root /moodle/html/moodle; .For example, update root /var/www/html/moodle; to root /moodle/html/moodle;.

    O diretório de raiz no local pode estar em qualquer local.The on-premises root directory can be at any location.

  5. Depois de escamar as alterações, prima CTRL+O para guardar o ficheiro e CTRL+X para sair.After making the changes, press CTRL+O to save the file and CTRL+X to exit.

Instale quaisquer extensões PHP em faltaInstall any missing PHP extensions

Os modelos de implantação ARM instalam as seguintes extensões PHP: fpm, cli, curl, zip, pera, mbstring, dev, mcrypt, sabão, json, redis, bcmath, gd, mysql, xmlrpc, intl, xml, e bz2.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, and bz2. Se a aplicação Moodle no local tiver quaisquer extensões PHP que não estejam no controlador VM, pode instalá-las manualmente.If the on-premises Moodle application has any PHP extensions that aren't on the controller VM, you can install them manually.

Para obter a lista de extensões PHP na aplicação no local, corra:To get the list of PHP extensions in the on-premises application, run:

php -m

Para instalar extensões em falta, corra:To install missing extensions, run:

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

Reiniciar e parar os servidores webRestart and stop the web servers

  1. Reinicie os servidores da web.Restart the web servers.

    sudo systemctl restart nginx
    sudo systemctl restart php$_PHPVER-fpm
    
  2. Pare os servidores da web.Stop the web servers.

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

Quando um pedido chega ao Azure Load Balancer, agora redireciona para instâncias de escala de máquina virtual e não para o controlador VM.When a request reaches Azure Load Balancer, it now redirects to virtual machine scale set instances and not to the controller VM.

Copiar ficheiros de configuraçãoCopy configuration files

Copie os ficheiros de configuração de PHP e servidor web para uma localização partilhada para posterior cópia para instâncias de escala de máquina virtual.Copy PHP and web server configuration files to a shared location for later copying to virtual machine scale set instances.

Para criar o diretório para ficheiros de configuração numa localização partilhada, execute: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

Para copiar os ficheiros de configuração de PHP e servidor web para o diretório partilhado, execute: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

Passos seguintesNext steps

Continue a configurar a instância do controlador Moodle e os nós dos trabalhadores para os próximos passos no processo de migração moodle.Continue to Set up the Moodle controller instance and worker nodes for the next steps in the Moodle migration process.