spbgovbr / Sistema_Programa_de_Gestao_Susep

33 stars 49 forks source link

Inserção dos recursos instalados no IIS no manual #14

Open lucasrv opened 3 years ago

lucasrv commented 3 years ago

Poderia adicionar a parte da instalação e configuração do IIS, incluindo os recursos instalados.

SrMouraSilva commented 3 years ago

Oi @lucasrv. A gente está fazendo um manual com isso, mas é para o IIS do Windows Server 2019. Tu entra em contato com o dsi arroba sti.ufc.br utilizando um email institucional caso esteja interessado

lucasrv commented 3 years ago

Oi @lucasrv. A gente está fazendo um manual com isso, mas é para o IIS do Windows Server 2019. Tu entra em contato com o dsi arroba sti.ufc.br utilizando um email institucional caso esteja interessado

Ok, eu mandei um e-mail ontem mesmo!

SrMouraSilva commented 3 years ago

@lucasrv, uma outras coisa que eu fiz aqui foi configurar um docker-compose para rodar a aplicação. Eu explico a seguir como testar https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte#sistema-programa-de-gest%C3%A3o-de-desempenho---pgd

No estado atual, já sobe todos os serviços do pgd: WebApp, WebApi, ApiGateway e banco de dados. Eu ainda não testei a parte da integração com o LDAP, mas acredito que funcionará sem problemas.

Se tu for testar e tiver problemas, só me dizer por aqui mesmo ou por um canal institucional.

lucasrv commented 3 years ago

@lucasrv, uma outras coisa que eu fiz aqui foi configurar um docker-compose para rodar a aplicação. Eu explico a seguir como testar https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte#sistema-programa-de-gest%C3%A3o-de-desempenho---pgd

No estado atual, já sobe todos os serviços do pgd: WebApp, WebApi, ApiGateway e banco de dados. Eu ainda não testei a parte da integração com o LDAP, mas acredito que funcionará sem problemas.

Se tu for testar e tiver problemas, só me dizer por aqui mesmo ou por um canal institucional.

@SrMouraSilva, parabéns pela iniciativa acredito que a solução em Docker seja a melhor opção, tanto por questões técnicas quanto pela questão financeira. Fiz os passos lá do tutorial e consegui subir os containers em poucos minutos! Possivelmente hoje ainda o gabinete deve encaminhar o ofício aí pra vocês. Estou apenas com algumas dificuldades na integração com o LDAP, mais ai entro em contato com você. Muito obrigado pela ajuda!

SrMouraSilva commented 3 years ago

Pois é, @lucasrv, MUITO MAIS FÁCIL com o Docker. Sobre o financeiro, atente-se que a licença do banco 0800 só serve para o pessoal homologar.

Sobre a parte do ldap, eu ainda não parei para ver, mas @rmvs que trabalha comigo já testou com um ambiente que tinha montado antes e deu certo. Vamos ver se nessa nova versão que o SUSEP lançou não tem nenhum bug novo, rsrs. Mas pelo menos temos o código agora :D

itallopedrosa commented 3 years ago

Boa Noite @SrMouraSilva tudo bem ? Obrigado por disponibilizar o docker-compose , estou realizando a implantação aqui tambem no Ministerio do TUrismo em desenvolvimento.

Ao iniciar os container de gateway e api eles apresentam o seguinte erro ,poderia me dar um apoio ?

warn: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50] Using an in-memory repository. Keys will not be persisted to storage. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59] Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits. warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured. Key {923d44ee-f28a-496d-b92d-17b6a2b24932} may be persisted to storage in unencrypted form. crit: Microsoft.AspNetCore.Server.Kestrel[0] Unable to start Kestrel. System.Net.Sockets.SocketException (13): Permission denied at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<>cDisplayClass21_01.<<StartAsync>g__OnBind|0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.AnyIPListenOptions.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(IServerAddressesFeature addresses, KestrelServerOptions serverOptions, ILogger logger, Func2 createBinding) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.StartAsync[TContext](IHttpApplication1 application, CancellationToken cancellationToken) Unhandled exception. System.Net.Sockets.SocketException (13): Permission denied at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketConnectionListener.Bind() at Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketTransportFactory.BindAsync(EndPoint endpoint, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.<>c__DisplayClass21_01.<gOnBind|0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindEndpointAsync(ListenOptions endpoint, AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.AnyIPListenOptions.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.AddressesStrategy.BindAsync(AddressBindContext context) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.AddressBinder.BindAsync(IServerAddressesFeature addresses, KestrelServerOptions serverOptions, ILogger logger, Func2 createBinding) at Microsoft.AspNetCore.Server.Kestrel.Core.KestrelServer.StartAsync[TContext](IHttpApplication1 application, CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at Susep.SISRH.WebApp.Program.Main(String[] args) in /src/Susep.SISRH.WebApp/Program.cs:line 17

SrMouraSilva commented 3 years ago

Boa tarde, @itallopedrosa. Isso foi usando o docker-compose ou pelo IIS (que você falou aqui)?

itallopedrosa commented 3 years ago

Boa tarde, @itallopedrosa. Isso foi usando o docker-compose ou pelo IIS (que você falou aqui)? Foi utilizando o docker-compose. Pelo IIS eu recebo sempre erro 500 nas chamadas de API e Gateway.

SrMouraSilva commented 3 years ago

@itallopedrosa, você por acaso alterou (indevidamente) o arquivo ocelot.Homolog.json? No ambiente docker que eu montei, os arquivos que podem/devem ser alterados são somente os que listo em https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte#configura%C3%A7%C3%B5es

itallopedrosa commented 3 years ago

@SrMouraSilva não , esse erro gerado foi quando os container da aplicação tentam iniciar. somente executei o comando docker-compose -f docker/docker-compose.yml up -d capturei esse erros nos logs do container que não sobe.

SrMouraSilva commented 3 years ago

@itallopedrosa, viiche. Que estranho! Qual é a versão do teu docker e do teu SO? Qual é o container que deu problema?

itallopedrosa commented 3 years ago

@SrMouraSilva , estou usando debian 9.4(stretch) e docker na versão 19.04 ce os containers da aplicação docker_web-app_1 docker_api-gateway_1 e docker_web-app_1

itallopedrosa commented 3 years ago

@SrMouraSilva boa noite , conseguir subir os containers com outra imagem de aspnet core , agora estou enfrantando erro na api no momento do build ele gera o seguinte erro

image

chegou a passar por esse problema ??

SrMouraSilva commented 3 years ago

@itallopedrosa, primeiro. Tu tá usando a versão 3.1 do aspnet, correto?

Para fazer o build, eu uso essa https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/blob/docker-codigo-fonte/docker/Dockerfile#L3

Segundo, tu já fez o build para ele baixar as dependências? https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/blob/docker-codigo-fonte/docker/Dockerfile#L12-L13

itallopedrosa commented 3 years ago

@SrMouraSilva , Isso estou a imagem mcr.microsoft.com/dotnet/aspnet:3.1,

Esse erro ocorre quando executo o docker-compose , mais especificamente nesse passo.

web-api: image: ghcr.io/srmourasilva/sistema_programa_de_gestao_susep/sgd:latest working_dir: /app/api/ command: dotnet Susep.SISRH.WebApi.dll

SrMouraSilva commented 3 years ago

Bom dia, @itallopedrosa. Estou confuso. Se a imagem do web-api está como ghcr.io/srmourasilva/sistema_programa_de_gestao_susep/sgd:latest, então ele vai usar a imagem que eu montei, exceto se você fez o build da imagem com o mesmo nome. Caso não tenha feito, sua mudança para usar a imagem mcr.microsoft.com/dotnet/aspnet:3.1 não deve ter surtido efeito.

Ainda estou encucado com esses erros que apareceram antes. Aparenta ser problema de conflito de porta ou algo assim https://github.com/dotnet/aspnetcore/issues/4699. Mas isso não deveria acontecer. Você já tentou atualizar o docker, aqui uso o 20.10.3 e um Kubuntu 20.4?

Sobre esse último erro, é como se ele não tivesse instalado as dependências. Vou te pedir para fazer uma coisa:

Tu mata o processo

docker-compose -f docker/docker-compose.yml down

Atualiza o teu código, que deve estar desatualizado (atualizei nessa madrugada). Altera esses dois arquivos, mudando de Information para Debug:

Sobe de novo a aplicação. Aí tu vê o que aparece nos arquivos de log que ficarão nessas pastas https://github.com/SrMouraSilva/Sistema_Programa_de_Gestao_Susep/tree/docker-codigo-fonte/log

SrMouraSilva commented 3 years ago

@itallopedrosa, uma dúvida. O teu usuário na máquina é 1000:1000? É possível que eu tenha configurado alguma coisa errada em relação às permissões! Tu por favor me dá esse feedback? Obrigado!

itallopedrosa commented 3 years ago

@SrMouraSilva Boa Tarde , eu conseguir subir a aplicação com o docker compose, eu tive que criar outra imagem sem ser com usuário com id 1000 .. , o usuário da maquina maquina não tem o id 1000:1000 por deve estar acontecendo aquele erro de permission denied

link da imagem: docker push italloap/susep-app:v1

SrMouraSilva commented 3 years ago

Nossa, @itallopedrosa! Então era isso. Você descobriu qual dos arquivos estava com aquele problema de permissão?

O que você fez para corrigir esse problema?

Eu criei um usuário 1000:1000, posso tirar esse passo, mas a aplicação ficaria mais insegura. No momento eu só vejo como alternativa, o usuário mudar a permissão dos arquivos de configuração via chown.

Ei, não achei sua imagem no docker hub: https://hub.docker.com/italloap/susep-app

Obrigado pelo retorno!

itallopedrosa commented 3 years ago

@SrMouraSilva , muito obrigado por compartilhar seu docker ,

subi pro git tambem https://github.com/itallopedrosa/teste-spgr/tree/master/docker com a imagem sem o id 1000:1000

esse problema do id nunca tinha me deparado,pois e a primeira vez que utilizo container com aplicações dotnet.

SrMouraSilva commented 3 years ago

@itallopedrosa Eu já tive problemas com permissão com imagens de outros tipos. Realmente é chatinho. Eu vou fazer uns testes e depois te atualizo 😁