Commit 398e73bf09bb805f37fb88a82ae6c7937aceb4ca
1 parent
e0946125
Exists in
master
Documentação básica de uso no sei-vagrant.
Showing
1 changed file
with
186 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,186 @@ |
| 1 | +#Ambiente de Desenvolvimento - Vagrant | |
| 2 | + | |
| 3 | +O objetivo dessa documentação é descrever os procedimentos para preparar um ambiente de desenvolvimento ou testes do SEI de forma rápida e padronizada através do Vagrant. Essa ferramenta permite que seja provisionado automaticamente todo um ambiente funcional na máquina de trabalho do desenvolvedor, sem que seja necessário a instalação de servidores de aplicação e banco de dados pelo mesmo. Outra vantagem é que esse ambiente é completamente provisionado utilizando máquinas virtuais, necessitando que o desenvolvedor apenas configure sua IDE ou editor de texto preferido. | |
| 4 | + | |
| 5 | +Antes, gostariamos de reforçar a necessidade que todo o desenvolvimento esteja alinhado com as diretivas e padrões de interface, codificação php e modelagem de banco de dados utilizados pelo SEI. A documentação dos padrões estão disponíveis na comunidade do SEI: | |
| 6 | + | |
| 7 | +* Documentação Técnica do SEI | |
| 8 | +* Padrão de Codificação PHP | |
| 9 | +* Padrão de Modelagem de Dados | |
| 10 | + | |
| 11 | +Outra fator importante de ser feito, antes do início dos trabalhos de desenvolvimento, é a indicação da demanda previamente aprovada (Lista de Demandas do Projeto), juntamente com a Especificação de Requisitos, para avaliação, revisão e aprovação do Comitê Gestor. De acordo com o padrão trabalho estabelecido, todos as novas funcionalidades que serão implementadas no SEI precisarão de uma aprovação prévia do Comitê Gestor para que possam ser implementadas e, posteriormente, homologadas e integradas ao sistema. | |
| 12 | + | |
| 13 | +Voltando para à configuração do ambiente de desenvolvimento, as tecnologias utilizadas nesse trabalho foram as listadas abaixo. Sugerimos uma breve leitura de suas documentações para melhor entendimento. | |
| 14 | + | |
| 15 | +* Virtual Box - https://www.virtualbox.org/ | |
| 16 | +* Vagrant - https://www.vagrantup.com/ | |
| 17 | +* Git - https://git-scm.com/ | |
| 18 | + | |
| 19 | +Outros recursos para melhor entendimento das tecnologias citadas acima: | |
| 20 | + | |
| 21 | +* http://friendsofvagrant.github.io/v1/docs/getting-started/index.html | |
| 22 | +* https://www.youtube.com/watch?v=zg4EMgcb6H8 | |
| 23 | +* http://pt.slideshare.net/RenanMartinsPimentel/vagrant-26647815 | |
| 24 | +* http://pt.slideshare.net/rogeriopradoj/desenvolvimento-php-com-vagrant-15511228 | |
| 25 | + | |
| 26 | +Em resumo, o Vagrant é uma ferramenta que permite a construção de máquinas virtuais para desenvolvimento sem que seja necessário a instalação de todos os componentes da infraestrutura (banco de dados, bibliotecas, servidores web, etc) na máquina do desenvolvedor. Entre as vantagens em sua utilização estão: | |
| 27 | + | |
| 28 | +* Rápido início do projeto de desenvolvimento ou testes por parte do desenvolvedor; | |
| 29 | +* Padronização do ambiente de desenvolvimento (versões de bibliotecas, banco de dados, servidores de aplicação, etc.); | |
| 30 | +* Foco nas tarefas de desenvolvimento, e não em questões relacionadas à configuração do ambiente. | |
| 31 | + | |
| 32 | +O Vagrant trabalha com o conceito de Box, basicamente uma "imagem/iso" para se criar a instância da máquina virtual, onde é definido o sistema operacional e os demais componentes da solução. Para o projeto SEI, foi disponibilizado livremente uma Box contendo todo a ambiente funcional do SEI e seus componentes (SEI, SIP, JOD, Apache Solr), tirando a necessidade do desenvolvedor realizar toda a configuração do sistema e poder se focar apenas no desenvolvimento. | |
| 33 | + | |
| 34 | +Para configurar o ambiente, será necessário a instalação dos seguintes pré-requisitos: | |
| 35 | + | |
| 36 | +* **VirtualBox** | |
| 37 | +Download: https://www.virtualbox.org/wiki/Download_Old_Builds_4_3 | |
| 38 | + | |
| 39 | +* **VirtualBox Extensions** | |
| 40 | +Download: http://download.virtualbox.org/virtualbox/4.3.30/Oracle_VM_VirtualBox_Extension_Pack-4.3.30-101610.vbox-extpack | |
| 41 | + | |
| 42 | +* **Vagrant** | |
| 43 | +Download: https://www.vagrantup.com/downloads.html | |
| 44 | + | |
| 45 | +* **Git** | |
| 46 | +Download: https://git-scm.com/downloads | |
| 47 | + | |
| 48 | +Todos os componentes acima precisam ser instalados na máquina de desenvolvimento, prestando atenção nas seguintes considerações: | |
| 49 | + | |
| 50 | +O VirtualBox Extensions é instalado dentro do VirtualBox, acessando o menu File > Preferences > Extensions. Sugerimos a instalação do Git com a funcionalidade GitBash ativado. Essa ativação é feita pelo Wizard de instalação do software e ele permitirá o acesso direto ao prompt de comando das máquinas virtuais Linux, caso necessário. | |
| 51 | + | |
| 52 | +Feito a instalação dos pré-requisitos, siga os passos abaixo para ativar o ambiente virtual do SEI: | |
| 53 | + | |
| 54 | + | |
| 55 | +##CONFIGURAÇÃO DO AMBIENTE | |
| 56 | + | |
| 57 | +### 1) Via prompt de comandos, navegue até o diretório onde está contido os códigos-fontes do SEI. | |
| 58 | + | |
| 59 | +O diretório é o mesmo disponibilizado para instalação e dentro dele deve conter os seguintes diretórios: | |
| 60 | + | |
| 61 | + /sei | |
| 62 | + /sip | |
| 63 | + /infra_php | |
| 64 | + /infra_css | |
| 65 | + /infra_js | |
| 66 | + | |
| 67 | +Esses arquivos serão compartilhados para dentro das máquinas virtuais criada pelo Vagrant para ativação do sistema. | |
| 68 | +Com isso, as alterações feitas diretamente nos arquivos php durante do desenvolvimento refletirão de forma automática no ambiente que estará disponível em http://localhost/sei | |
| 69 | + | |
| 70 | +### 2) Realizar a configuração inicial do Box do Vagrant/VirtualBox | |
| 71 | + | |
| 72 | +No diretório citado anteriormente, execute o seguinte comando: | |
| 73 | + | |
| 74 | + vagrant init processoeletronico/sei-2.6.0 | |
| 75 | + | |
| 76 | +Esse comando irá criar uma arquivo de configuração iniciar para o vagrant contendo a referência para o BOX do SEI completamente configurado. Ao final da execução, um arquivo chamado Vagrantfile deverá estar presente no diretório atual. | |
| 77 | + | |
| 78 | +Outra alternativa para configuração pode ambiente pode ser realizada pelos scripts utilitários criados no ambiente colaborativo. Vide seção INFORMAÇÕES ADICIONAIS >> 2) Scritps utilitários .bat. | |
| 79 | + | |
| 80 | +### 3) Iniciar o Ambiente de Desenvolvimento Virtualizado | |
| 81 | + | |
| 82 | +No mesmo diretório, execute o comando : | |
| 83 | + | |
| 84 | +vagrant up | |
| 85 | + | |
| 86 | +Esse comando irá iniciar a construção do ambiente de desenvolvimento começando pelo download da Box processoeletronico/sei-2.6.0 contendo todo o ambiente preparado para o desenvolvimento. | |
| 87 | + | |
| 88 | +É normal que a primeira execução desse comando demore vários minutos para ser concluído, pois a imagem/box, com cerca de 2GB, será baixada para a máquina de desenvolvimento. Após o fim da transferência, o ambiente estará disponível em questão de minutos. | |
| 89 | + | |
| 90 | +Após a conclusão do primeiro provisionamento, o ambiente poderá ser destruído e recriado rapidamente já que vagrant armazenará a BOX/Imagem de referência em seu cache. | |
| 91 | + | |
| 92 | +Ao final da inicialização do ambiente de desenvolvimento, será apresentada a seguinte mensagem abaixo indicando que todos os serviços do SEI já estão em operação na máquina de desenvolvimento. A mensagem é : | |
| 93 | + | |
| 94 | + ===> default: sei_db | |
| 95 | + ===> default: sei_solr | |
| 96 | + ===> default: sei_jod | |
| 97 | + ===> default: sei_www | |
| 98 | + | |
| 99 | +### 4) Testar a Aplicação | |
| 100 | + | |
| 101 | +**SEI** | |
| 102 | +Após a finalização do provisionamento do ambiente e a apresentação das mensagens acima, o SEI estará disponível para testes na máquina local de desenvolvimento através do acesso ao endereço http://localhost/sei. O usuário para acesso será o login: teste / senha: teste, o mesmo configurado na base inicial do sistema. | |
| 103 | + | |
| 104 | +Importante mencionar que o sistema que está rodando nesse endereço se baseia exatamente no código-fonte do SEI presente na diretório onde foi executado o comando vagrant up. A alteração feita no código-fonte do sistema poderá ser visto instantaneamente no sei através de um simples Refresh no browser do desenvolvedor. | |
| 105 | + | |
| 106 | +**SIP** | |
| 107 | +Da mesma forma como descrito anteriormente, o sip estará disponível no endereço http://localhost/sip e o usuário de acesso será o login: teste / senha: teste, o mesmo configurado na base inicial do sistema. | |
| 108 | + | |
| 109 | +**Banco de dados MySQL** | |
| 110 | +O componente chamado sei_db , apresentado logo após o provisionamento do ambiente, se refere ao serviço de banco de dados do MySQL que estará acessível na máquina local através da portal 3306. O banco de dados poderá ser acesso pelo MySQL Workbench ou qualquer outra ferramenta de conexão á banco de dados. Este serviço estará com os 2 bancos de dados utilizados pelo SEI (sei e sip) e poderá ser acessados com os seguintes usuários: | |
| 111 | + | |
| 112 | + Usuário Root do MySQL: login:root / senha:root | |
| 113 | + Usuário da Base de Dados do SEI: login: sei_user / senha: sei_user | |
| 114 | + Usuário da Base de Dados do SIP: login: sip_user / senha: sip_user | |
| 115 | + | |
| 116 | + Ex: mysql -h 127.0.0.1 -u root -p sei | |
| 117 | + | |
| 118 | +**Apache Solr** | |
| 119 | +O Apache Solr também estará disponível para testes e poderá ser acessado pelo endereço http://localhost:8983/solr | |
| 120 | + | |
| 121 | +**JOD Converter** | |
| 122 | +O JOD Converter também estará disponível para testes e poderá ser acesso pelo enderelo http://localhost:8080 | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | +##INFORMAÇÕES ADICIONAIS | |
| 127 | + | |
| 128 | +A operação do ambiente de desenvolvimento virtualizado pelo vagrant poderá ser feito de 2 formas: | |
| 129 | + | |
| 130 | +#### 1) Comandos Básicos do Vagrant | |
| 131 | +Os seguintes comandos poderão ser executados no diretório onde está localizado o código-fonte do SEI para ligar e desligar o ambiente: | |
| 132 | + | |
| 133 | + vagrant up | |
| 134 | + | |
| 135 | +Responsável por inicializar as máquina virtuais e gerenciar o redirecionamento dos serviços para VM para à máquina local de desenvolvimento. Caso não exista nenhum ambiente previamente configurado na máquina local, ele também se encarregará de fazer toda a instalação e provisionamento da máquina virtual. | |
| 136 | + | |
| 137 | + vagrant halt | |
| 138 | + | |
| 139 | +Responsável por desligar as máquina virtuais desligar todos os serviços em execução. | |
| 140 | + | |
| 141 | + vagrant reload | |
| 142 | + | |
| 143 | +Reinicia todo o ambiente de desenvolvimento e sua máquina virtual. | |
| 144 | + | |
| 145 | + vagrant destroy | |
| 146 | + | |
| 147 | +Como o nome diz, destroi todo o ambiente de desenvolvimento utilizado até o momento, apagando todas as informações persistidas no banco de dados. A simples execução do comando vagrant up reconstrói um novo ambiente limpo para o sistema SEI. | |
| 148 | + | |
| 149 | +#### 2) Scritps utilitários .bat | |
| 150 | +Para simplificar a operação do ambiente virtual no Windows, o NeiJobson/Anatel criou os seguintes scripts .bat que estão disponíveis no ambiente colaborativo do SEI (https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/tree/master). Eles poderão ser baixados e copiados para o diretório onde está o código-fonte do sistema, cada um com as seguintes funções: | |
| 151 | + | |
| 152 | + | |
| 153 | +---------- | |
| 154 | + | |
| 155 | + | |
| 156 | + provisionar_VM_Dev_Localhost_SEI.bat | |
| 157 | + | |
| 158 | +Responsável por criar a configuração inicial do ambiente de desenvolvimento do SEI (vagrantfile). Semelhante ao comando vagrant init processoeletronico/sei-2.6.0 | |
| 159 | +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/provisionar_VM_Dev_Localhost_SEI.bat | |
| 160 | + | |
| 161 | + | |
| 162 | +---------- | |
| 163 | + | |
| 164 | + | |
| 165 | + iniciar_VM_Dev_Localhost_SEI.bat | |
| 166 | + | |
| 167 | +Responsável por inicializar as máquina virtuais e gerenciar o redirecionamento dos serviços para VM para à máquina local de desenvolvimento. Caso não exista nenhum ambiente previamente configurado na máquina local, ele também se encarregará de fazer toda a instalação e provisionamento da máquina virtual. Semelhando ao comando vagrant up | |
| 168 | +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/iniciar_VM_Dev_Localhost_SEI.bat | |
| 169 | + | |
| 170 | + | |
| 171 | +---------- | |
| 172 | + | |
| 173 | + | |
| 174 | + parar_VM_Dev_Localhost_SEI.bat | |
| 175 | + | |
| 176 | +Responsável por desligar as máquina virtuais desligar todos os serviços em execução. Semelhante ao comando vagrant halt | |
| 177 | +Download:https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/parar_VM_Dev_Localhost_SEI.bat | |
| 178 | + | |
| 179 | + | |
| 180 | +---------- | |
| 181 | + | |
| 182 | + | |
| 183 | + destruir_VM_Dev_Localhost_SEI.bat | |
| 184 | + | |
| 185 | +Como o nome diz, destroi todo o ambiente de desenvolvimento utilizado até o momento, apagando todas as informações persistidas no banco de dados. A simples execução do comando vagrant up reconstrói um novo ambiente limpo para o sistema SEI. Semelhante ao comando vagrant destroy. | |
| 186 | +Download: https://softwarepublico.gov.br/gitlab/sei/sei-vagrant/raw/master/destruir_VM_Dev_Localhost_SEI.bat | ... | ... |