Abordaremos a implementação de um ambiente AVA baseado em Moodle e documentar os procedimentos e estratégias adotadas para instalação padronizada desse ambiente. É importante ressaltar que este documento abordará uma proposta simples e rápida de implementação, customizados e padronizados, não todas as soluções que a ferramenta propõe.

Lembrando que dividimos esse post nas seguintes partes:

Você também pode optar em usar o MySQL como uma alternativa ao MariaDB, caso prefira instalar ele, leia nosso post Instalando o MariaDB no CentOS (ou nas referências, abaixo).

Antes de começar a instalação, é importante que você acesse a calculadora do MySQL para verificar as variáveis do MySQL em relação ao consumo de hardware que será ocupado (para evitar prolemas).

Lembre-se que será necessário ter cadastrado o nome DNS desse sistema (altere todas as partes em cinza conforme sua necessidade). Para instalar esse servidor, você vai precisar instalar o servidor CentOS padrão: Caso tenha dúvidas consulte aqui ou no link disponibilizado nas referências.

Criar e Configurar o Servidor de Banco de Dados (MySQL)

Estes procedimentos foram baseados na versão 8 (última versão no momento), caso queira utilizar outra versão, acesse http://www.mysql.com/ e verifique a versão (e o caminho para download) desejado, para isso execute:

cd /

yum install libaio perl-DBI -y

echo "[mysql-8-source]" > /etc/yum.repos.d/mysql-8.repo
echo "name=MySQL8 - Base Sources" >> /etc/yum.repos.d/mysql-8.repo
echo "baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/$releasever/x86_64/" >> /etc/yum.repos.d/mysql-8.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/mysql-8.repo
echo "enabled=0" >> /etc/yum.repos.d/mysql-8.repo

yum install mysql mysql-server --disablerepo=* --enablerepo=mysql-8-source -y

systemctl enable mysqld.service

Configurar os discos adicionais

Vamos adicionar os seguintes discos:

Novo DiscoEm qual pasta
/dev/sdb1 /var/lib/mysql
/dev/sdc1 /var/log

Para executar esse procedimento leia nosso post Adicionar disco no Linux (também disponível nas referências, abaixo), em seguida execute:

mount -a
df

Verifique se as pastas /var/lib/mysql e /var/log estão mapeadas corretamente. Em seguida, execute:

chown mysql:mysql /var/lib/mysql
systemctl start mysqld
mysql_secure_installation

Aparecerá uma tela para confirmar algumas informações, responda da seguinte forma:

Pergunta O que deverá ser respondido
Enter current password for root (enter for none):Apenas pressione ENTER
Set root password?Pressione Y e depois pressione ENTER
New password:Insira a senha (definida no primeiro post) e pressione ENTER
Re-enter new password:Repita a senha e pressione ENTER
Remove anonymous users? [Y/n]Pressione Y e depois pressione ENTER
Disallow root login remotely? [Y/n]Pressione N e depois pressione ENTER
Remove test database and access to it? [Y/n]Pressione Y e depois pressione ENTER
Reload privilege tables now? [Y/n]Pressione Y e depois pressione ENTER

Agora, execute:

touch /var/log/mysql.slow-queries.log
chmod 660 /var/log/mysql.slow-queries.log
chown mysql:mysql /var/log/mysql.slow-queries.log
touch /var/log/mysql.general.log
chmod 660 /var/log/mysql.general.log
chown mysql:mysql /var/log/mysql.general.log
vim /etc/my.cnf 

Pressione a tecla INSERT para entrar em modo de edição e adicione as seguintes linhas abaixo da linha [mysqld] (é importante que você acesse a calculadora do MySQL para ter certeza se os valores que irá inserir estão de acordo com a configuração de hardware do seu servidor):

expire_log_days=10
binlog_cache_size=1MB
sort_buffer_size=8MB
innodb_log_buffer_size=4MB
innodb_additional_mem_pool_size=4MB
innodb_buffer_pool_size=30GB
tmb_table_size=128MB
query_cache_size=512MB
key_buffer_size=512MB
max_connections=1000
log=/var/log/mysql.general.log
log-slow-queries=/var/log/mysql.slow-queries.log

Pressione a tecla ESC para sair do modo de edição e digite :wq! para sair e salvar. Em seguida, execute:

systemctl restart mysqld

Definir retenção de log para 10 dias

Agora vamos configurar o tempo de retenção do log do MySQL para 10 dias, para isso será necessário editar o arquivo /etc/logrotate.d/mysql:

vi /etc/logrotate.d/mysql

Aperte a tecla INSERT do teclado para entrar em modo de edição e deixa-lo da seguinte forma:

/var/log/mysqld.log
/var/log/mysql.general.log
/var/log/mysql.slow-queries.log
{
        create 660 mysql mysql
        daily
        rotate 10
        missingok
    postrotate
        # just if mysqld is really running
        if test -x /usr/bin/mysqladmin && \
           /usr/bin/mysqladmin ping &>/dev/null
        then
           /usr/bin/mysqladmin flush-logs
           service mysqld restart
        fi
    endscript
}

Ao final, pressionar a tecla ESC para sair do modo de edição, digitar :wq! e pressionar ENTER para sair e salvar.

Criar banco de dados para o Moodle

Com o MySQL instalado, acesse o MySQL com o comando abaixo:

mysql -u root -p

Será solicitado a senha do root (definida anteriormente) informe-a, sem seguida (dentro do MySQL) defina o usuário e senha com acesso a este banco (altere as partes em cinza conforme o que foi definido na primeira parte desses posts):

create database nome_da_base;

No comando abaixo, altere a variável do IP do servidor de aplicação do Moodle:

grant all privileges on nome_da_base.* to 'usuario_banco'@'rede_servers/mascara_ciderizada' identified by 'senha_banco';

flush privileges;
quit

Backup e Restore (dump) do banco MySQL

Para fazer um backup e/ou restore, leia nosso post Como fazer Backup e Restore (dump) do banco MySQL (também nas referências, abaixo).

Fontes/Referências

NVLAN – Como fazer Backup e Restore (dump) do banco MySQL
NVLAN – Criando um ambiente Moodle: Parte 1 – Introdução
NVLAN – Criando um ambiente Moodle: Parte 2 – Sugestão de Topologia
NVLAN – Criando um ambiente Moodle: Parte 3 – Balanceador de Carga
NVLAN – Criando um ambiente Moodle: Parte 4 – Compartilhamento de Arquivos
NVLAN – Criando um ambiente Moodle: Parte 6 – Aplicação
NVLAN – Instalação padrão do CentOS7
NVLAN – Instalando o MariaDB no CentOS
NVLAN – MySQL Calculator
NVLAN – Recuperando os acessos do ambiente Moodle

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria