Implementar uma aplicação Web Java numa VM no Azure Stack Hub
Pode criar uma máquina virtual (VM) para alojar a sua aplicação Web Java no Azure Stack Hub. Neste artigo, vai instalar, abrir as portas certas e configurar um servidor Apache Tomcat numa VM do Linux no Azure Stack Hub. Em seguida, carregue um ficheiro WAR (Java Web Application Resource) para o servidor. Um ficheiro WAR é utilizado para distribuir uma coleção de ficheiros de arquivo Java (JAR), ficheiros comprimidos que contêm recursos Java, como classes, texto, imagens, XML e HTML, e outros recursos que são utilizados para fornecer uma aplicação Web.
Criar uma VM
Configure a VM no Azure Stack Hub ao seguir as instruções em Implementar uma VM do Linux para alojar uma aplicação Web no Azure Stack Hub.
No painel rede VM, certifique-se de que as seguintes portas estão acessíveis:
Porta Protocolo Descrição 80 HTTP O Protocolo HTTP (Hypertext Transfer Protocol) é o protocolo utilizado para fornecer páginas Web a partir de servidores. Os clientes ligam-se através de HTTP com um nome DNS ou endereço IP. 443 HTTPS O PROTOCOLO HTTPS (Hypertext Transfer Protocol Secure) é uma versão segura de HTTP que requer um certificado de segurança e permite a transmissão encriptada de informações. 22 SSH O Secure Shell (SSH) é um protocolo de rede encriptado para comunicações seguras. Utilize esta ligação com um cliente SSH para configurar a VM e implementar a aplicação. 3389 RDP Opcional. O Protocolo RDP (Remote Desktop Protocol) permite que uma ligação de ambiente de trabalho remoto utilize uma interface de utilizador gráfico no seu computador. 8080 Personalizado A porta predefinida para o serviço Apache Tomcat. Para um servidor de produção, encaminha o tráfego para 80 e 443.
Instalar Java
Ligue-se à VM com o cliente SSH. Para obter instruções, veja Connect via SSH with PuTTY (Ligar através de SSH com PuTTY).
Na linha de comandos bash da VM, execute o seguinte comando:
sudo apt-get install default-jdk
Valide a instalação. Ainda ligado à VM na sessão SSH, execute o seguinte comando:
java -version
Instalar e configurar o Tomcat
Ligue-se à VM com o cliente SSH. Para obter instruções, veja Connect via SSH with PuTTY (Ligar através de SSH com PuTTY).
Crie um utilizador do Tomcat ao fazer o seguinte:
a. Crie um novo grupo tomcat ao executar o seguinte comando:
sudo groupadd tomcat
b. Crie um novo utilizador do Tomcat. Adicione este utilizador ao grupo Tomcat com um diretório raiz de /opt/tomcat. Vai implementar o Tomcat neste diretório:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Instale o Tomcat ao fazer o seguinte:
a. Obtenha o URL do tar para a versão mais recente do Tomcat 8 a partir da página de transferência do Tomcat 8.
b. Utilize o cURL para transferir a versão mais recente com a ligação. Execute os seguintes comandos:
cd /tmp curl -O <URL for the tar for the latest version of Tomcat 8>
c. Instale o Tomcat no diretório /opt/tomcat . Crie a pasta e, em seguida, abra o arquivo:
sudo mkdir /opt/tomcat sudo tar xzvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1 sudo chown -R tomcat webapps/ work/ temp/ logs/
Atualize as permissões do Tomcat ao executar os seguintes comandos:
sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r conf sudo chmod g+x conf
Crie um ficheiro de serviço systemd , para que possa executar o Tomcat como um serviço.
a. O Tomcat precisa de saber onde instalou o Java. Este caminho é geralmente conhecido como JAVA_HOME. Localize a localização ao executar:
sudo update-java-alternatives -l
Isto produz algo semelhante ao seguinte:
Output java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64
Pode construir o valor da variável JAVA_HOME ao seguir o caminho a partir da saída e ao adicionar /jre. Por exemplo, com o exemplo anterior, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.
b. Utilize o valor do servidor para criar o ficheiro de serviço systemd:
sudo nano /etc/systemd/system/tomcat.service
c. Cole os seguintes conteúdos no ficheiro de serviço. Modifique o valor de JAVA_HOME, se necessário, para corresponder ao valor que encontrou no seu sistema. Também poderá querer modificar as definições de alocação de memória especificadas no CATALINA_OPTS:
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
d. Guarde e feche o ficheiro.
e. Recarregue o daemon do systemd para que saiba mais sobre o ficheiro de serviço:
sudo systemctl daemon-reload
f. Inicie o serviço Tomcat:
sudo systemctl start tomcat
exemplo, Verifique se começou sem erros ao introduzir:
sudo systemctl status tomcat
Verifique o servidor Tomcat. O Tomcat utiliza a porta 8080 para aceitar pedidos convencionais. Permita o tráfego para essa porta ao executar o seguinte comando:
sudo ufw allow 8080
Se ainda não adicionou as regras de porta de entrada para a VM do Azure Stack Hub, adicione-as agora. Para obter mais informações, veja Criar uma VM.
Abra um browser na mesma rede que o Azure Stack Hub e, em seguida, abra o servidor, yourmachine.local.cloudapp.azurestack.external:8080.
A página do Apache Tomcat no seu servidor é carregada. Em seguida, configure o servidor para lhe permitir aceder ao Estado do Servidor, à Aplicação do Gestor e ao Gestor de Anfitriões.
Ative o ficheiro de serviço para que o Tomcat seja iniciado automaticamente quando reiniciar o servidor:
sudo systemctl enable tomcat
Para permitir o acesso à interface de gestão Web, configure o servidor Tomcat.
a. Edite o ficheiro tomcat-users.xml e defina uma função e um utilizador para que possa iniciar sessão. Defina o utilizador para aceder a
manager-gui
eadmin-gui
.sudo nano /opt/tomcat/conf/tomcat-users.xml
b. Adicione os seguintes elementos à
<tomcat-users>
secção:<role rolename="tomcat"/> <user username="<username>" password="<password>" roles="tomcat,manager-gui,admin-gui"/>
Por exemplo, o ficheiro final poderá ter um aspeto semelhante a:
<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="tomcat"/> <user username="tomcatuser" password="changemepassword" roles="tomcat,manager-gui,admin-gui"/> </tomcat-users>
c. Guarde e feche o ficheiro.
O Tomcat restringe o acesso às aplicações Gestor e Gestor de Anfitriões a ligações provenientes do servidor. Uma vez que está a instalar o Tomcat numa VM no Azure Stack Hub, vai querer remover esta restrição. Altere as restrições de endereços IP nestas aplicações ao editar os ficheiros decontext.xml adequados.
a. Atualize context.xml na aplicação Gestor:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
b. Comente a restrição de endereços IP para permitir ligações a partir de qualquer lugar ou adicione o endereço IP do computador que está a utilizar para ligar ao Tomcat.
<Context antiResourceLocking="false" privileged="true" > <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> </Context>
c. Guarde e feche o ficheiro.
d. Atualize context.xml a aplicação Gestor de Anfitriões com uma atualização semelhante:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
e. Guarde e feche o ficheiro.
Para atualizar o servidor com as alterações, reinicie o serviço Tomcat:
sudo systemctl restart tomcat
Abra um browser na mesma rede que o Azure Stack Hub e, em seguida, abra o servidor: yourmachine.local.cloudapp.azurestack.external:8080.
a. Para rever o estado do servidor Tomcat e verificar se tem acesso, selecione Estado do Servidor.
b. Inicie sessão com as suas credenciais do Tomcat.
Criar uma aplicação
Terá de criar uma WAR para implementar no Tomcat. Se apenas quiser verificar o seu ambiente, pode encontrar um exemplo WAR no site do Apache Tomcat.
Para obter orientações sobre o desenvolvimento de aplicações Java no Azure, veja Criar e implementar aplicações Java no Azure.
Implementar e executar a aplicação
Ligue-se à VM com o cliente SSH. Para obter instruções, consulte Ligar através de SSH com PuTTY.
Para atualizar o servidor com o pacote de aplicações, pare o serviço Tomcat:
sudo systemctl stop tomcat
Para poder escrever na pasta webapps, adicione o utilizador de FTP ao grupo Tomcat. O utilizador de FTP é o utilizador que define quando cria a VM no Azure Stack Hub.
sudo usermod -a -G tomcat <VM-user>
Para limpar a pasta de aplicações Web e, em seguida, carregar a sua WAR nova ou atualizada, ligue-se à sua VM com o FileZilla. Para obter instruções, consulte Ligar ao SFTP com o FileZilla.
a. Limpe TOMCAT_HOME/webapps.
b. Adicione a sua WAR a TOMCAT_HOME/webapps (por exemplo, /opt/tomcat/webapps/).
O Tomcat expande e implementa automaticamente a aplicação. Pode vê-lo com o nome DNS que criou anteriormente. Por exemplo:
http://yourmachine.local.cloudapp.azurestack.external:8080/sample
Passos seguintes
- Saiba mais sobre como desenvolver para o Azure Stack Hub.
- Saiba mais sobre implementações comuns do Azure Stack Hub como IaaS.
- Para aprender a linguagem de programação Java e encontrar recursos adicionais para Java, consulte Java.com.