Menyebarkan aplikasi web Java ke mesin virtual di Azure Stack Hub

Anda dapat membuat mesin virtual (VM) untuk menghosting aplikasi web Java Anda di Azure Stack Hub. Dalam artikel ini, Anda memasang, membuka port yang tepat, dan mengonfigurasi server Apache Tomcat pada mesin virtual Linux di Azure Stack Hub. Anda kemudian memuat file Java Web Application Resource (WAR) ke server. File WAR digunakan untuk mendistribusikan koleksi file arsip Java (JAR), file terkompresi yang berisi sumber daya Java seperti kelas, teks, gambar, XML, dan HTML, dan sumber daya lain yang digunakan untuk mengirimkan aplikasi web.

Buat VM

  1. Siapkan VM di Azure Stack Hub dengan mengikuti petunjuk di Menyebarkan VM Linux untuk menghosting aplikasi web di Azure Stack Hub.

  2. Di panel jaringan VM, pastikan port berikut dapat diakses:

    Port Protokol Deskripsi
    80 HTTP Protokol Transfer Hiperteks (HTTP) adalah protokol yang digunakan untuk mengirimkan halaman web dari server. Klien tersambung melalui HTTP dengan nama DNS atau alamat IP.
    443 HTTPS Protokol Transfer Hiperteks Aman (HTTPS) adalah versi aman dari HTTP yang memerlukan sertifikat keamanan dan memungkinkan transmisi informasi terenkripsi.
    22 SSH Secure Shell (SSH) adalah protokol jaringan terenkripsi untuk komunikasi yang aman. Anda menggunakan koneksi ini dengan klien SSH untuk mengonfigurasi VM dan menyebarkan aplikasi.
    3389 RDP Opsional. Protokol Desktop Jauh (RDP) memungkinkan koneksi desktop jarak jauh untuk menggunakan antarmuka pengguna grafis pada komputer Anda.
    8080 Kustom Port default untuk layanan Apache Tomcat. Untuk server produksi, rutekan lalu lintas Anda melalui 80 dan 443.

Memasang Java

  1. Sambungkan ke mesin virtual Anda dengan menggunakan klien SSH Anda. Sebagai petunjuk, lihat Menyambungkan melalui SSH dengan PuTTY.

  2. Pada wantian bash di mesin virtual Anda, jalankan perintah berikut:

        sudo apt-get install default-jdk
    
  3. Validasi penginstalan Anda. Masih terhubung ke mesin virtual Anda di sesi SSH, jalankan perintah berikut:

        java -version
    

Memasang dan mengonfigurasi Tomcat

  1. Sambungkan ke mesin virtual Anda dengan menggunakan klien SSH Anda. Sebagai petunjuk, lihat Menyambungkan melalui SSH dengan PuTTY.

  2. Buat pengguna Tomcat dengan melakukan hal berikut:

    a. Buat grup Tomcat baru dengan menjalankan perintah berikut:

        sudo groupadd tomcat
    

    b. Buat pengguna Tomcat baru. Tambahkan pengguna ini ke grup Tomcat dengan direktori beranda /opt/tomcat. Anda menyebarkan Tomcat ke direktori ini:

        sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
    
  3. Pasang Tomcat dengan melakukan hal berikut:

    a. Dapatkan URL untuk tar untuk versi terbaru Tomcat 8 dari halaman unduhan Tomcat 8.

    b. Gunakan cURL untuk mengunduh versi terbaru dengan menggunakan link. Jalankan perintah berikut:

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

    c. Pasang Tomcat ke direktori /opt/tomcat. Buat folder, lalu buka arsip:

        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. Perbarui izin Tomcat dengan menjalankan perintah berikut:

        sudo chgrp -R tomcat /opt/tomcat
        sudo chmod -R g+r conf
        sudo chmod g+x conf
    
  5. Buat file layanan systemd, agar Anda dapat menjalankan Tomcat sebagai layanan.

    a. Tomcat perlu mengetahui di mana Anda memasang Java. Jalur ini umumnya disebut sebagai JAVA_HOME. Temukan lokasi dengan menjalankan:

        sudo update-java-alternatives -l
    

    Hal ini menghasilkan sesuatu seperti berikut:

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

    Anda dapat membangun nilai variabel JAVA_HOME dengan mengambil jalur dari output dan menambahkan / jre. Misalnya, menggunakan contoh sebelumnya, /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre.

    b. Gunakan nilai dari server Anda untuk membuat file layanan systemd:

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

    c. Tempel konten berikut ke dalam file layanan Anda. Ubah nilai JAVA_HOME, jika perlu, agar sesuai dengan nilai yang Anda temukan di sistem Anda. Anda mungkin juga ingin mengubah pengaturan alokasi memori yang ditentukan dalam 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. Simpan dan tutup file.

    e. Muat ulang systemd daemon agar mengetahui tentang file layanan Anda:

        sudo systemctl daemon-reload
    

    f. Mulai layanan Tomcat:

        sudo systemctl start tomcat
    

    g. Pastikan bahwa layanan dimulai tanpa kesalahan dengan memasukkan:

        sudo systemctl status tomcat
    
  6. Verifikasi server Tomcat. Tomcat menggunakan port 8080 untuk menerima permintaan konvensional. Izinkan lalu lintas ke port tersebut dengan menjalankan perintah berikut:

        sudo ufw allow 8080
    

    Jika Anda belum menambahkan Aturan port masuk untuk mesin virtual Azure Stack Hub Anda, tambahkan sekarang. Untuk informasi selengkapnya, lihat Membuat mesin virtual.

  7. Buka browser di jaringan yang sama dengan Azure Stack Hub Anda, lalu buka server Anda, yourmachine.local.cloudapp.azurestack.external:8080.

    Cuplikan layar yang memperlihatkan halaman Apache Tomcat.

    Halaman Apache Tomcat di server Anda dimuat. Selanjutnya, konfigurasikan server untuk memungkinkan Anda mengakses Status Server, Aplikasi Pengelola, dan Pengelola Penyelenggara.

  8. Aktifkan file layanan sehingga Tomcat secara otomatis dimulai saat Anda me-reboot server Anda:

        sudo systemctl enable tomcat
    
  9. Untuk memungkinkan diri Anda mengakses antarmuka pengelolaan web, konfigurasikan server Tomcat.

    a. Edit file tomcat-users.xml, dan tentukan peran dan pengguna agar Anda dapat masuk. Tentukan pengguna untuk mengakses manager-gui dan admin-gui.

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

    b. Tambahkan elemen berikut ke <tomcat-users> bagian:

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

    Sebagai contoh, file akhir Anda mungkin terlihat seperti:

        <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. Simpan dan tutup file.

  10. Tomcat membatasi akses ke aplikasi Pengelola dan Pengelola Penyelenggara ke koneksi yang berasal dari server. Karena Anda memasang Tomcat di mesin virtual di Azure Stack Hub, Anda harus menghapus pembatasan ini. Ubah pembatasan alamat IP pada aplikasi ini dengan mengedit file context.xml yang sesuai.

    a. Perbarui context.xml di aplikasi Pengelola:

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

    b. Komentari pembatasan alamat IP untuk memungkinkan koneksi dari mana saja, atau tambahkan alamat IP komputer yang Anda gunakan untuk tersambung ke 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. Simpan dan tutup file.

    d. Perbarui context.xml aplikasi Host Manager dengan pembaruan serupa:

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

    e. Simpan dan tutup file.

  11. Untuk memperbarui server dengan perubahan, mulai ulang layanan Tomcat:

        sudo systemctl restart tomcat
    
  12. Buka browser di jaringan yang sama dengan Azure Stack Hub Anda, lalu buka server Anda: yourmachine.local.cloudapp.azurestack.external:8080.

    a. Untuk meninjau status server Tomcat dan memverifikasi bahwa Anda memiliki akses, pilih Status Server.

    b. Masuk dengan info masuk Tomcat Anda.

    Apache Tomcat pada VM Azure Stack Hub

Buat aplikasi

Anda harus membuat WAR untuk disebarkan ke Tomcat. Jika hanya ingin memeriksa lingkungan Anda, Anda dapat menemukan contoh WAR di situs Apache Tomcat.

Untuk panduan tentang pengembangan aplikasi Java di Azure, lihat Membangun dan menyebarkan aplikasi Java di Azure.

Menyebarkan dan menjalankan aplikasi

  1. Sambungkan ke mesin virtual Anda dengan menggunakan klien SSH Anda. Sebagai petunjuk, lihat Menyambungkan melalui SSH dengan PuTTY.

  2. Untuk memperbarui server dengan paket aplikasi Anda, hentikan layanan Tomcat:

        sudo systemctl stop tomcat
    
  3. Untuk dapat menulis ke folder webapps, tambahkan pengguna FTP Anda ke grup Tomcat. Pengguna FTP Anda adalah pengguna yang Anda tentukan saat membuat mesin virtual di Azure Stack Hub.

        sudo usermod -a -G tomcat <VM-user>
    
  4. Untuk menghapus folder webapps kemudian memuat WAR baru atau yang diperbarui, sambungkan ke mesin virtual Anda dengan FileZilla. Sebagai petunjuk, lihat Tersambung ke SFTP dengan FileZilla.

    a. Bersihkan TOMCAT_HOME/webapps.

    b. Tambahkan WAR Anda ke TOMCAT_HOME/webapps (misalnya, /opt/tomcat/webapps/).

  5. Tomcat secara otomatis memperluas dan menyebarkan aplikasi. Anda dapat melihatnya dengan menggunakan nama DNS yang Anda buat sebelumnya. Contohnya:

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

Langkah berikutnya