Implementar uma aplicação web Java para um VM em Azure Stack HubDeploy a Java web app to a VM in Azure Stack Hub

Pode criar uma máquina virtual (VM) para hospedar a sua aplicação web Java no Azure Stack Hub.You can create a virtual machine (VM) to host your Java web app in Azure Stack Hub. Neste artigo, você instala, abre as portas certas e configura um servidor Apache Tomcat num Linux VM em Azure Stack Hub.In this article, you install, open the right ports, and configure an Apache Tomcat server on a Linux VM in Azure Stack Hub. Em seguida, carregue um ficheiro Java Web Application Resource (WAR) no servidor.You then load a Java Web Application Resource (WAR) file into the server. 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.A WAR file is used to distribute a collection of Java archive (JAR) files, compressed files that contain Java resources such as classes, text, images, XML, and HTML, and other resources that are used to deliver a web application.

Criar uma VMCreate a 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.Set up your VM in Azure Stack Hub by following the instructions in Deploy a Linux VM to host a web app in Azure Stack Hub.

  2. No painel de rede VM, certifique-se de que as seguintes portas estão acessíveis:In the VM network pane, make sure that the following ports are accessible:

    PortaPort ProtocoloProtocol DescriptionDescription
    8080 HTTPHTTP Hypertext Transfer Protocol (HTTP) é o protocolo que é usado para entregar páginas web a partir de servidores.Hypertext Transfer Protocol (HTTP) is the protocol that's used to deliver webpages from servers. Os clientes conectam-se via HTTP com um nome DNS ou endereço IP.Clients connect via HTTP with a DNS name or IP address.
    443443 HTTPSHTTPS 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.Hypertext Transfer Protocol Secure (HTTPS) is a secure version of HTTP that requires a security certificate and allows for the encrypted transmission of information.
    2222 SSHSSH Secure Shell (SSH) é um protocolo de rede encriptado para comunicações seguras.Secure Shell (SSH) is an encrypted network protocol for secure communications. Utilize esta ligação com um cliente SSH para configurar o VM e implementar a aplicação.You use this connection with an SSH client to configure the VM and deploy the app.
    33893389 RDPRDP Opcional.Optional. 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.The Remote Desktop Protocol (RDP) allows a remote desktop connection to use a graphic user interface on your machine.
    80808080 PersonalizadoCustom A porta padrão para o serviço Apache Tomcat.The default port for the Apache Tomcat service. Para um servidor de produção, você encaminha o seu tráfego através de 80 e 443.For a production server, you route your traffic through 80 and 443.

Instalar JavaInstall Java

  1. Ligue-se ao seu VM utilizando o seu cliente SSH.Connect to your VM by using your SSH client. Para obter instruções, consulte Connect via SSH com PuTTY.For instructions, see Connect via SSH with PuTTY.

  2. Na batida pronta no seu VM, executar o seguinte comando:At the bash prompt on your VM, run the following command:

        sudo apt-get install default-jdk
    
  3. Valide a sua instalação.Validate your installation. Ainda ligado ao seu VM na sua sessão de SSH, executar o seguinte comando:Still connected to your VM in your SSH session, run the following command:

        java -version
    

Instalar e configurar TomcatInstall and configure Tomcat

  1. Ligue-se ao seu VM utilizando o seu cliente SSH.Connect to your VM by using your SSH client. Para obter instruções, consulte Connect via SSH com PuTTY.For instructions, see Connect via SSH with PuTTY.

  2. Criar um utilizador Tomcat fazendo o seguinte:Create a Tomcat user by doing the following:

    a.a. Criar um novo grupo Tomcat executando o seguinte comando:Create a new Tomcat group by running the following command:

        sudo groupadd tomcat
    

    b.b. Criar um novo utilizador Tomcat.Create a new Tomcat user. Adicione este utilizador ao grupo Tomcat com um diretório caseiro de /opt/tomcat.Add this user to the Tomcat group with a home directory of /opt/tomcat. Você coloca Tomcat neste diretório:You deploy Tomcat to this directory:

        sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
    
  3. Instale o Tomcat fazendo o seguinte:Install Tomcat by doing the following:

    a.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.Get the URL for the tar for the latest version of Tomcat 8 from the Tomcat 8 download page.

    b.b. Utilize o cURL para descarregar a versão mais recente utilizando o link.Use cURL to download the latest version by using the link. Execute os seguintes comandos:Run the following commands:

        cd /tmp 
        curl -O <URL for the tar for the latest version of Tomcat 8>
    

    c.c. Instale o Tomcat no diretório /opt/tomcat.Install Tomcat to the /opt/tomcat directory. Crie a pasta e, em seguida, abra o arquivo:Create the folder, and then open the archive:

        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:Update the permissions for Tomcat by running the following commands:

        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.Create a systemd service file, so that you can run Tomcat as a service.

    a.a. O Tomcat precisa de saber onde instalou a Java.Tomcat needs to know where you installed Java. Este caminho é comumente referido como JAVA_HOME.This path is commonly referred to as JAVA_HOME. Encontre a localização correndo:Find the location by running:

        sudo update-java-alternatives -l
    

    Isto produz algo como o seguinte:This produces something like the following:

        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.You can construct the JAVA_HOME variable value by taking the path from the output and adding /jre. Por exemplo, utilizando o exemplo anterior, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.For example, using the preceding example, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.

    b.b. Utilize o valor do seu servidor para criar o ficheiro de serviço sistemas:Use the value from your server to create the systemd service file:

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

    c.c. Cole os seguintes conteúdos no seu ficheiro de serviço.Paste the following contents into your service file. Modifique o valor de JAVA_HOME, se necessário, para corresponder ao valor encontrado no seu sistema.Modify the value of JAVA_HOME, if necessary, to match the value you found on your system. Também pode querer modificar as definições de atribuição de memória que são especificadas em CATALINA_OPTS:You might also want to modify the memory allocation settings that are specified in 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.d. Guarde e feche o ficheiro.Save and close the file.

    e.e. Recarregue o daemon sistemado para que saiba sobre o seu ficheiro de serviço:Reload the systemd daemon so that it knows about your service file:

        sudo systemctl daemon-reload
    

    f.f. Inicie o serviço Tomcat:Start the Tomcat service:

        sudo systemctl start tomcat
    

    exemplo,g. Verifique se começou sem erros ao introduzir:Verify that it started without errors by entering:

        sudo systemctl status tomcat
    
  6. Verifique o servidor Tomcat.Verify the Tomcat server. Tomcat usa a porta 8080 para aceitar pedidos convencionais.Tomcat uses port 8080 to accept conventional requests. Permitir o tráfego para aquela porta executando o seguinte comando:Allow traffic to that port by running the following command:

        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.If you haven't added the Inbound port rules for your Azure Stack Hub VM, add them now. Para obter mais informações, consulte Criar um VM.For more information, see Create a 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.Open a browser in the same network as your Azure Stack Hub, and then open your server, yourmachine.local.cloudapp.azurestack.external:8080.

    Screenshot que mostra a página apache Tomcat.

    A página Apache Tomcat nas cargas do seu servidor.The Apache Tomcat page on your server loads. Em seguida, configura o servidor para permitir que aceda ao Estado do Servidor, à App do Gestor e ao Gestor do Anfitrião.Next, you configure the server to allow you to access the Server Status, Manager App, and Host Manager.

  8. Ativar o ficheiro de serviço de modo a que o Tomcat comece automaticamente quando reiniciar o seu servidor:Enable the service file so that Tomcat automatically starts when you reboot your server:

        sudo systemctl enable tomcat
    
  9. Para permitir o acesso à interface de gestão web, configuure o servidor Tomcat.To allow yourself access to the web management interface, configure the Tomcat server.

    a.a. Editar o ficheiro tomcat-users.xml e definir uma função e utilizador para que possa iniciar sessão.Edit the tomcat-users.xml file, and define a role and user so that you can sign in. Defina o utilizador para aceder ao manager-gui e admin-gui . .Define the user to access the manager-gui and admin-gui.

        sudo nano /opt/tomcat/conf/tomcat-users.xml
    

    b.b. Adicione os seguintes elementos à <tomcat-users> secção:Add the following elements to the <tomcat-users> section:

        <role rolename="tomcat"/>
        <user username="<username>" password="<password>" roles="tomcat,manager-gui,admin-gui"/>
    

    Por exemplo, o seu ficheiro final pode parecer algo como:For example, your final file might look something like:

        <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.c. Guarde e feche o ficheiro.Save and close the file.

  10. A Tomcat restringe o acesso às aplicações do Manager e do Host Manager às ligações provenientes do servidor.Tomcat restricts access to the Manager and Host Manager apps to connections coming from the server. Como está a instalar o Tomcat num VM no Azure Stack Hub, vai querer remover esta restrição.Because you're installing Tomcat on a VM in Azure Stack Hub, you'll want to remove this restriction. Altere as restrições de endereço IP nestas aplicações editando os ficheiros context.xml apropriados.Change the IP address restrictions on these apps by editing the appropriate context.xml files.

    a.a. Atualização context.xml na aplicação Manager:Update context.xml in the Manager app:

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

    b.b. Comente a restrição do 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.Comment out the IP address restriction to allow connections from anywhere, or add the IP address of the machine you're using to connect to 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.c. Guarde e feche o ficheiro.Save and close the file.

    d.d. Atualização context.xml a aplicação Host Manager com uma atualização semelhante:Update context.xml the Host Manager app with a similar update:

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

    e.e. Guarde e feche o ficheiro.Save and close the file.

  11. Para atualizar o servidor com as alterações, reinicie o serviço Tomcat:To update the server with the changes, restart the Tomcat service:

        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.Open a browser in the same network as your Azure Stack Hub, and then open your server: yourmachine.local.cloudapp.azurestack.external:8080.

    a.a. Para rever o estado do servidor Tomcat e verificar se tem acesso, selecione 'Estado do Servidor'.To review the status of the Tomcat server and verify that you have access, select Server Status.

    b.b. Inscreva-se com as suas credenciais tomcat.Sign in with your Tomcat credentials.

    Apache Tomcat em um Azure Stack Hub VM

Criar uma aplicaçãoCreate an app

Vais ter de criar uma GUERRA para chegar ao Tomcat.You'll need to create a WAR to deploy to Tomcat. Se quiser apenas verificar o seu ambiente, pode encontrar um exemplo WAR no site Apache Tomcat.If you want only to check your environment, you can find an example WAR at the Apache Tomcat site.

Para obter orientações sobre o desenvolvimento de aplicações Java em Azure, consulte Build e implemente aplicações Java no Azure.For guidance about developing Java apps in Azure, see Build and deploy Java apps on Azure.

Implementar e executar a aplicaçãoDeploy and run the app

  1. Ligue-se ao seu VM utilizando o seu cliente SSH.Connect to your VM by using your SSH client. Para obter instruções, consulte Connect via SSH com PuTTY.For instructions, see Connect via SSH with PuTTY.

  2. Para atualizar o servidor com o seu pacote de aplicações, pare o serviço Tomcat:To update the server with your app package, stop the Tomcat service:

        sudo systemctl stop tomcat
    
  3. Para poder escrever na pasta de webapps, adicione o seu utilizador FTP ao grupo Tomcat.To be able to write to the webapps folder, add your FTP user to the Tomcat group. O utilizador FTP é o utilizador que define quando cria o seu VM no Azure Stack Hub.Your FTP user is the user you define when you create your VM in 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.To clear the webapps folder and then load your new or updated WAR, connect to your VM with FileZilla. Para obter instruções, consulte Connect with SFTP com FileZilla.For instructions, see Connect with SFTP with FileZilla.

    a.a. Limpar TOMCAT_HOME/webapps.Clear TOMCAT_HOME/webapps.

    b.b. Adicione o seu WAR a TOMCAT_HOME/webapps (por exemplo, /opt/tomcat/webapps/).Add your WAR to TOMCAT_HOME/webapps (for example, /opt/tomcat/webapps/).

  5. Tomcat expande e implementa automaticamente a aplicação.Tomcat automatically expands and deploys the application. Pode vê-lo utilizando o nome DNS que criou anteriormente.You can view it by using the DNS name you created earlier. Por exemplo:For example:

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

Passos seguintesNext steps