Etapas de migração manual do MoodleMoodle manual migration steps

Este artigo descreve as etapas para migrar o arquivo de Moodle local para o Azure.This article describes the steps to migrate the on-premises Moodle archive to Azure. O conteúdo desse arquivo morto de Moodle inclui o aplicativo Moodle, a configuração relevante e uma cópia do banco de dados da implantação Moodle local.The contents of this Moodle archive include the Moodle application, relevant configuration, and a copy of the database from the on-premises Moodle deployment. Depois de importar com êxito o backup local para a infraestrutura do Azure, realize as atualizações de configuração para o Moodle.Once you successfully import the on-premises backup into the Azure infrastructure, you carry out configuration updates for Moodle.

Antes de iniciar este processo, certifique-se de concluir todas as etapas nestes artigos:Before you begin this process, make sure to complete all the steps in these articles:

Após a conclusão da implantação do modelo de Azure Resource Manager (ARM), entre no portal do Azure e vá para o grupo de recursos que você criou como parte do processo de implantação.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. Examine a lista de recursos de infraestrutura criados recentemente.Review the list of newly created infrastructure resources. Os recursos criados são semelhantes à imagem a seguir, dependendo do modelo ARM usado para implantação.The created resources look similar to the following image, depending on the ARM template you used for deployment.

Captura de tela mostrando os recursos de infraestrutura criados no grupo de recursos de migração Moodle.

Copiar o arquivo MoodleCopy the Moodle archive

A primeira etapa do processo de migração é copiar o arquivo de backup Moodle do armazenamento de BLOBs do Azure para a VM (máquina virtual) do controlador para a implantação do 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. Esse é o mesmo arquivo que você criou em criar um arquivo morto.This is the same archive you created in Create an archive.

Entrar na máquina virtual do controladorSign in to the controller virtual machine

  1. Use um emulador de terminal de software livre ou uma ferramenta de console serial como saída para entrar em uma VM do controlador.Use a free, open-source terminal emulator or serial console tool like PuTTY to sign in to a controller VM.

  2. Em configuração de saída, insira o endereço IP público da VM do controlador como o nome do host.In PuTTY Configuration, enter the public IP address of the controller VM as the Host Name.

  3. No painel de navegação esquerdo, expanda SSH.In the left navigation, expand SSH.

    Captura de tela da página de configuração de saída.

  4. Selecione autenticação e localize o arquivo de chave SSH que você usou para implantar a infraestrutura do 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 nome de usuário, insira azureadmin, pois ele é embutido em código no modelo.For user name, enter azureadmin, as it's hard-coded in the template.

    Captura de tela da página de configuração de saída mostrando as configurações de autenticação SSH.

Para obter mais informações sobre a redisponibilização, consulte perguntas frequentes sobre solução de problemas/perguntas gerais.For more information about PuTTY, see PuTTY general FAQ/troubleshooting questions.

Baixar e instalar o AzCopy na VM do controladorDownload and install AzCopy on the controller VM

Depois de entrar na VM do controlador, 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/

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

Antes de iniciar o processo de importação, é recomendável fazer backup da configuração padrão ou atual.Before you start the import process, it's recommended to back up the default or current configuration.

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

    cd /home/azureadmin/
    mkdir -p backup
    mkdir -p backup/moodle
    mkdir -p backup/moodle/html
    
  2. Crie backups dos moodle moodledata diretórios e: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
    

Copie o arquivo Moodle para a VM do controladorCopy the Moodle archive to the controller VM

  1. Execute os seguintes comandos para baixar o storage.tar.gz arquivo de backup compactado do armazenamento de BLOBs do Azure para o diretório da VM do controlador /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"
    

    Substitua sua própria conta de armazenamento e os valores de token 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 arquivo compactado em um diretório.Extract the compressed file to a directory.

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

Importar arquivos Moodle para o AzureImport Moodle files to Azure

Depois de extraído, você pode encontrar o storage diretório em home/azureadmin .Once extracted, you can find the storage directory under home/azureadmin. Esse storage diretório contém moodle os moodledata diretórios, e e configuration um arquivo de backup do banco de dados.This storage directory contains moodle, moodledata, and configuration directories, and a database backup file. Você copia cada um desses arquivos e diretórios para os locais de destino nas seguintes etapas:You copy each of these files and directories to the target locations in the following steps:

  1. Copie os moodle moodledata diretórios e para um local compartilhado em /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
    

Importar o banco de dados Moodle para o AzureImport the Moodle database to Azure

Conecte-se ao banco de dados do Azure para servidor MySQL e importe o arquivo morto do banco de dados Moodle local para o banco de dados do Azure para MySQL.Connect to the Azure Database for MySQL server, and import the on-premises Moodle database archive to Azure Database for MySQL.

Conectar ao servidor MySQLConnect to the MySQL server

As instâncias do banco de dados do Azure para MySQL são protegidas por um firewall.Azure Database for MySQL instances are protected by a firewall. Todas as conexões com o servidor e os bancos 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 se conectar ao banco de dados do Azure para MySQL pela primeira vez, configure o firewall para permitir o acesso ao endereço IP público ou ao intervalo de endereços IP da VM do controlador.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.

Você pode configurar o firewall usando a linha de comando do Azure (CLI do Azure) ou a portal do Azure.You can configure the firewall by using the Azure command line (Azure CLI) or the Azure portal.

Execute o comando CLI do Azure a seguir, substituindo 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, na portal do Azure, selecione o servidor de banco de dados do Azure para MySQL de seus 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 segurança de conexão.In the server page's left navigation, select Connection security.

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

Captura de tela do painel segurança de conexão do banco de dados do Azure para o servidor MySQL.

Agora você pode se conectar ao servidor MySQL usando a mysql ferramenta de linha de comando ou o MySQL Workbench.You can now connect to the MySQL server by using the mysql command-line tool or MySQL Workbench.

Captura de tela de configuração da nova conexão do MySQL Workbench.

Para obter informações de conexão, vá para a página de visão geral do servidor MySQL na portal do Azure.To get connection information, go to your MySQL server's Overview page in the Azure portal. Use os ícones de cópia ao lado de cada campo para copiar o nome do servidor e o nome de logon do administrador 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 servidor pode ser mydemoserver.mysql.database.azure.com e o nome de logon do administrador 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.

Você também precisa da senha.You also need the password. Se você precisar redefinir a senha, selecione Redefinir senha na barra de menus.If you need to reset the password, select Reset password in the menu bar.

Use esses detalhes do servidor de banco de dados nas seções a seguir.Use these database server details in the following sections.

Importar o banco de dados Moodle para o banco de dados do Azure para MySQLImport the Moodle database to Azure Database for MySQL

  1. Crie um banco de dados MySQL para importar o banco de dados 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 ao banco 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 o banco de dados:Import the database:

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

Atualizar configuraçõesUpdate configurations

Depois de importar o arquivo de banco de dados Moodle local para o banco de dados do Azure para MySQL, atualize as seguintes configurações na VM do controlador, conforme 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 arquivo de configuração Moodle.Update the Moodle config file.
  • Configurar 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 todas as extensões PHP ausentes.Install any missing PHP extensions.
  • Verifique se as instâncias do servidor Web na VM do controlador foram interrompidas.Ensure the web server instances on the controller VM are stopped.
  • Copie os arquivos de configuração para um local compartilhado para copiar para conjuntos de dimensionamento de máquinas virtuais.Copy the config files to a shared location for copying to virtual machine scale sets.

Atualizar o arquivo de configuração MoodleUpdate the Moodle config file

Atualize os parâmetros de detalhes do banco de dados no arquivo 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. Na portal do Azure, selecione o endereço IP público do Load Balancer de seus recursos de infraestrutura do Moodle implantados.In the Azure portal, select the Load Balancer public IP address from your deployed Moodle infrastructure resources.

  2. Na página visão 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 arquivo:To update the config.php file:

  1. Insira 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 detalhes do banco de dados no arquivo, usando os valores que você copiou do portal do 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 fazer as alterações, pressione CTRL + O para salvar o arquivo 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.

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

Configurar permissões de diretórioConfigure directory permissions

  • Atribuir 755 e o proprietário da www-data: 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
    
  • Atribuir 770 e o proprietário da www-data: 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 arquivos de configuração da WebUpdate web config files

Faça backup e atualize o conf arquivo 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 backup e atualize o www.conf arquivo 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 as variáveis de configuração do NGINXUpdate the NGINX configuration variables

Atualize o nome DNS da nuvem do Azure para o nome DNS do aplicativo Moodle local.Update the Azure cloud DNS name to the on-premises Moodle application's DNS name.

  1. Abra o arquivo de configuração NGINX:Open the NGINX configuration file:

    nano /etc/nginx/sites-enabled/*.conf
    
  2. A implantação do modelo ARM define o servidor NGINX para a porta 81.The ARM template deployment sets the NGINX server to port 81. Atualize o SERVER_PORT no arquivo para 81 se ele 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 um server_name on-premises.com , atualize 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 é alterado na migração.In most cases, the DNS name doesn't change in the migration.

  4. Atualize o root local do diretório HTML.Update the HTML root directory location. Por exemplo, atualize 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 raiz local pode estar em qualquer local.The on-premises root directory can be at any location.

  5. Depois de fazer as alterações, pressione CTRL + O para salvar o arquivo e CTRL + X para sair.After making the changes, press Ctrl+O to save the file and Ctrl+X to exit.

Instalar quaisquer extensões PHP ausentesInstall any missing PHP extensions

Os modelos de implantação do ARM instalam as seguintes extensões 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

Se o aplicativo Moodle local tiver extensões PHP que não estejam na VM do controlador, você poderá 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 no aplicativo local, execute:To get the list of PHP extensions in the on-premises application, run:

php -m

Para instalar extensões ausentes, execute:To install missing extensions, run:

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

Verifique se as instâncias do servidor Web na VM do controlador foram interrompidasEnsure the web server instances on the controller VM are stopped

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

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

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

Quando uma solicitação chega Azure Load Balancer, ela agora redireciona para instâncias do conjunto de dimensionamento de máquinas virtuais e não para a VM do controlador.When a request reaches Azure Load Balancer, it now redirects to virtual machine scale set instances and not to the controller VM.

Copiar arquivos de configuraçãoCopy configuration files

Copie os arquivos de configuração do servidor Web e PHP para um local compartilhado para copiar posteriormente para instâncias do conjunto de dimensionamento de máquinas virtuais.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 arquivos de configuração em um local compartilhado, 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 arquivos de configuração do servidor Web e PHP para o diretório compartilhado, 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

Próximas etapasNext steps

Continue a Configurar a instância do controlador Moodle e os nós de trabalho para as próximas etapas do 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.