Azure Stack Hub'da bir VM'ye Java web uygulaması dağıtma

Java web uygulamanızı Azure Stack Hub'da barındırmak için bir sanal makine (VM) oluşturabilirsiniz. Bu makalede, Azure Stack Hub'da Linux VM'sinde doğru bağlantı noktalarını yükleyecek, açacak ve bir Apache Tomcat sunucusu yapılandıracaksınız. Ardından sunucuya bir Java Web Uygulaması Kaynağı (WAR) dosyası yüklersiniz. WAR dosyası, Java arşiv (JAR) dosyalarının, sınıfların, metinlerin, görüntülerin, XML ve HTML gibi Java kaynaklarının bulunduğu sıkıştırılmış dosyaların yanı sıra bir web uygulaması teslim etmek için kullanılan diğer kaynakları dağıtmak için kullanılır.

VM oluşturma

  1. Azure Stack Hub'da bir web uygulaması barındırmak için Linux VM dağıtma başlığı altındaki yönergeleri izleyerek Azure Stack Hub'da VM'nizi ayarlayın.

  2. VM ağ bölmesinde aşağıdaki bağlantı noktalarının erişilebilir olduğundan emin olun:

    Bağlantı noktası Protokol Description
    80 HTTP Köprü Metni Aktarım Protokolü (HTTP), sunuculardan web sayfalarını teslim etmek için kullanılan protokoldür. İstemciler BIR DNS adı veya IP adresiyle HTTP üzerinden bağlanır.
    443 HTTPS Köprü Metni Aktarım Protokolü Güvenli (HTTPS), güvenlik sertifikası gerektiren ve bilgilerin şifrelenmesini sağlayan güvenli bir HTTP sürümüdür.
    22 SSH Secure Shell (SSH), güvenli iletişimler için şifrelenmiş bir ağ protokolüdür. Vm'yi yapılandırmak ve uygulamayı dağıtmak için bu bağlantıyı bir SSH istemcisiyle kullanırsınız.
    3389 RDP İsteğe bağlı. Uzak Masaüstü Protokolü (RDP), uzak masaüstü bağlantısının makinenizde grafik kullanıcı arabirimi kullanmasına izin verir.
    8080 Özel Apache Tomcat hizmeti için varsayılan bağlantı noktası. Bir üretim sunucusu için trafiğinizi 80 ve 443'e yönlendirirsiniz.

Java yükleme

  1. SSH istemcinizi kullanarak VM'nize bağlanın. Yönergeler için bkz. PuTTY ile SSH aracılığıyla bağlanma.

  2. VM'nizdeki bash isteminde aşağıdaki komutu çalıştırın:

        sudo apt-get install default-jdk
    
  3. Yüklemenizi doğrulayın. SSH oturumunuzda hala VM'nize bağlıyken aşağıdaki komutu çalıştırın:

        java -version
    

Tomcat'i yükleme ve yapılandırma

  1. SSH istemcinizi kullanarak VM'nize bağlanın. Yönergeler için bkz. PuTTY ile SSH aracılığıyla bağlanma.

  2. Aşağıdakileri yaparak bir Tomcat kullanıcısı oluşturun:

    a. Aşağıdaki komutu çalıştırarak yeni bir Tomcat grubu oluşturun:

        sudo groupadd tomcat
    

    b. Yeni bir Tomcat kullanıcısı oluşturun. Bu kullanıcıyı /opt/tomcat giriş diziniyle Tomcat grubuna ekleyin. Tomcat'i şu dizine dağıtırsınız:

        sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
    
  3. Aşağıdakileri yaparak Tomcat'i yükleyin:

    a. Tomcat 8 indirme sayfasından Tomcat 8'in en son sürümü için katranın URL'sini alın.

    b. Bağlantıyı kullanarak en son sürümü indirmek için cURL kullanın. Aşağıdaki komutları çalıştırın:

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

    c. Tomcat'i /opt/tomcat dizinine yükleyin. Klasörü oluşturun ve ardından arşivi açın:

        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. Aşağıdaki komutları çalıştırarak Tomcat izinlerini güncelleştirin:

        sudo chgrp -R tomcat /opt/tomcat
        sudo chmod -R g+r conf
        sudo chmod g+x conf
    
  5. Tomcat'i hizmet olarak çalıştırabilmeniz için sistemli bir hizmet dosyası oluşturun.

    a. Tomcat'in Java'nın nereye yüklendiğini bilmesi gerekir. Bu yol genellikle JAVA_HOME olarak adlandırılır. Aşağıdakini çalıştırarak konumu bulun:

        sudo update-java-alternatives -l
    

    Bu, aşağıdakine benzer bir şey üretir:

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

    Çıkıştan yolu alıp /jre ekleyerek JAVA_HOME değişken değerini oluşturabilirsiniz. Örneğin, yukarıdaki örneği kullanarak , /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.

    b. Sistemli hizmet dosyasını oluşturmak için sunucunuzdaki değeri kullanın:

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

    c. Aşağıdaki içeriği hizmet dosyanıza yapıştırın. gerekirse , JAVA_HOME değerini sisteminizde bulduğunuz değerle eşleşecek şekilde değiştirin. Ayrıca CATALINA_OPTS'de belirtilen bellek ayırma ayarlarını da değiştirmek isteyebilirsiniz:

        [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. Dosyayı kaydedin ve kapatın.

    e. Sistemli daemon'un hizmet dosyanız hakkında bilgi edinmesi için yeniden yükleyin:

        sudo systemctl daemon-reload
    

    f. Tomcat hizmetini başlatın:

        sudo systemctl start tomcat
    

    g. Hata olmadan başlatıldığını doğrulamak için aşağıdakileri girin:

        sudo systemctl status tomcat
    
  6. Tomcat sunucusunu doğrulayın. Tomcat, geleneksel istekleri kabul etmek için 8080 numaralı bağlantı noktasını kullanır. Aşağıdaki komutu çalıştırarak bu bağlantı noktasına giden trafiğe izin verin:

        sudo ufw allow 8080
    

    Azure Stack Hub VM'niz için Gelen bağlantı noktası kurallarını eklemediyseniz şimdi ekleyin. Daha fazla bilgi için bkz. VM oluşturma.

  7. Azure Stack Hub'ınız ile aynı ağda bir tarayıcı açın ve ardından sunucunuzu (yourmachine.local.cloudapp.azurestack.external:8080) açın.

    Apache Tomcat sayfasını gösteren ekran görüntüsü.

    Sunucunuzdaki Apache Tomcat sayfası yüklenir. Ardından sunucuyu Sunucu Durumu, Yönetici Uygulaması ve Konak Yöneticisi'ne erişmenize izin verecek şekilde yapılandıracaksınız.

  8. Sunucunuzu yeniden başlatırken Tomcat'in otomatik olarak başlatılması için hizmet dosyasını etkinleştirin:

        sudo systemctl enable tomcat
    
  9. Web yönetimi arabirimine erişmenizi sağlamak için Tomcat sunucusunu yapılandırın.

    a. tomcat-users.xml dosyasını düzenleyin ve oturum açabilmeniz için bir rol ve kullanıcı tanımlayın. ve admin-guiöğesine erişmek manager-gui için kullanıcıyı tanımlayın.

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

    b. Bölümüne aşağıdaki öğeleri <tomcat-users> ekleyin:

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

    Örneğin, son dosyanız şuna benzer olabilir:

        <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. Dosyayı kaydedin ve kapatın.

  10. Tomcat , Yönetici ve Konak Yöneticisi uygulamalarına erişimi sunucudan gelen bağlantılarla kısıtlar. Tomcat'i Azure Stack Hub'daki bir VM'ye yüklediğiniz için bu kısıtlamayı kaldırmak istersiniz. Uygun context.xml dosyalarını düzenleyerek bu uygulamalardaki IP adresi kısıtlamalarını değiştirin.

    a. Yönetici uygulamasındakicontext.xml güncelleştirin:

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

    b. Herhangi bir yerden bağlantılara izin vermek için IP adresi kısıtlamasını açıklama satırı yapın veya Tomcat'e bağlanmak için kullandığınız makinenin IP adresini ekleyin.

    <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. Dosyayı kaydedin ve kapatın.

    d. Host Manager uygulamasını benzer bir güncelleştirmeyle context.xml güncelleştirin:

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

    e. Dosyayı kaydedin ve kapatın.

  11. Sunucuyu değişikliklerle güncelleştirmek için Tomcat hizmetini yeniden başlatın:

        sudo systemctl restart tomcat
    
  12. Azure Stack Hub'ınızla aynı ağda bir tarayıcı açın ve ardından sunucunuzu açın: yourmachine.local.cloudapp.azurestack.external:8080.

    a. Tomcat sunucusunun durumunu gözden geçirmek ve erişiminiz olduğunu doğrulamak için Sunucu Durumu'nu seçin.

    b. Tomcat kimlik bilgilerinizle oturum açın.

    Azure Stack Hub VM'sinde Apache Tomcat

Uygulama oluşturma

Tomcat'e dağıtmak için bir WAR oluşturmanız gerekir. Yalnızca ortamınızı denetlemek istiyorsanız Apache Tomcat sitesinde örnek bir WAR bulabilirsiniz.

Azure'da Java uygulamaları geliştirme hakkında yönergeler için bkz. Azure'da Java uygulamaları derleme ve dağıtma.

Uygulamayı dağıtma ve çalıştırma

  1. SSH istemcinizi kullanarak VM'nize bağlanın. Yönergeler için bkz. PuTTY ile SSH aracılığıyla bağlanma.

  2. Sunucuyu uygulama paketinizle güncelleştirmek için Tomcat hizmetini durdurun:

        sudo systemctl stop tomcat
    
  3. Webapps klasörüne yazabilmek için FTP kullanıcınızı Tomcat grubuna ekleyin. FTP kullanıcınız, Azure Stack Hub'da VM'nizi oluştururken tanımladığınız kullanıcıdır.

        sudo usermod -a -G tomcat <VM-user>
    
  4. Webapps klasörünü temizlemek ve ardından yeni veya güncelleştirilmiş WAR'ınızı yüklemek için FileZilla ile VM'nize bağlanın. Yönergeler için bkz. FileZilla ile SFTP ile bağlanma.

    a. TOMCAT_HOME/web uygulamalarını temizleyin.

    b. WAR'unuzu TOMCAT_HOME/webapps'e ekleyin (örneğin, /opt/tomcat/webapps/).

  5. Tomcat uygulamayı otomatik olarak genişletir ve dağıtır. Daha önce oluşturduğunuz DNS adını kullanarak görüntüleyebilirsiniz. Örnek:

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

Sonraki adımlar