GUOB Tech Day 2017

29 novembro 2014

Tutorial: ambiente de testes com MySQL Enterprise, VirtualBox e Oracle Linux

Muitas vezes é necessário ter um ambiente isolado (sandbox) para testes com MySQL. Seja para o aprendizado da tecnologia ou mesmo para validação de uma nova versão ou de alguma nova ferramenta ou aplicação. Enfim, motivos não faltam!


Neste tutorial veremos como montar um ambiente isolado com:
  • MySQL Database 5.6.21 Comercial (também conhecida como “Enterprise Edition”)
  • VirtualBox 4.3.20
  • Oracle Linux 7.0


Notas:
  • As versões são as mais atuais, no momento de escrita deste post.
  • No meu caso, o hardware é um laptop Intel x86 64-bit com 8GB de RAM. Os binários utilizados serão compatíveis com esta plataforma.
  • A quantidade recomendável de memória é de 4GB de RAM e 20GB de disco.
  • A versão comercial do MySQL Database atualmente possui recursos adicionais na forma de plug-ins (Thread Pool, External Authentication, Audit e Encryption) e pode ser usada em ambiente de testes (não produtivo) por 30 dias.
  • É necessário ter permissão de Administrador da máquina host para instalar o VirtualBox.


Passo 1 - Downloads



Primeiramente, baixe todos softwares necessários. Você pode querer fazer isto antecipadamente e de uma vez, principalmente se a velocidade do seu link Internet for lenta.


1.1. VirtualBox



1.1.2. Baixe VirtualBox 4.3.20 for Windows hosts > x86/amd64 (meu laptop possui Win7 instalado, baixe o binário apropriado para seu Sistema Operacional e plataforma)
1.1.3. Baixe também VirtualBox 4.3.20 Oracle VM VirtualBox Extension Pack > All supported platforms.
virtualbox-download.png


1.2. Oracle Linux



1.2.1. Acesse http://edelivery.oracle.com/linux e faça o Sign In com sua conta Oracle:
edelivery_signin.png


1.2.2. Entre com seu Username e Password Oracle e clique em “Sign In”. Se ainda não possui uma conta Oracle, pode criá-la rapidamente em “Create Account”:
oracle_create_account.png


1.2.3. Leia e, se estiver de acordo, aceite os Termos de Licença e Exportação:
edelivery_terms.png


1.2.4. A seguir, você poderá selecionar Oracle Linux e a sua plataforma de hardware. Ao clicar em “Go” serão exibidas as releases disponíveis para download. No nosso caso, usaremos Oracle Linux 7.0.0.0.0:
edelivery_linux_x86_64.png


1.2.5. Ao clicar no campo Descrição para Oracle Linux 7, será apresentada a tela de download. Baixe o binário “Oracle Linux Release 7 for x86_64” - no caso desta versão do Oracle Linux o Part Number correspondente é V46135-01:
edelivery_mysql_linux_x86_64_download2.png
Nota: não é necessário baixar os Sources nem Boot iso image.


1.2.6. Como se trata de um download relativamente grande, ao terminar, recomenda-se verificar se não está corrompido através do hash MD5. Clique em “View Digest” para visualizar o hash e anote-o para usá-lo depois que o download estiver concluído:
edelivery_mysql_linux_x86_64_md5_2.png


1.2.7. Para calcular o MD5 no Windows, use o utilitário FCIV disponível em http://support.microsoft.com/kb/841290. Basta extrair o fciv.exe para a mesma pasta em que está o arquivo .iso já descompactado e no prompt de comando executar:
fciv.exe V46135-01.iso:
fciv_md5_2.png


Agora basta comparar com os hashs anotados no passo 1.2.6.


1.3. MySQL Comercial (Enterprise Edition)



1.3.1. Acesse http://edelivery.oracle.com e faça o Sign In com sua conta Oracle, assim como fez no passo 1.2.2.


1.3.2. Leia e, se estiver de acordo, aceite os Termos de Licença e Exportação:
edelivery_mysql_terms.png
Note que os termos de uso são ligeiramente diferentes do Linux, pois os binários do MySQL Enterprise Edition exigem uma licença de uso, mas podem ser utilizados para testes.


1.3.3. Na próxima tela podemos baixar o binário para MySQL Database correspondente ao Oracle Linux 7:
edelivery_mysql_linux_x86_64_download.png


1.3.4. (opcional) Análogo ao passo 1.2.7, calcule o hash do arquivo baixado usando o utilitário fciv.exe e comparar com o hash disponível em “View Digest”:
edelivery_mysql_linux_x86_64_md5.png


Passo 2 - Instalação do VirtualBox



Você precisa ser Administrador da máquina para seguir com a instalação. A rede ficará temporariamente indisponível durante a instalação, portanto certifique-se que os downloads foram concluídos.


2.1. Este passo é extremamente intuitivo e não deve apresentar maiores dificuldades. Usaremos as opções padrão, então apenas siga o Next, Next … Install:
virtualbox-install.png


2.2. Depois de clicar em “Install” a instalação se iniciará. Caso seja questionado se deseja instalar drivers, clique no Check Box “Always trust…” e “Install”:
VirtualBox_Bus.png


2.3. Se tudo correr conforme esperado, você verá a tela com o botão “Finish”:
vbox-install-finish.png


2.4. Agora instalaremos o Extension Pack do Virtual Box. Basta dar um duplo-clique no arquivo baixado no passo 1.1.3 (extensão .vbox-extpack) e será aberto o assistente de instalação. Clique em “Instalar”:
cbox-install-ext.png


2.5. Leia os termos de uso e, se estiver de acordo, clique em “Eu Concordo”:
VirtualBox_Ext_Pack_license.png


2.6. Se tudo correu bem, você verá uma mensagem de sucesso:
VirtualBox_Ext_Pack_success.png


2.7 (opcional) Se desejar que os arquivos de máquinas e discos virtuais fiquem em uma pasta específica, configure em “Arquivo”, “Preferências...” e depois “Geral”:
VirtualBox_Conf_Prefs.png
VirtualBox_Conf_Prefs_Geral.png


Passo 3 - Criação de uma Virtual Machine no VirtualBox



3.1. Vamos criar a máquina virtual onde será instalado o Oracle Linux. Abra o VirtualBox e clique no botão “Novo”:
VM_novo.png


3.2. Entre com um Nome para a VM (por exemplo, “oracle-linux-7.0-64-mysql-enterprise”), selecione Tipo “Linux” e Versão “Oracle (64 bit):
VM_nome.png


3.3. Defina o tamanho da memória RAM da sua VM. Recomendamos 1024 MB inicialmente:
VM_mem.png
Nota: essa configuração poderá ser alterada futuramente sem problemas.


3.4. Crie o disco para a VM:
VM_disco.png


3.4.1. Configure o tipo de disco como “VirtualBox Disk Image”:
VM_disco_tipo.png


3.4.2. Escolha o modo de alocação como “Dinâmico”:
VM_disco_aloc.png


3.4.3. Verifique se o nome e local do arquivo de disco estão corretos e clique em “Criar”:
VM_disco_local.png


3.5. Pronto, sua VM está criada!
VM_criada.png


Passo 4 - Configuração da Rede no VirtualBox e na VM


Agora faremos alguns ajustes nas configurações de rede do VirtualBox e também na VM recém criada. O que desejamos é:
  • Acessar a VM a partir de programas instalados no host, como por exemplo o terminal SSH via Putty ou cliente SFTP como WinSCP;
  • A VM (guest) deve ser capaz de acessar o mundo exterior (internet / intranet);
  • Usar IP fixo para VM, sem ter que recorrer a DHCP;
  • Não depender do modo bridge, evitando necessidade de link com hardware físico.


Para satisfazer simultaneamente estes requisitos, vamos usar 2 interfaces virtuais: uma NAT e outra Host-only. A interface NAT permitirá acesso da VM à Internet e a interface Host-only permitirá o acesso do host à VM.


4.1. No VirtualBox, em “Arquivo”, “Preferências…”, selecione “Rede” e adicione uma rede NAT com Suporte DHCP:
vbox-network2.png


4.2. Mais adiante, vamos configurar um IP estático para acessar a VM. Aproveite para anotar quais são os endereços DHCP para não gerar conflitos de IP. Ainda nas Preferências de Rede, selecione a aba “Redes Esclusivas do Hospedeiro” (Host-only) e anote os endereços DHCP:
vbox-network3.png


vbox-network4.png


4.3. Vamos adicionar as 2 interfaces de rede na VM e verificar os endereços MAC. No VirtualBox, selecione a VM, clique no botão “Configurações” e em seguida “Rede”. Verifique se o “Adaptador 1” está conectado à interface “NAT” e se o “Adaptador 2” está conectado à interface “Host-only”. Anote também o “Endereço MAC” de cada interface:
OL_06a2.png


OL_06a3.png
No caso desta instalação, ficamos com o seguinte:
NAT: Endereço MAC 0800278221BC, com a faixa de IPs 10.0.2.xxx
Host-Only: Endereço MAC 080027DE6BED, e faixa de IP 192.168.56.1xx


Passo 5 - Instalação do Oracle Linux na VM


5.1. Selecione a imagem V46135-01.iso que baixou no passo 1.2.5:
OL_01a.png


5.2. Clique no botão “Iniciar” para dar boot na VM. A janela com a tela da máquina virtual se abrirá, clique sobre ela e selecione “Install Oracle Linux 7.0”:
OL_01.png
Nota: ao cliclar sobre a tela da VM o mouse será capturado. Para retornar o mouse ao host, pressione a tecla Ctrl da direita.


5.3. O Oracle Linux 7 possui um assistente de instalação bastante intuitivo. Selecione a lingua e clique “Continuar”:
OL_02.png


5.4. Na próxima etapa, configure adequadamente um Layout de Teclado compatível com seu teclado físico, o Fuso Horário e apenas confirme o Destino da Instalação:
OL_03a.png


OL_04a.png


OL_04b.png


OL_05.png


OL_06.png


Nota: rede e hostname podem ser configurados mais adiante.


5.5. Defina uma senha para root e crie um usuário adicional. Se sua senha for considerada fraca, clique duas vezes no botão “Finalizado”:


OL_05a.png


OL_05b.png


OL_05c.png


5.6. Quando a instalação estiver completa, clique no botão “Reinicializar”:
OL_07a.png


5.7. Remova a imagem .iso do drive virtual e reinicialize novamente. No menu da janela da VM, clique em “Dispositivos” e “Remover disco do drive virtual” e depois em “Máquina” e “Reinicializar”:
OL_07b.png


OL_07c.png


5.8. Parabéns! Seu Oracle Linux está pronto para usar:
OL_08a.png

Passo 6 - Configuração básica do Oracle Linux 7


Teclado



6.1. Se você precisou alterar o layout do teclado, pode ser que tenha que configurá-lo no console também. Use:
# loadkeys us
Onde “us” é o keymap desejado.
Se deseja saber quais keymaps estão disponíveis:
# localectl list-keymaps
Para persistir a configuração:
# localectl set-keymap --no-convert us
# loadkeys us
Onde “us” é o keymap desejado. Verifique o arquivo vconsole para confirmar:
# cat /etc/vconsole.conf


Rede



6.2. Verifique se as interfaces de rede foram detectadas e os respectivos endereços MAC com:
# nmcli d
# ip addr show
Note que possui 2 interfaces de rede ethernet, conforme definimos no passo 4.3:
OL_10a.png


6.3. Uma maneira simples de configurar as interfaces de rede no Oracle Linux 7 é utilizar o utilitário NetworkManager TUI:
# nmtui
OL_09b.png


6.4. Editar as conexões. Relembrando que as informações configuradas na VM no passo 4.3 foram:
NAT: Endereço MAC 0800278221BC, com a faixa de IPs 10.0.2.xxx
Host-Only: Endereço MAC 080027DE6BED, e faixa de IP 192.168.56.1xx
Vamos usar IP estático para a interface Host-only e IP automático para a interface NAT.
OL_10b.png


OL_10c.png


OL_10e2.png


(opcional) Você pode confirmar as configurações ou mesmo editá-las manualmente direto nos arquivos de configuração:
# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s8-hostonly
UUID=f2798cfa-a38e-4d70-a657-31b07d5eb75d
ONBOOT=yes
IPADDR0=192.168.56.90
PREFIX0=24
GATEWAY0=192.168.56.1
DNS1=192.168.56.1
HWADDR=08:00:27:DE:6B:ED
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes


# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3-nat
UUID=cc72a974-df49-4cda-879f-e75cf1477272
ONBOOT=yes
HWADDR=08:00:27:82:21:BC
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes


6.5. Definir o hostname.
# nmtui
OL_10d.png


OL_10e.png


6.6. Reinicializar as interfaces de rede e testar:
# systemctl restart network
# ping public-yum.oracle.com


OL_10g.png


# hostname ; ip addr show ; hostname
OL_10f.png


6.7. Da sua máquina host, teste conexão com a VM:
C:\> ping 192.168.56.90
OL_10f.png


6.8. Desligue o firewall.
# systemctl stop firewalld


Atualize o repositório YUM



6.9. Agora que tem acesso à Internet, atualize todos os pacotes do sistema:
# yum -y update
Isso levará alguns minutos dependendo da velocidade do seu link com a Internet.


Instale utilitários básicos



6.10. Instale o unzip, nano, net-tools, traceroute e outras que achar convenientes.
# yum -y install unzip nano net-tools traceroute


Salve um Snapshot



6.11. Faça shutdown no Oracle Linux:
# shutdown now


6.12. Salve um snapshot no VirtualBox:
OL_10c.png


Passo 7 - Instalação do MySQL Comercial (Enterprise Edition)



7.1. Copie o zip de instalação do MySQL Database Commercial para o Oracle Linux (já fizemos download no item 1.3.3 com o nome de V47182-01.zip). Há várias formas de fazer isso e neste tutorial usarei o WinSCP.


# mkdir /opt/packages


OL_11a.png


# ll /opt/packages


7.2. Descompacte o .zip:
# cd /opt/packages
# unzip  V47182-01.zip


7.3. Instale a dependência Perl Data Dumper:
# yum install perl-Data-Dumper


7.4. Instale os pacotes MySQL na ordem abaixo:
# yum -y localinstall MySQL-shared-advanced*
# yum -y localinstall MySQL-shared-compat-advanced*
# yum -y localinstall MySQL-client-advanced*
# yum -y localinstall MySQL-server-advanced*


Se tudo foi como esperado, as saídas devem ser algo como:

Passo 8 - Configuração do MySQL


8.1. Note a mensagem no final da instalação do pacote *server*. Leia com atenção:
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.


You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.


...


New default config file was created as /usr/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings




You can start the MySQL daemon with:
 cd /usr ; /usr/bin/mysqld_safe &

8.2. Como descrito acima, vamos inicializar o servidor e alterar a senha aleatória padrão para root:


# cd /usr ; /usr/bin/mysqld_safe &
# cat /root/.mysql_secret
# mysql -uroot -p


mysql> SET PASSWORD = PASSWORD('root');
Query OK, 0 rows affected (0,01 sec)


mysql> exit


# mysql -uroot -p


mysql> SELECT @@version;
+---------------------------------------+
| @@version                             |
+---------------------------------------+
| 5.6.21-enterprise-commercial-advanced |
+---------------------------------------+
1 row in set (0,01 sec)


8.3. Salve um novo Snapshot. Basta repetir os passos dos itens 6.11 e 6.12.


Conclusão


Com este ambiente você poderá fazer os testes e desenvolvimentos com a edição “MySQL Enterprise”, que oferece possui alguns plug-ins adicionais, não existentes no MySQL Community.


Em próximos posts exploraremos as extensões comerciais do MySQL e também usaremos este ambiente para testar outras ferramentas.


Você pode usar este tutorial na íntegra ou apenas parte dele para facilitar a montagem do seu ambiente de desenvolvimento. Aproveite e envie comentários!


Referências