Commit 69b84b1092640c2bb33a042dc1d5908dc2d17ab4

Authored by Guilherme Andrade Del Cantoni
2 parents 8753facf 32885945

Atualização do Mysql para versão 5.7

Ajuste realizado para resolver o problema truncamento de dados caso extrapole o tamanho da coluna. (Closes #6)
1 # -*- mode: ruby -*- 1 # -*- mode: ruby -*-
2 # vi: set ft=ruby : 2 # vi: set ft=ruby :
3 -require "yaml"  
4 3
5 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 4 # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
6 VAGRANTFILE_API_VERSION = "2" 5 VAGRANTFILE_API_VERSION = "2"
7 6
8 -# Parâmetros de customização do ambiente de desenvolvimento  
9 -params = if File.exists?("Vagrantfile.conf") then YAML::load_file("Vagrantfile.conf") else {} end  
10 -params_source_dir = params["source_dir"] || "../sei"  
11 -params_memoria_vm = params["memoria_vm"] || "1024"  
12 -  
13 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 7 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
14 8
15 # Atribuição do hostname da máquina virtual 9 # Atribuição do hostname da máquina virtual
@@ -27,22 +21,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -27,22 +21,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
27 21
28 # Diretórios compartilhados com a durante a execução 22 # Diretórios compartilhados com a durante a execução
29 config.vm.synced_folder ".", "/mnt/sei/ops" 23 config.vm.synced_folder ".", "/mnt/sei/ops"
30 - config.vm.synced_folder params_source_dir, "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"] 24 + config.vm.synced_folder "../sei", "/mnt/sei/src", mount_options: ["dmode=777", "fmode=777"]
31 25
32 - # Provider-specific configuration so you can fine-tune various  
33 - # backing providers for Vagrant. These expose provider-specific options.  
34 config.vm.provider "virtualbox" do |vb| 26 config.vm.provider "virtualbox" do |vb|
35 - # vb.gui = true  
36 - # Use VBoxManage to customize the VM. For example to change memory:  
37 - vb.customize ["modifyvm", :id, "--memory", params_memoria_vm, "--usb", "off", "--audio", "none"] 27 + vb.customize ["modifyvm", :id, "--memory", "2048", "--usb", "off", "--audio", "none"]
38 end 28 end
39 29
40 - config.vm.provision "shell",  
41 - inline: <<SCRIPT  
42 - mkdir -p /mnt/sei/ops/mysql/.tmp/  
43 - cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php  
44 - cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php  
45 -SCRIPT 30 +# config.vm.provision "shell",
  31 +# inline: <<SCRIPT
  32 +# mkdir -p /mnt/sei/ops/mysql/.tmp/
  33 +# cp /mnt/sei/ops/sei/ConfiguracaoSEI.php /mnt/sei/src/sei/ConfiguracaoSEI.php
  34 +# cp /mnt/sei/ops/sei/ConfiguracaoSip.php /mnt/sei/src/sip/ConfiguracaoSip.php
  35 +#SCRIPT
46 36
47 # Provisionamento da Máquina Virtual responsável por manter os containers do Docker 37 # Provisionamento da Máquina Virtual responsável por manter os containers do Docker
48 config.vm.provision "docker" do |docker| 38 config.vm.provision "docker" do |docker|
mysql/Dockerfile
@@ -13,59 +13,15 @@ MAINTAINER PEN - Processo Eletrônico Nacional @@ -13,59 +13,15 @@ MAINTAINER PEN - Processo Eletrônico Nacional
13 13
14 ################## INICIO DA INSTALACAO ###################### 14 ################## INICIO DA INSTALACAO ######################
15 # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI 15 # Instalação do MySQL seguindo as recomendações descritas na documentação do SEI
16 -# Ref: https://processoeletronico.gov.br/projects/sei/wiki  
17 -  
18 -# Instalação do MySQL Server 5.X  
19 -RUN yum update -y && \  
20 - yum install -y mysql-server-5.* && \  
21 - yum -y clean all  
22 16
23 # Cópia dos backups dos bancos de dados do SEI e SIP 17 # Cópia dos backups dos bancos de dados do SEI e SIP
24 -#ADD .tmp/sei_mysql.sql /tmp/sei_mysql.sql  
25 -#ADD .tmp/sip_mysql.sql /tmp/sip_mysql.sql  
26 -ADD sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /tmp/sei_mysql.sql  
27 -ADD sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /tmp/sip_mysql.sql 18 +ADD sei-db-ref-executivo/mysql/sei_2_6_0_BD_Ref_Exec.sql /opt/sei_mysql.sql
  19 +ADD sei-db-ref-executivo/mysql/sip_2_6_0_BD_Ref_Exec.sql /opt/sip_mysql.sql
28 ADD my.cnf /etc/my.cnf 20 ADD my.cnf /etc/my.cnf
  21 +ADD install.sh /install.sh
29 22
30 -# Configuração da estrutura inicial do banco de dados  
31 -RUN mysql_install_db  
32 -  
33 -# Criação dos bancos de dados do sistema  
34 -RUN /etc/init.d/mysqld start && \  
35 - mysqladmin create sip && \  
36 - mysqladmin create sei  
37 -  
38 -# Criação dos usuários utilizados na conexão com SEI e SIP  
39 -RUN /etc/init.d/mysqld start && \  
40 - mysql -e "CREATE USER 'sip_user'@'%' IDENTIFIED BY 'sip_user'" sip && \  
41 - mysql -e "CREATE USER 'sei_user'@'%' IDENTIFIED BY 'sei_user'" sei && \  
42 - mysql -e "GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'%'" sip && \  
43 - mysql -e "GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'%'" sei  
44 -  
45 -# Restauração dos bancos de dados  
46 -RUN /etc/init.d/mysqld start && cd /tmp && \  
47 - mysql sei < sei_mysql.sql && \  
48 - mysql sip < sip_mysql.sql && \  
49 - rm -f /tmp/sei_mysql.sql /tmp/sip_mysql.sql  
50 -  
51 -# Atualização dos parâmetros do SEI e do SIP  
52 -RUN /etc/init.d/mysqld start && \  
53 - mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sip && \  
54 - mysql -e "update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP';" sip && \  
55 - mysql -e "update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip && \  
56 - mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sei  
57 -  
58 -# Temp: Remove registros de auditoria presentes na base de referência  
59 -RUN /etc/init.d/mysqld start && \  
60 - mysql -e "delete from auditoria_protocolo;" sei  
61 -  
62 -# Configuração para utilizar autenticação nativa do SEI/SIP  
63 -RUN /etc/init.d/mysqld start && \  
64 - mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip  
65 -  
66 -# Atribuição de permissões de acesso externo para o usuário root, senha root  
67 -RUN /etc/init.d/mysqld start && \  
68 - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;" 23 +# Instalação do MySQL 5.7 e demais componentes
  24 +RUN bash install.sh
69 25
70 ##################### FIM DA INSTALACAO ##################### 26 ##################### FIM DA INSTALACAO #####################
71 27
mysql/install.sh 0 → 100644
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
  1 +#!/usr/bin/env bash
  2 +
  3 +set -e
  4 +set -u
  5 +set -o pipefail
  6 +
  7 +yum update -y
  8 +
  9 +# Instalar o yum repo rpm package
  10 +yum install -y wget
  11 +wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
  12 +yum localinstall -y mysql57-community-release-el6-7.noarch.rpm
  13 +
  14 +# Instalação do MySQL Server 5.X
  15 +yum install -y mysql-community-server
  16 +
  17 +# Inicialização do diretório de armazenamento do MySQL.
  18 +# PS: Utilizando configuração insegura apenas para propósito de desenvolvimento
  19 +rm -rf /var/lib/mysql/*
  20 +chown -R mysql:mysql /var/lib/mysql
  21 +mysqld --user=mysql --initialize-insecure
  22 +
  23 +# Inicialização do banco de dados
  24 +/etc/init.d/mysqld start
  25 +
  26 +# Criação dos bancos de dados do sistema
  27 +mysqladmin create sip
  28 +mysqladmin create sei
  29 +
  30 +# Criação dos usuários utilizados na conexão com SEI e SIP
  31 +mysql -e "CREATE USER 'sip_user'@'%' IDENTIFIED BY 'sip_user'" sip
  32 +mysql -e "CREATE USER 'sei_user'@'%' IDENTIFIED BY 'sei_user'" sei
  33 +mysql -e "GRANT ALL PRIVILEGES ON sip.* TO 'sip_user'@'%'" sip
  34 +mysql -e "GRANT ALL PRIVILEGES ON sei.* TO 'sei_user'@'%'" sei
  35 +
  36 +# Restauração dos bancos de dados
  37 +mysql sei < /opt/sei_mysql.sql
  38 +mysql sip < /opt/sip_mysql.sql
  39 +rm -f /opt/sei_mysql.sql /opt/sip_mysql.sql
  40 +
  41 +# Atualização dos parâmetros do SEI e do SIP
  42 +mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sip
  43 +mysql -e "update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP';" sip
  44 +mysql -e "update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip
  45 +mysql -e "update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0;" sei
  46 +
  47 +# Temp: Remove registros de auditoria presentes na base de referência
  48 +mysql -e "delete from auditoria_protocolo;" sei
  49 +
  50 +# Configuração para utilizar autenticação nativa do SEI/SIP
  51 +mysql -e "update orgao set sin_autenticar='N' where id_orgao=0;" sip
  52 +
  53 +# Atribuição de permissões de acesso externo para o usuário root, senha root
  54 +mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;"
  55 +
  56 +yum clean -y all
  57 +
  58 +
  59 +exit 0
1 [mysqld] 1 [mysqld]
  2 +#
  3 +# Remove leading # and set to the amount of RAM for the most important data
  4 +# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  5 +# innodb_buffer_pool_size = 128M
  6 +#
  7 +# Remove leading # to turn on a very important data integrity option: logging
  8 +# changes to the binary log between backups.
  9 +# log_bin
  10 +#
  11 +# Remove leading # to set options mainly useful for reporting servers.
  12 +# The server defaults are faster for transactions and fast SELECTs.
  13 +# Adjust sizes as needed, experiment to find the optimal values.
  14 +# join_buffer_size = 128M
  15 +# sort_buffer_size = 2M
  16 +# read_rnd_buffer_size = 2M
2 datadir=/var/lib/mysql 17 datadir=/var/lib/mysql
3 socket=/var/lib/mysql/mysql.sock 18 socket=/var/lib/mysql/mysql.sock
4 -user=mysql 19 +
  20 +# Disabling symbolic-links is recommended to prevent assorted security risks
5 symbolic-links=0 21 symbolic-links=0
6 -sql-mode=STRICT_TRANS_TABLES 22 +
7 max_allowed_packet=268435456 23 max_allowed_packet=268435456
8 24
9 -[mysqld_safe]  
10 log-error=/var/log/mysqld.log 25 log-error=/var/log/mysqld.log
11 pid-file=/var/run/mysqld/mysqld.pid 26 pid-file=/var/run/mysqld/mysqld.pid
12 -