Skip to content

Commit

Permalink
Versao com balanceador e https e mais um monte de coisas, ver nota de…
Browse files Browse the repository at this point in the history
… release
  • Loading branch information
marlinhares committed May 3, 2021
1 parent 86b00c6 commit 09cf9d0
Show file tree
Hide file tree
Showing 13 changed files with 493 additions and 58 deletions.
116 changes: 109 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,22 @@ EXISTE_LOCAL_FONTES := $(shell docker volume ls | grep $(VOLUME_FONTES) )
EXISTE_LOCAL_ARQUIVOS_EXTERNOS := $(shell docker volume ls | grep $(VOLUME_ARQUIVOSEXTERNOS) )
EXISTE_LOCAL_SOLR := $(shell docker volume ls | grep $(VOLUME_SOLR) )

qtd := "2"

DIR := ${CURDIR}
COMMMADCOMPOSE = docker-compose -f orquestrators/docker-compose/docker-compose.yml

help: ## Lista de comandos disponiveis e descricao. Voce pode usar TAB para completar os comandos
@fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//'


criar_volumes: criar_volume_fontes criar_volume_banco criar_volume_arquivos_externos criar_volume_solr
criar_volumes: criar_volume_fontes criar_volume_certs criar_volume_banco criar_volume_arquivos_externos criar_volume_solr

criar_volume_fontes: ## Monte o volume docker com os fontes que serao consumidos pelo projeto
docker run --rm -v $(LOCALIZACAO_FONTES_SEI):/source -v $(VOLUME_FONTES):/opt -w /source alpine sh -c "cp -R infra sei sip /opt/"

criar_volume_certs: ## Monte o volume docker com os certs que serao consumidos pelo projeto
docker run --rm -v ${CURDIR}/orquestrators/docker-compose/cert0.pem:/cert0.pem -v $(LOCALIZACAO_CERTS):/source -v $(VOLUME_CERTS):/certs -w /source alpine sh -c "cp /cert0.pem /certs/"


criar_volume_banco: ## Monte o volume docker com os fontes que serao consumidos pelo projeto
Expand Down Expand Up @@ -46,10 +51,86 @@ endif

build_docker_compose: ## Construa o docker-compose.yml baseado no arquivo envlocal.env
rm -f orquestrators/docker-compose/docker-compose.yml

envsubst < orquestrators/docker-compose/docker-compose-template.yml > orquestrators/docker-compose/docker-compose.yml


ifeq ("$(APP_PORTA_80_MAP_EXPOR)", "true")
sed -i'' -e "s|#ports:|ports:|" orquestrators/docker-compose/docker-compose.yml

ifneq ("$(APP_PORTA_80_MAP_EXPOR)", "")
sed -i'' -e "s|# - $(APP_PORTA_80_MAP)| - $(APP_PORTA_80_MAP)|" orquestrators/docker-compose/docker-compose.yml
else
sed -i'' -e "|# - $(APP_PORTA_80_MAP)|d" orquestrators/docker-compose/docker-compose.yml
endif
sed -i'' -e "s|nada|nada|" orquestrators/docker-compose/docker-compose.yml
endif

ifeq ("$(APP_PORTA_443_MAP_EXPOR)", "true")
sed -i'' -e "s|#ports:|ports:|" orquestrators/docker-compose/docker-compose.yml

ifneq ("$(APP_PORTA_443_MAP_EXPOR)", "")
sed -i'' -e "s|# - $(APP_PORTA_443_MAP)| - $(APP_PORTA_443_MAP)|" orquestrators/docker-compose/docker-compose.yml
else
sed -i'' -e "|# - $(APP_PORTA_443_MAP)|d" orquestrators/docker-compose/docker-compose.yml
endif
sed -i'' -e "s|nada|nada|" orquestrators/docker-compose/docker-compose.yml
endif

ifeq ("$(APP_PROTOCOLO)", "https")
sed -i'' -e "s|#- EXCLUDE_PORTS=80|- EXCLUDE_PORTS=80|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|#- EXTRA_ROUTE_SETTINGS=ssl verify none|- EXTRA_ROUTE_SETTINGS=ssl verify none|" orquestrators/docker-compose/docker-compose.yml
endif
ifeq ("$(APP_PROTOCOLO)", "http")
sed -i'' -e "s|#- EXCLUDE_PORTS=443|- EXCLUDE_PORTS=443|" orquestrators/docker-compose/docker-compose.yml
endif

ifeq ("$(BALANCEADOR_PRESENTE)", "true")
sed -i'' -e "s|#balanceador:|balanceador:|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# image: dockercloud/haproxy| image: dockercloud/haproxy|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# links:| links:|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - app| - app|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - solr| - solr|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# environment:| environment:|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - EXTRA_FRONTEND_SETTINGS_80=use_backend stats if { path_beg -i /haproxy }, acl is_root path -i /, redirect code 301 location http://${APP_HOST}/sei/ if is_root| - EXTRA_FRONTEND_SETTINGS_80=use_backend stats if { path_beg -i /haproxy }, acl is_root path -i /, redirect code 301 location http://${APP_HOST}/sei/ if is_root|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - EXTRA_FRONTEND_SETTINGS_443=use_backend stats if { path_beg -i /haproxy }, acl is_root path -i /, redirect code 301 location http://${APP_HOST}/sei/ if is_root| - EXTRA_FRONTEND_SETTINGS_443=use_backend stats if { path_beg -i /haproxy }, acl is_root path -i /, redirect code 301 location http://${APP_HOST}/sei/ if is_root|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - CERT_FOLDER=/certs| - CERT_FOLDER=/certs|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# volumes_from:| volumes_from:|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - storage-certs| - storage-certs|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# volumes:| volumes:|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# - /var/run/docker.sock:/var/run/docker.sock| - /var/run/docker.sock:/var/run/docker.sock|g" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|nada|nada|" orquestrators/docker-compose/docker-compose.yml
endif

ifeq ("$(JOD_PRESENTE)", "true")
sed -i'' -e "s|#jod: #servicejod|jod: #servicejod|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|# image: ${DOCKER_IMAGE_JOD} #servicejod| image: ${DOCKER_IMAGE_JOD} #servicejod|" orquestrators/docker-compose/docker-compose.yml
sed -i'' -e "s|#- jod:jod #servicejod|- jod:jod #servicejod|g" orquestrators/docker-compose/docker-compose.yml
endif

ifeq ("$(BALANCEADOR_PRESENTE)", "true")

ifeq ("$(BALANCEADOR_PORTA_80_MAP_EXPOR)", "true")
sed -i'' -e "s|# ports:| ports:|" orquestrators/docker-compose/docker-compose.yml
ifneq ("$(BALANCEADOR_PORTA_80_MAP_EXPOR)", "")
sed -i'' -e "s|# - $(BALANCEADOR_PORTA_80_MAP)| - $(BALANCEADOR_PORTA_80_MAP)|" orquestrators/docker-compose/docker-compose.yml
else
sed -i'' -e "|# - $(BALANCEADOR_PORTA_80_MAP)|d" orquestrators/docker-compose/docker-compose.yml
endif
endif

ifeq ("$(BALANCEADOR_PORTA_443_MAP_EXPOR)", "true")
sed -i'' -e "s|# ports:| ports:|" orquestrators/docker-compose/docker-compose.yml
ifneq ("$(BALANCEADOR_PORTA_443_MAP_EXPOR)", "")
sed -i'' -e "s|# - $(BALANCEADOR_PORTA_443_MAP)| - $(BALANCEADOR_PORTA_443_MAP)|" orquestrators/docker-compose/docker-compose.yml
else
sed -i'' -e "|# - $(BALANCEADOR_PORTA_443_MAP)|d" orquestrators/docker-compose/docker-compose.yml
endif
endif

endif


run: ## roda na sequencia build_docker_compose e up -d

ifeq ("$(EXISTE_LOCAL_DB)", "")
Expand All @@ -70,35 +151,56 @@ else
$(COMMMADCOMPOSE) up -d
endif

scale: ## escala os nohs de aplicacao do SEI para 2. Caso vc queira mais de 2 basta usar o comando make qtd=3 scale, substituindo o 3 pelo numero desejado, ou o comando docker-compose scale app=x na pasta orquestrators/docker-compose

@echo "escala os nohs de aplicacao do SEI para 2. Caso vc queira mais de 2 basta usar o comando make qtd=3 scale, substituindo o 3 pelo numero desejado, ou o comando docker-compose scale app=3 na pasta orquestrators/docker-compose"


ifeq ("$(BALANCEADOR_PRESENTE)", "true")
$(COMMMADCOMPOSE) scale app=$(qtd)
else
echo "Scale nao efetuado. Precisa de um balanceador"
endif


stop: ## docker-compose stop e docker-compose rm -f
make build_docker_compose
$(COMMMADCOMPOSE) stop
$(COMMMADCOMPOSE) rm -f

logs: ## docker-compose logs -f pressione ctrol+c para sair
$(COMMMADCOMPOSE) logs -f

logs_app: ## docker-compose logs -f app pressione ctrol+c para sair
$(COMMMADCOMPOSE) logs -f app

logs_app-atualizador: ## docker-compose logs -f app pressione ctrol+c para sair
$(COMMMADCOMPOSE) logs -f app-atualizador

clear: ## para o projeto e remove tds os volumes criados
make stop
$(COMMMADCOMPOSE) down -v

apagar_volumes:
make apagar_volume_fontes
make apagar_volume_certs
make apagar_volume_banco
make apagar_volume_arquivos_externos
make apagar_volume_solr


apagar_volume_fontes: ## Monte o volume docker com os fontes que serao consumidos pelo projeto
docker volume rm $(VOLUME_FONTES)
docker volume rm $(VOLUME_FONTES) || true

apagar_volume_certs: ## Monte o volume docker com os fontes que serao consumidos pelo projeto
docker volume rm $(VOLUME_CERTS) || true

apagar_volume_banco: ## Apagar volume do banco
docker volume rm $(VOLUME_DB)
docker volume rm $(VOLUME_DB) || true

apagar_volume_arquivos_externos: ## Apagar volume Arquivos Externos
docker volume rm $(VOLUME_ARQUIVOSEXTERNOS)
docker volume rm $(VOLUME_ARQUIVOSEXTERNOS) || true

apagar_volume_solr: ## Apagar volume Solr
docker volume rm $(VOLUME_SOLR)
docker volume rm $(VOLUME_SOLR) || true


2 changes: 1 addition & 1 deletion containeres/app/files/conf/ConfiguracaoSEI.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public function getArrConfiguracoes(){
'PaginaLogin' => getenv('APP_PROTOCOLO').'://'.getenv('APP_HOST').'/sip/login.php',
'SipWsdl' => getenv('APP_PROTOCOLO').'://'.getenv('APP_HOST').'/sip/controlador_ws.php?servico=sip',
'ChaveAcesso' => getenv('APP_SEI_CHAVE_ACESSO'),
'https' => false),
'https' => (getenv('APP_PROTOCOLO') == 'https' ? true : false)),

'BancoSEI' => array(
'Servidor' => 'db',
Expand Down
2 changes: 1 addition & 1 deletion containeres/app/files/conf/ConfiguracaoSip.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public function getArrConfiguracoes(){
'PaginaLogin' => getenv('APP_PROTOCOLO').'://'.getenv('APP_HOST').'/sip/login.php',
'SipWsdl' => getenv('APP_PROTOCOLO').'://'.getenv('APP_HOST').'/sip/controlador_ws.php?servico=sip',
'ChaveAcesso' => getenv('APP_SIP_CHAVE_ACESSO'), //ATEN��O: gerar uma nova chave para o SIP ap�s a instala��o (ver documento de instala��o)
'https' => false),
'https' => (getenv('APP_PROTOCOLO') == 'https' ? true : false)),

'BancoSip' => array(
'Servidor' => 'db',
Expand Down
34 changes: 34 additions & 0 deletions containeres/app/files/conf/sei.conf
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,38 @@ SetEnvIfNoCase user-agent "Microsoft Data Access Internet Publishing Provider Pr
Require all granted
</Directory>

</VirtualHost>

<VirtualHost *:443>

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/sei.crt
SSLCertificateChainFile /etc/pki/tls/certs/sei-ca.pem
SSLCertificateKeyFile /etc/pki/tls/private/sei.key

DocumentRoot /var/www/html

ServerAdmin [email protected]
ServerName localhost

DirectoryIndex index.php index.html
IndexIgnore *

EnableSendfile Off
HostnameLookups Off
ServerSignature Off
AddDefaultCharset iso-8859-1

# Bloqueia acesso à qualquer arquivo ou diretório externo ao DocumentRoot
<Directory />
AllowOverride None
Require all denied
</Directory>

<Directory ~ "(/opt/sei/web|/opt/sip/web|/opt/infra/infra_css|/opt/infra/infra_js)" >
AllowOverride None
Options None
Require all granted
</Directory>

</VirtualHost>
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,72 @@ fi



# Gera certificados caso necessário para desenvolvimento
if [ ! -d "/certs/seiapp" ]; then
echo "Diretorio /certs nao encontrado, criando ..."
mkdir -p /certs/seiapp
fi

echo "Verificando se certificados existem no diretorio /certs...."
if [ ! -f /certs/seiapp/sei-ca.pem ] || [ ! -f /certs/seiapp/sei.crt ]; then
echo "Arquivos de cert nao encontrados criando auto assinados ..."

cd /certs/seiapp

echo "Criando CA"
openssl genrsa -out sei-ca-key.pem 2048
openssl req -x509 -new -nodes -key sei-ca-key.pem \
-days 10000 -out sei-ca.pem -subj "/CN=sei-dev"

echo "Criando certificados para o dominio: $APP_HOST"
openssl genrsa -out sei.key 2048
openssl req -new -nodes -key sei.key \
-days 10000 -out sei.csr -subj "/CN=$APP_HOST"
openssl x509 -req -in sei.csr -CA sei-ca.pem \
-CAkey sei-ca-key.pem -CAcreateserial \
-out sei.crt -days 10000 -extensions v3_req

cat /certs/seiapp/sei-ca.pem >> /etc/ssl/certs/cacert.pem
echo "Adicionada nova CA ao TrustStore\n"
else
echo "Arquivos de cert encontrados vamos tentar utilizá-los..."
fi

cd /certs/seiapp
cp sei.crt /etc/pki/tls/certs/sei.crt
cp sei-ca.pem /etc/pki/tls/certs/sei-ca.pem
cp sei.key /etc/pki/tls/private/sei.key
cat sei.crt sei.key >> /etc/pki/tls/certs/sei.pem

echo "Incluindo TrustStore no sistema"
#cp /icpbrasil/*.crt /etc/pki/ca-trust/source/anchors/
cp sei-ca.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
update-ca-trust enable

echo "Atualizar sequences! todo ajeitar a base de ref e retirar isso"
# copiado do sei-vagrant do guilhermao
# Atualizar os endereços de host definidos para na inicialização e sincronização de sequências
php -r "
require_once '/opt/sip/web/Sip.php';
\$conexao = BancoSip::getInstance();
\$conexao->setBolScript(true);
\$objScriptRN = new ScriptRN();
\$objScriptRN->atualizarSequencias();
" || exit 1

echo "atualizar sequences do SEI"
# Atualizar os endereços de host definidos para na inicialização e sincronização de sequências
php -r "
require_once '/opt/sei/web/SEI.php';
\$conexao = BancoSEI::getInstance();
\$conexao->setBolScript(true);
\$objScriptRN = new ScriptRN();
\$objScriptRN->atualizarSequencias();
"
echo "Finalizacao de atualizacao de sequences"


#atualizar
#/usr/sbin/httpd -DFOREGROUND &
#sleep 3
Expand Down
45 changes: 45 additions & 0 deletions containeres/app/files/scripts-e-automatizadores/entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,51 @@ do
sleep 5
done


# Gera certificados caso necessário para desenvolvimento
if [ ! -d "/certs/seiapp" ]; then
echo "Diretorio /certs nao encontrado, criando ..."
mkdir -p /certs/seiapp
fi

echo "Verificando se certificados existem no diretorio /certs...."
if [ ! -f /certs/seiapp/sei-ca.pem ] || [ ! -f /certs/seiapp/sei.crt ]; then
echo "Arquivos de cert nao encontrados criando auto assinados ..."

cd /certs/seiapp

echo "Criando CA"
openssl genrsa -out sei-ca-key.pem 2048
openssl req -x509 -new -nodes -key sei-ca-key.pem \
-days 10000 -out sei-ca.pem -subj "/CN=sei-dev"

echo "Criando certificados para o dominio: $APP_HOST"
openssl genrsa -out sei.key 2048
openssl req -new -nodes -key sei.key \
-days 10000 -out sei.csr -subj "/CN=$APP_HOST"
openssl x509 -req -in sei.csr -CA sei-ca.pem \
-CAkey sei-ca-key.pem -CAcreateserial \
-out sei.crt -days 10000 -extensions v3_req

cat /certs/seiapp/sei-ca.pem >> /etc/ssl/certs/cacert.pem
echo "Adicionada nova CA ao TrustStore\n"
else
echo "Arquivos de cert encontrados vamos tentar utilizá-los..."
fi

cd /certs/seiapp
cp sei.crt /etc/pki/tls/certs/sei.crt
cp sei-ca.pem /etc/pki/tls/certs/sei-ca.pem
cp sei.key /etc/pki/tls/private/sei.key
cat sei.crt sei.key >> /etc/pki/tls/certs/sei.pem

echo "Incluindo TrustStore no sistema"
#cp /icpbrasil/*.crt /etc/pki/ca-trust/source/anchors/
cp sei-ca.pem /etc/pki/ca-trust/source/anchors/
update-ca-trust extract
update-ca-trust enable


echo "Atualizador finalizado procedendo com a subida do apache..."

#atualizar
Expand Down
7 changes: 7 additions & 0 deletions envlocal-example-mysql.env
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
##############################################
# ATENCAO ESTE ARQUIVO ESTA DESATUALIZADO PARA ESSA VERSAO AINDA NAO ATUALIZAMOS, AGUARDAR PROX VERSAO
# USAR ARQUIVO envlocal.env enquanto isso
##############################################



# lista de parametros do projeto

# indica onde esta o codigo fonte de dados no host hospedeiro(vm ou maquina onde vc quer subir o projeto).
Expand Down
17 changes: 12 additions & 5 deletions envlocal-example-oracle.env
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
##############################################
# ATENCAO ESTE ARQUIVO ESTA DESATUALIZADO PARA ESSA VERSAO AINDA NAO ATUALIZAMOS, AGUARDAR PROX VERSAO
# USAR ARQUIVO envlocal.env enquanto isso
##############################################



# lista de parametros do projeto

# indica onde esta o codigo fonte de dados no host hospedeiro(vm ou maquina onde vc quer subir o projeto).
Expand Down Expand Up @@ -88,8 +95,8 @@ export MODULO_ESTATISTICAS_CHAVE=seipublico


# MODULO WSSEI
#export MODULO_WSSEI_INSTALAR=true
#export MODULO_WSSEI_VERSAO=compatsei4.0.0
#export MODULO_WSSEI_URL_NOTIFICACAO=https://app-push-gestao-api.dev.nuvem.gov.br/mba-mmmessage/message
#export MODULO_WSSEI_ID_APP=4
#export MODULO_WSSEI_CHAVE=
export MODULO_WSSEI_INSTALAR=true
export MODULO_WSSEI_VERSAO=compatsei4.0.0
export MODULO_WSSEI_URL_NOTIFICACAO=https://app-push-gestao-api.dev.nuvem.gov.br/mba-mmmessage/message
export MODULO_WSSEI_ID_APP=4
export MODULO_WSSEI_CHAVE=pegueachavenacentraldesservicospen
Loading

0 comments on commit 09cf9d0

Please sign in to comment.