UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

15
INICIANDO OS TRABALHOS Wagner Bianchi Certified MySQL 5.0 Developer Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator

description

Material utilizado em Workshop para a turma de Ciência da Computação da Universidade Federal de Alfenas.

Transcript of UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Page 1: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

INICIANDO OS TRABALHOS

Wagner Bianchi Certified MySQL 5.0 Developer

Certified MySQL 5.0 Database Administrator Certified MySQL 5.1 Cluster Database Administrator

Page 2: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Para iniciarmos... !   Preparação do ambiente de bancos de dados:

–  Criar máquinas virtuais com o Vagrant •  O que é o Vagrant? •  Quais são as características do Vagrant? •  Por utilizamos e quais as vantagens do Vagrant? •  Subindo um novo projeto com o Vagrant!

–  Configurando o servidor de bancos de dados MySQL 5.6 •  Baixando o arquivo do banco de dados World; •  Fazendo o restore da versão *InnoDB do db World; •  Trabalhando uma instalação segura do MySQL 5.6;

–  Instalando software adicionais (repositório EPEL) •  Iptraf, innotop, htop, ...

Page 3: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Page 4: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

O que é o Vagrant? !   O Vagrant é um software de virtualização que executa seus

serviços com base no driver de virtualização do VirtualBox e/ou VMWare;

!   É baseado em script escritos em Ruby e permite obter máquinas virtuais com as mesmas características de servidores de produção;

!   Basta instalar o Vagrant, adicionar um box, adicionar características da VM a um arquivo de configuração e subir a máquina com um comando “vagrant up”...

Page 5: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Vantagens de se utilizar o Vagrant... !   Podemos subir máquinas virtuais a partir de um script que:

–  Podemos manter todos os projetos de VMs em projetos; –  Adiciona as mesma características de máquinas de produção; –  Fácil de controlar se status com comandos up | suspend | halt; –  Interage com o mesmo hypervisor do VirtualBox; –  Conta com uma lista online dos principais SOs;

!   A sequência é: –  Adicione o box que está disponível em uma URL (file | http); –  Crie o projeto e dentro desse projeto: vagrant init –  Edite o arquivo de configuração Vagrantfile; –  Envie o comando vagrant up ...

Page 6: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Subindo um novo projeto com o Vagrant! !   Verificamos os boxes disponíveis no Vagrant !   Criarmos um novo projeto e enviamos um vagrant init

!   O comando vagrant init criará um arquivo de configuração chamado Vagrantfile o qual editaremos para que nossa máquina virtual tenha as características que precisamos;

# vagrant box list!

# mkdir /opt/mysql56!# cd /opt/mysql56!# vagrant init!

Page 7: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

# -*- mode: ruby -*-!# vi: set ft=ruby :!!VAGRANTFILE_API_VERSION = "2"!!Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|! config.vm.provision "shell", path: "setup_env.sh"! config.vm.define "mysql01" do |mysql01|! mysql01.vm.box = "centos65-x86_64"! mysql01.vm.network "public_network" ! mysql01.vm.network :forwarded_port, guest: 22, host: 1433! end!end!

Subindo um novo projeto com o Vagrant! Vagrantfile – arquivo de configuração das VMs de nosso projeto...

Page 8: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Subindo um novo projeto com o Vagrant! !   Adicionamos um script para ser executado em meio a

instalação da máquina virtual – o Vagrant roda esse script;

!   Agora basta subir a máquina: vagrant up!!   Observe os logs no terminal...

#!/bin/bash!sudo yum -y install wget vim!sudo rpm -Uvi https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm!sudo yum-config-manager --enable mysql56-community!sudo yum -y install mysql-server!sudo service mysqld start!

Page 9: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Máquina Virtual pronta! !   Após subir a máquina virtual com o Vagrant:

–  O encaminhamento já foi criado, portas configuradas; –  O acesso via ssh com criptografia de chaves também criado; –  Já podemos acessar a máquina com um simples:

!   Algumas configurações demandadas: –  Verificar o status do MySQL; –  Alterar o nome do servidor Linux para mysql56; –  Reiniciar a máquina virtual através do Vagrant.

# vagrant ssh mysql56!

Page 10: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Máquina Virtual pronta! !   Acessando a máquina recém criada:

!   Alterando o nome da máquina recém criada:

!   Reiniciando a máquina pelo Vagrant:

# vagrant ssh mysql56!

# sudo -i!# vi /etc/sysconfig/network!HOSTNAME=mysql56!# exit!# exit!

# vagrant halt mysql56!==> mysql56: Attempting graceful shutdown of VM...!# vagrant up mysql56!

Page 11: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)
Page 12: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Verificando o MySQL 5.6 !   Ao instalar o MySQL 5.6, o próximo passo é executar os

procedimentos que vão garantir a segurança dos bancos;

!   Agora o root tem uma senha e é com esta senha (123456) que trabalharemos daqui para frente;

# vagrant ssh mysql56!Last login: Sun Aug 31 14:49:59 2014 from 10.0.2.2![vagrant@mysql56 ~]$ sudo -i![root@mysql56 ~]# mysql_secure_instalation !

Page 13: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Baixando o instalando o db World! !   Na linha de comando, no diretório /root, faça o download do

arquivo do banco de dados World: [root@mysql56 ~]# wget http://downloads.mysql.com/docs/world_innodb.sql.zip![...]![root@mysql56 ~]# ls -lh!total 92K!-rw-r--r-- 1 root root 90K Aug 31 14:28 world_innodb.sql.zip![root@mysql56 ~]# unzip world_innodb.sql.zip!Archive: world_innodb.sql.zip! inflating: world_innodb.sql!!

Page 14: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

Baixando o instalando o db World! !   Fazendo restore com o mysql client: #: criamos um banco de dados![root@mysql56 ~]# mysql -u root -p -e "create database world"!Enter password:!!#: fazemos o restore do banco através do arquivo![root@mysql56 ~]# time mysql -u root -p world < world_innodb.sql!Enter password:!!real !0m25.820s!user !0m0.322s!sys !0m0.252s!

Page 15: UNIFAL - MySQL & Vagrant (iniciando os trabalhos)

FIM