Implementar uma aplicação web Java para um VM no Azure Stack Hub

Pode criar uma máquina virtual (VM) para hospedar a sua aplicação web Java no Azure Stack Hub. Neste artigo, você instala, abre as portas certas e configura um servidor Apache Tomcat num Linux VM em Azure Stack Hub. Em seguida, carregue um ficheiro Java Web Application Resource (WAR) no servidor. Um ficheiro WAR é usado para distribuir uma coleção de ficheiros de arquivo Java (JAR), ficheiros comprimidos que contêm recursos java tais como classes, texto, imagens, XML e HTML, e outros recursos que são usados para entregar uma aplicação web.

Criar uma VM

  1. Confule o seu VM no Azure Stack Hub seguindo as instruções em Implementar um Linux VM para hospedar uma aplicação web no Azure Stack Hub.

  2. No painel de rede VM, certifique-se de que as seguintes portas estão acessíveis:

    Porta Protocolo Description
    80 HTTP O Protocolo de Transferência de Hipertextos (HTTP) é o protocolo utilizado para entregar páginas web a partir de servidores. Os clientes conectam-se via HTTP com um nome DNS ou endereço IP.
    443 HTTPS Hypertext Transfer Protocol Secure (HTTPS) é uma versão segura do HTTP que requer um certificado de segurança e permite a transmissão encriptada de informações.
    22 SSH Secure Shell (SSH) é um protocolo de rede encriptado para comunicações seguras. Utilize esta ligação com um cliente SSH para configurar o VM e implementar a aplicação.
    3389 RDP Opcional. O Protocolo de Ambiente de Trabalho Remoto (RDP) permite que uma ligação remota de ambiente de trabalho utilize uma interface de utilizador gráfica na sua máquina.
    8080 Personalizado A porta padrão para o serviço Apache Tomcat. Para um servidor de produção, você encaminha o seu tráfego através de 80 e 443.

Instalar Java

  1. Ligação ao seu VM utilizando o seu cliente SSH. Para obter instruções, consulte Ligação via SSH com PuTTY.

  2. Na batida pronta no seu VM, executar o seguinte comando:

        sudo apt-get install default-jdk
    
  3. Valide a sua instalação. Ainda ligado ao seu VM na sua sessão de SSH, executar o seguinte comando:

        java -version
    

Instalar e configurar Tomcat

  1. Ligação ao seu VM utilizando o seu cliente SSH. Para obter instruções, consulte Ligação via SSH com PuTTY.

  2. Criar um utilizador Tomcat fazendo o seguinte:

    a. Criar um novo grupo Tomcat executando o seguinte comando:

        sudo groupadd tomcat
    

    b. Criar um novo utilizador Tomcat. Adicione este utilizador ao grupo Tomcat com um diretório caseiro de /opt/tomcat. Você coloca Tomcat neste diretório:

        sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
    
  3. Instale o Tomcat fazendo o seguinte:

    a. Obtenha o URL para o alcatrão para a versão mais recente do Tomcat 8 da página de descarregamento do Tomcat 8.

    b. Utilize o cURL para descarregar a versão mais recente utilizando o link. 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/
    
  4. Atualize as permissões para Tomcat executando os seguintes comandos:

        sudo chgrp -R tomcat /opt/tomcat
        sudo chmod -R g+r conf
        sudo chmod g+x conf
    
  5. Crie um ficheiro de serviço sistema, para que possa executar o Tomcat como um serviço.

    a. O Tomcat precisa de saber onde instalou a Java. Este caminho é comumente referido como JAVA_HOME. Encontre a localização correndo:

        sudo update-java-alternatives -l
    

    Isto produz algo como o seguinte:

        Output
        java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
    

    Pode construir o valor variável JAVA_HOME, tomando o caminho a partir da saída e adicionando /jre. Por exemplo, utilizando o exemplo anterior, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.

    b. Utilize o valor do seu servidor para criar o ficheiro de serviço sistemas:

        sudo nano /etc/systemd/system/tomcat.service
    

    c. Cole os seguintes conteúdos no seu ficheiro de serviço. Modifique o valor de JAVA_HOME,se necessário, para corresponder ao valor encontrado no seu sistema. Também pode querer modificar as definições de atribuição de memória que são especificadas em 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 sistemado para que saiba sobre o seu 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
    
  6. Verifique o servidor Tomcat. Tomcat usa a porta 8080 para aceitar pedidos convencionais. Permitir o tráfego para aquela porta executando o seguinte comando:

        sudo ufw allow 8080
    

    Se ainda não adicionou as regras da porta de entrada para o seu Azure Stack Hub VM, adicione-as agora. Para mais informações, consulte Criar um VM.

  7. Abra um browser na mesma rede que o seu Azure Stack Hub e, em seguida, abra o seu servidor, seumachine.local.cloudapp.azurestack.external:8080.

    Screenshot que mostra a página de Apache Tomcat.

    A página Apache Tomcat nas cargas do seu servidor. Em seguida, configura o servidor para permitir que aceda ao Estado do Servidor, à App do Gestor e ao Gestor do Anfitrião.

  8. Ativar o ficheiro de serviço de modo a que o Tomcat comece automaticamente quando reiniciar o seu servidor:

        sudo systemctl enable tomcat
    
  9. Para permitir o acesso à interface de gestão web, configuure o servidor Tomcat.

    a. Editar o ficheiro tomcat-users.xml e definir uma função e utilizador para que possa iniciar sessão. Defina o utilizador para aceder ao manager-gui e admin-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 seu ficheiro final pode parecer algo como:

        <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.

  10. A Tomcat restringe o acesso às aplicações do Manager e do Host Manager às ligações provenientes do servidor. Como está a instalar o Tomcat num VM no Azure Stack Hub, vai querer remover esta restrição. Altere as restrições de endereço IP nestas aplicações editando os ficheiros context.xml apropriados.

    a. Atualização context.xml na aplicação Manager:

        sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
    

    b. Comente a restrição de endereço IP para permitir ligações a partir de qualquer lugar ou adicione o endereço IP da máquina que está a usar 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. Atualização context.xml a aplicação Host Manager com uma atualização semelhante:

        sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
    

    e. Guarde e feche o ficheiro.

  11. Para atualizar o servidor com as alterações, reinicie o serviço Tomcat:

        sudo systemctl restart tomcat
    
  12. Abra um browser na mesma rede que o seu Azure Stack Hub e, em seguida, abra o seu 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. Inscreva-se com as suas credenciais tomcat.

    Apache Tomcat em um Azure Stack Hub VM

Criar uma aplicação

Vais ter de criar uma GUERRA para chegar ao Tomcat. Se quiser apenas verificar o seu ambiente, pode encontrar um exemplo WAR no site Apache Tomcat.

Para obter orientações sobre o desenvolvimento de aplicações Java em Azure, consulte Build e implemente aplicações Java no Azure.

Implementar e executar a aplicação

  1. Ligação ao seu VM utilizando o seu cliente SSH. Para obter instruções, consulte Ligação via SSH com PuTTY.

  2. Para atualizar o servidor com o seu pacote de aplicações, pare o serviço Tomcat:

        sudo systemctl stop tomcat
    
  3. Para poder escrever na pasta de webapps, adicione o seu utilizador FTP ao grupo Tomcat. O utilizador FTP é o utilizador que define quando cria o seu VM no Azure Stack Hub.

        sudo usermod -a -G tomcat <VM-user>
    
  4. Para limpar a pasta de webapps e, em seguida, carregar o seu WAR novo ou atualizado, ligue-se ao seu VM com FileZilla. Para obter instruções, consulte Ligação com o SFTP com o FileZilla.

    a. Limpe TOMCAT_HOME/webapps.

    b. Adicione o seu WAR a TOMCAT_HOME/webapps (por exemplo, /opt/tomcat/webapps/).

  5. Tomcat expande e implementa automaticamente a aplicação. Pode vê-lo utilizando o nome DNS que criou anteriormente. Por exemplo:

       http://yourmachine.local.cloudapp.azurestack.external:8080/sample
    

Passos seguintes