Skip to content

Instantly share code, notes, and snippets.

@cleydyr
Last active May 4, 2024 00:19
Show Gist options
  • Save cleydyr/95db7654ca2d915ddf3d8fe2e2c04fbe to your computer and use it in GitHub Desktop.
Save cleydyr/95db7654ca2d915ddf3d8fe2e2c04fbe to your computer and use it in GitHub Desktop.
Script para instalação automatizada do Biblivre 5 no CentOS 7
# Install Postgresql 9.6
sudo yum install -y postgresql-server postgresql-contrib java-1.8.0-openjdk java-1.8.0-openjdk-devel tomcat
sudo postgresql-setup initdb
# Permite a autenticação com senha no Postgres
echo "Habilitando a autenticação com senha no PostgreSQL"
sudo sed -i -e 's/ident$/md5/g' /var/lib/pgsql/data/pg_hba.conf
# Habilita e inicia serviço do PosgreSQL
echo "Habilitando e iniciando serviço do PosgreSQL"
sudo systemctl enable postgresql
sudo systemctl start postgresql
# Cria senha padrão para o PostgreSQL
echo "Criando senha padrão para o PostgreSQL"
sudo su - postgres -c "psql -o /dev/null -U postgres -c "'"'"ALTER USER postgres WITH PASSWORD 'abracadabra'"'"'"";
# Cria usuário biblivre e o banco de dados básico biblivre4
echo "Criando estrutura básica do banco de dados"
sudo su - postgres -c "wget --quiet -O - https://raw.githubusercontent.com/cleydyr/Biblivre-5/5.1.0/sql/createdatabase.sql | psql -o /dev/null -U postgres"
# Cria o esquema básico do Biblivre (isso pode demorar um pouco)
echo "Criando esquemas e populando dados para primeira instalação Biblivre 5"
sudo su - postgres -c "wget --quiet -O - https://raw.githubusercontent.com/cleydyr/Biblivre-5/5.1.0/sql/biblivre4.sql | psql -o /dev/null -U postgres -d biblivre4"
# Cria arquivo de configurações padrão para o Tomcat rodar o Biblivre
echo "Criando arquivo de configurações padrão para o Tomcat rodar o Biblivre"
sudo sh -c "echo 'JAVA_OPTS="'"'"-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Xmx512m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC"'"'"' >> /etc/tomcat/conf.d/biblivre.conf"
# Baixa o Biblivre 5 atualizado do repositório de cleydyr
echo "Baixando o Biblivre 5 atualizado"
echo 'https://github.com/cleydyr/biblivre/releases/download'`wget --spider -SO- https://github.com/cleydyr/biblivre/releases/latest 2>&1 >/dev/null | grep "Location:" | head -n1 | egrep -o "/v.*$"`"/Biblivre4.war" | tr -d "\r" | xargs wget -O /tmp/Biblivre4.war
# Implanta o Biblivre 5 direto no Tomcat
echo "Implantando o Biblivre 5 direto no Tomcat"
sudo unzip -q /tmp/Biblivre4.war -d /var/lib/tomcat/webapps/Biblivre4
# Libera a porta padrão do Tomcat (8080) no firewall
echo "Liberando a porta padrão do Tomcat (8080) no firewall"
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --zone=public --add-port=8080/tcp
# Permite o Tomcat rodar mais permissivamente, sem restrições da política SELinux
echo "Liberando o Tomcat da política SELinux"
sudo semanage permissive -a tomcat_t
# Inicia e habilita o tomcat
echo "Habilitando e iniciando serviço do Tomcat"
sudo systemctl enable tomcat
sudo systemctl start tomcat
@cleydyr
Copy link
Author

cleydyr commented Aug 17, 2020

@cainadacosta, fyi, eu acabei de lançar a versão v5.2.1 do Biblivre no meu repositório.

@ohlifrimla
Copy link

Olá @cleydyr será que pode me tirar uma duvida? Existe alguma amarração na compilação do biblivre que obrigue o banco a ser localhost ou seja no mesmo servidor. Na minha infra eu faço segregação de aplicação e banco de dados então gostaria de ter a aplicação biblivre executando em um servidor e a base de dados no meu servidor postgres de produção.

@cleydyr
Copy link
Author

cleydyr commented May 21, 2021

@ohlifrimla. No Biblivre 5 oficial (assim como no meu branch 5.x) tem essa amarração; o localhost está hard-coded no próprio Java. No 5.x eu não quis mexer muito para deixá-lo mais estável e familiar, ou seja, é só uma versão de manutenção. Mas você pode usar a versão master onde já é possível configurar isso por meio variáveis de ambiente. Aí você terá que compilar o software manualmente assim como instalar as dependências corretas. Dá uma olhada no README do master. Esse fim de semana devo incorporar instruções de instalação manual mais detalhadas partindo do pull request #308.

@doguibnu
Copy link

Olá @cleydyr Tudo bem?
Eu estou tentando a partir de seu script fazer a instalação no Rocky linux 8.5 porém, nesta parte do script ele não está conseguindo se conectar no server da amazon:

Baixa o Biblivre 5 atualizado do repositório de cleydyr echo "Baixando o Biblivre 5 atualizado" echo 'https://github.com/cleydyr/biblivre/releases/download'wget -SO- https://github.com/cleydyr/biblivre/releases/latest 2>&1 >/dev/null | grep location | egrep -o "/v.*$""/Biblivre4.war" | tr -d "\r" | xargs wget -O /tmp/Biblivre4.war

Aí quando executo ele volta isso:

`Resolvendo data (data)... falhou: Name or service not known.
wget: não foi possível resolver endereço de máquina “data”
--2022-05-31 15:33:38-- http://github.githubassets.com/
Resolvendo github.githubassets.com (github.githubassets.com)... 185.199.108.154, 185.199.109.154, 185.199.110.154, ...
Conectando-se a github.githubassets.com (github.githubassets.com)|185.199.108.154|:80... conectado.
A requisição HTTP foi enviada, aguardando resposta... 301 Moved Permanently
Localização: https://github-gh-origin.s3-website-us-east-1.amazonaws.com/ [redirecionando]
--2022-05-31 15:33:38-- https://github-gh-origin.s3-website-us-east-1.amazonaws.com/
Resolvendo github-gh-origin.s3-website-us-east-1.amazonaws.com (github-gh-origin.s3-website-us-east-1.amazonaws.com)... 52.217.169.205
Conectando-se a github-gh-origin.s3-website-us-east-1.amazonaws.com (github-gh-origin.s3-website-us-east-1.amazonaws.com)|52.217.169.205|:443... falhou: Connection timed out.
Tentando novamente.

--2022-05-31 15:35:51-- (tentativa: 2) https://github-gh-origin.s3-website-us-east-1.amazonaws.com/
Conectando-se a github-gh-origin.s3-website-us-east-1.amazonaws.com (github-gh-origin.s3-website-us-east-1.amazonaws.com)|52.217.169.205|:443... falhou: Connection timed out.
Tentando novamente.

--2022-05-31 15:38:03-- (tentativa: 3) https://github-gh-origin.s3-website-us-east-1.amazonaws.com/
Conectando-se a github-gh-origin.s3-website-us-east-1.amazonaws.com (github-gh-origin.s3-website-us-east-1.amazonaws.com)|52.217.169.205|:443... falhou: Connection timed out.
Tentando novamente.`

No mais, desde o início do script foi tudo bem, apenas a parte de instalar o tomcat no Rocky Linux, mas no mais o resto está indo em frente. Pensamos em utilizar o serviço em nossa biblioteca municipal. Se vc puder me ajudar depois publico no Github, claro, com as devidas credencias.

Grato pela atenção

Douglas

@cleydyr
Copy link
Author

cleydyr commented Jun 1, 2022

Oi, @doguibnu . O que você está encontrando é um bug no script e não afeta somente o Rocky Linux.

Ao que parece o servidor agora retorna o cabeçalho como Location em vez de location e assim o primeiro grep não está filtrando os cabeçalhos desejados.

Vou alterar o script para corrigir esse problema e você testa novamente.

@doguibnu
Copy link

doguibnu commented Jun 1, 2022

Olá @cleydyr
Tudo bem contigo?

Obrigado pela atenção e resposta. Executei aqui e já foi pra frente.
Vamos continuar
Muito obrigado e tudo de bom!

Douglas

Oi, @doguibnu . O que você está encontrando é um bug no script e não afeta somente o Rocky Linux.

Ao que parece o servidor agora retorna o cabeçalho como Location em vez de location e assim o primeiro grep não está filtrando os cabeçalhos desejados.

Vou alterar o script para corrigir esse problema e você testa novamente.

@doguibnu
Copy link

doguibnu commented Jun 1, 2022

Olá @cleydyr
Boa tarde!

Acredto que ainda faltou alguns ajustes para que possa rodar ok.
para acessar o serviço é http://ip/Biblivre4 certo?

Devido a instalação do Tomcat, creio que eu deva fazer algum ajuste. Vou te passar umas telas de como está nesse momento aqui:

Tomcat 10 rodando:
tomcat-ok13-02-36

tela do terminal do tomcat:
tomcat-rodando13-05-46

Tela do terminal do Postgres
postgres-rodando-ok
Preciso abrir a porta 5432 também no firewall?

Tela terminal de instalação do Biblivre
instal-biblivre-32

cito que na hora de descompactar o biblivre4.war troquei o caminho para a tela do caminho acima. Acredito que estou quase lá!
Qual seria sua sugestão por gentileza?

Obrigado!

@cleydyr
Copy link
Author

cleydyr commented Jun 1, 2022

Eita, @doguibnu . Eu acho que o Tomcat 10 não vai funcionar. Nem o Tomcat 9. O Biblivre deve ficar todo quebrado porque essas versões mais novas revelam um bug do Biblivre. Aí tu ia ter que ou instalar uma versão mais antiga do Tomcat ou esperar por uma versão nova do Biblivre 5 legado que seja compatível com esse servidor.

Sim. O endereço do Biblivre é http://ip:port/Biblivre4. Mas, como eu disse, tu deve ver a aplicação toda quebrada (sem conteúdo estático, ou seja, sem as folhas de estilo ou imagens carregadas e sem comportamento dinâmico).

@doguibnu
Copy link

doguibnu commented Jun 1, 2022

Olá @cleydyr !
Eu não sou nenhum master em tomcat não, mas já tive a experiência de ter passado por isso em outra situação que a empresa usava apenas a versão x do tomcat.
Sem problemas pra refazer a máquina. Ainda não é a de produção não! Eu posso sim instalar uma versão apropriada que funcione de forma correta o Biblivre.
Qual versão do tomcar vc sugere instalar

Grato pela atenção e ajuda!

Douglas

@cleydyr
Copy link
Author

cleydyr commented Jun 2, 2022

@doguibnu, eu sugeriria instalar a versão 7 se estiver disponível, que é a original do Biblivre oficial e vai te dar menos dor de cabeça. Mas a versão 7 está bem defasada e já não é mais suportada.

@doguibnu
Copy link

doguibnu commented Jun 2, 2022

Ola @cleydyr
Eu consegui achar o Tomcat 7.0.42.
Pelo menos abriu aqui no rocky Linux 8.5

É isso:
biblivre--rocky-8-up

Se for isso agora precisamos saber administrar o cara, fazer e voltar backup.
Aguardo tua resposta e desde já agradeço sua atenção e ajuda. Documentei todo passo a passo, seguindo teu script.
Se estiver ok Publico no github!

Obrigado Cleydyr

@cleydyr
Copy link
Author

cleydyr commented Jun 3, 2022

Parece estar tudo ok com a sua instância, @doguibnu . :D Bom trabalho e sucesso com a implantação.

@doguibnu
Copy link

doguibnu commented Jun 3, 2022

Olá @cleydyr !
Muito Obrigado por toda tua atenção e ajuda. Já Publiquei também, com as devidas credenciais.
Tudo de bom e sucesso!

https://github.com/doguibnu/Biblivre5-Rocky-Linux-8-5

@Paulojoserc
Copy link

Olá Boa Tarde !
Estou tentando instalar porem esta dando este erro:
echo 'https://github.com/cleydyr/biblivre/releases/download'`wget --spider -SO- https://github.com/cleydyr/biblivre/releases/latest 2>&1 >/dev/null | grep "Location:" | egrep -o "/v.*$"`"/Biblivre4.war" | tr -d "\r" | xargs wget -O /tmp/Biblivre4.war
--2023-01-10 18:28:47-- https://github.com/cleydyr/biblivre/releases/download/v5.2.32
Resolving github.com (github.com)... 20.201.28.151
Connecting to github.com (github.com)|20.201.28.151|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2023-01-10 18:28:47 ERROR 404: Not Found.

@cleydyr
Copy link
Author

cleydyr commented Jan 10, 2023

Oi, @Paulojoserc . Acho que foi alguma gracinha do wget em novas atualizações. Pode compartilhar a versão do seu wget?

Eu testei num Ubuntu 22.04 e reproduzi o problema. O wget está jogando na saída padrão outra linha com "Location" que eu não previa. O comando vai ter que ser alterado para ficar assim agora:

echo 'https://github.com/cleydyr/biblivre/releases/download'`wget --spider -SO- https://github.com/cleydyr/biblivre/releases/latest 2>&1 >/dev/null | grep "Location:" | head -n1 | egrep -o "/v.*$"`"/Biblivre4.war" | tr -d "\r" | xargs wget -O /tmp/Biblivre4.war

@Paulojoserc
Copy link

@cleydyr

GNU Wget 1.19.5 built on linux-gnu.

-cares +digest +gpgme +https +ipv6 +iri +large-file +metalink +nls
+ntlm +opie +psl +ssl/gnutls

@cleydyr
Copy link
Author

cleydyr commented Jan 10, 2023

@Paulojoserc .

Eu fiz a atualização do script para incluir o pipe para o head. Pode testar se funciona agora?

@Paulojoserc
Copy link

Paulojoserc commented Jan 10, 2023

Deu certo !

@cmnabeto
Copy link

@cleydyr

Tudo joia?

Notei já há algum tempo (uns 4 anos, rssss) que você é bastante atuante no Biblivre, tendo inclusive realizado diversas correções no código fonte do Biblivre5. A última versão oficial, a 5.0.5 (se a minha memória não falha) é de 2016/2017. De lá pra cá, não tenho visto mais nenhuma movimentação da comunidade desenvolvedora oficial. Você sabe dizer se estão trabalhando em alguma nova versão maior (tipo, um Biblivre6) ou menor (tipo, um Biblivre 5.0.6)? Instalei as correções que você fez (substituindo o arquivo Biblivre4.war) e funcionou direitinho; coisas que davam problema anteriormente (como a reserva de livros) rodam bem agora; o que impede delas serem oficialmente adotadas? O projeto Biblivre foi definitivamente descontinuado? Outra coisa: você pretende revisar e atualizar o script de instalação do Biblivre para Linux Ubuntu 22.04? Grato.

@cleydyr
Copy link
Author

cleydyr commented Jan 20, 2024

você pretende revisar e atualizar o script de instalação do Biblivre para Linux Ubuntu 22.04?

Eu tratei de um problema no script para a versão 22.04 do Ubuntu um comentário acima do seu e recebi um retorno positivo. Você encontrou algum problema ao executar o script?

Você sabe dizer se estão trabalhando em alguma nova versão maior (tipo, um Biblivre6) ou menor (tipo, um Biblivre 5.0.6)?
o que impede delas serem oficialmente adotadas?
O projeto Biblivre foi definitivamente descontinuado?

Recomendo fazer essas perguntas no fórum oficial para dar mais visibilidade e receber a resposta dos donos do projeto oficial.

@alanbcs
Copy link

alanbcs commented May 4, 2024

Olá @cleydyr estou precisando instalar o Biblivre em uma biblioteca comunitária em um ambiente com Docker e Docker composse (almalinux 9.3), tem algum passa a passo para executar ele no Docker? Estou iniciando no Docker e estou batendo cabeça para executar a instalação.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment