Introdução:
O interessante sobre esse post é que para falar do payara, eu vou começar a falando do glassfish mas se você quiser pular direto para parte prática desse post, apenas ignore essa introdução.
O Sun Glassfish Server foi um servidor de aplicação desenvolvido pela Sun lançado em junho de 2005 e em maio de 2006 teve sua primeira versão suportava a especificação Java EE5. O sucesso do Glassfish, versatilidade e estabilidade chamou a atenção da Ericsson que decidiu lançar o projeto SAILFIN que nada mais era do que a implementação do suporte ao Protocolo de Iniciação de Sessão (SIP). Até a sua versão 3 o Glassfish seguia sua vida sendo um servidor open source.
Em dezembro de 2009 foi lançado a versão 3 que provia suporte a implementação Java EE6 com uma série de melhoras, mas em março de 2010 com a aquisição da Oracle o produto deixaria de ter um roadmap de atualizações e melhorias não consistente. Dessa forma surge como uma alternativa de migração fácil o Payara que nada mais é do que uma versão continuada do Glassfish.
Pré Requisitos:
Para instalarmos o Payara Server Full vamos precisar de:
- Um servidor com arquitetura 64bits com Centos 7.x ou 8.x instalado.
- Acesso root ou sudo .
- JDK8 ou OPENJDK8.
Uma das perguntas que você deve estar se fazendo a essa altura é: “Lucas, quais são os requisitos mínimos do servidor ? ”
Embora eu possa sugerir uma configuração minima, é pouco provável que eu acerte as suas reais necessidades. Sabemos que o Java gosta de memória não é mesmo ? Para este tutorial, estou usando uma VPS com as seguintes Specs:
- 1x vCPU.
- 1GB Memória.
- 30Gb SSD.
A JDK e o Payara não devem ocupar mais que 1Gb em disco, porém é importante ter em mente o dimensionamento de Logs e outros arquivos que podem ser criados em tempo de execução.
Para uma recomendação ( minima ) de um servidor de aplicação com pouca demanda considerado produtivo ( ambiente de produção ), poderia ser a seguinte ( para começar )
- 4x vCPU.
- 4GB Memória.
- 50Gb SSD.
Atualizando o Sistema
Este é um passo opcional, eu particularmente gosto de manter meus ambientes atualizados com os repositórios oficiais, se você está realizando esse procedimento em um servidor existente, considere o impacto e a compatibilidade dos pacotes antes de executar o comando abaixo.
Criando Usuário Payara
Você pode rodar o payara sob qualquer usário, inclusive o root apesar de não recomendado. Porém aqui eu vou criar um usuário especifico chamado payara e seu home será em /app/home .
Na atual empresa que trabalho tomou como padrão utilizar o /app para instalações que não são da distro. O Ideal, seria utilizar o /opt.
[root@server~] useradd -d /app/payara -m -c "Payara Server User" payara
Baixando a JDK 8
Como estamos instalando tudo no /app vamos instalar a jdk lá também. E para isso vamos usar a jdk da oracle
[root@server app] wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz
Se a sua instalação não possuir o wget instale ele com o comando:
Agora que já baixamos o pacote vamos extraí-lo, para isso vamos rodar o seguinte comando:
O comando acima irá extrar o conteúdo da pasta jdk para jdk1.8.0_161 com isso no final vamos criar um link simbólico para que o caminho fique normalizado com /app/jdk:
Até aqui se tudo ocorreu bem a jdk deve estar disponível em /app/jdk, e podemos verificar assim.
lrwxrwxrwx. 1 root root 12 Apr 11 23:58 /app/jdk -> jdk1.8.0_161
[root@server jdk]#
Porém para executar o java precisamos que java esteja disponível no path então como root vamos criar um arquivo no caminho /etc/profile.d/ chamado jdk.sh.
O Arquivo /etc/profile.d/jdk.sh deve ter o seguinte conteúdo:
PATH=$PATH:$JAVA_HOME:bin
export JAVA_HOME PATH
Para criá-lo vamos rodar os seguintes comandos:
echo 'PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile.d/jdk.sh
echo export JAVA_HOME PATH >> /etc/profile.d/jdk.sh
E pronto, assim está instalada sua JVM 1.8.
Resumo de onde estamos
Até agora, o que fizemos foi:
- Criamos uma VM com centos 7 em seu provedor preferido.
- Atualizamos o centos.
- Baixamos e instalamos a JDK 1.8.
Ok, tudo até aqui foi feito, ou pelo menos eu esperava que fosse, feito com o usuário root. De agora em diante vamos virar o usuário payara criado anteriormente e vamos verificar se o java foi instalado corretamente.
Para isso como root vamos rodar:
Last login: Thu Apr 12 00:04:41 UTC 2018 on pts/0
[payara@server ~]$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
[payara@server ~]$ logout
[root@server jdk]#
Note a saída do comando java -version acima, se você teve uma saída diferente da superior, reveja seus passos até esse ponto.
Os próximos passos serão executados com o usuário payara, para isso vamos executar o comando su – <usuário>
Last login: Thu Apr 12 00:04:41 UTC 2018 on pts/0
[payara@server ~]$
Como criamos o usuário payara em /app/payara, vamos executar o download do servidor de aplicações da página: https://www.payara.fish/downloads.
Para isso eu usei o curl mesmo, copiando o link do botão de download e colando entre aspas duplas tendo certeza que no final o -o “arquivo.zip” tenha o direcionamento correto da saída.
No final, execute o comando unzip payara-5.182.zip, e uma pasta payara5 deve ser criada, navegue até a pasta bin conforme abaixo:
[payara@node-1 payara5]$ cd bin
[payara@node-1 bin]$ ls
asadmin asadmin.bat pkg pkg.bat updatetool updatetool.bat
[payara@node-1 bin]$ ./asadmin start-domain
O comando do final, ./asadmin start-domain, irá iniciar o domain, para acessar ele é só criar um tunel pelo ssh para localhost:4848 ou liberar o acesso com senha,
Colocando uma senha no Domain Admin:
Enter admin user name [default: admin]>admin
Enter the admin password>
Enter the new admin password>
Enter the new admin password again>
[payara@node-1 bin]$ ./asadmin enable-secure-admin
Depois disso se tudo der certo você irá conseguir acessar o domain admin pelo ip publico de seu server em https://<ip_do_seu_servidor>:4848
Por hoje é só 🙂