1. sudo apt-get update

  2. sudo apt install openjdk-11-jdk

  3. java --version

  4. curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

  5. echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]  https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

  6. sudo apt update

  7. sudo apt install Jenkins

  8. sudo usermod -a -G root jenkins

  9. sudo systemctl start Jenkins

  10. sudo systemctl status jenkins

  11. sudo ufw allow 8080

  12. sudo ufw allow 20

  13. sudo ufw enable

  14. sudo ufw status

  15. Access browser http://localhost:8080

  1. sudo cat /var/lib/jenkins/secrets/initialAdminPassword

  1. copy password dan pastekan ke isian yang muncul di web

  2. pilih nstall suggested plugins


Config Domain dan SSL Nginx untuk jenkins

  1. nano /etc/nginx/sites-available/jenkins

server {

    listen 80;

    listen [::]:80;

return 301 https://$host$request_uri;

}


#Block HTTPS


server {

    listen       443 ssl;

    listen       [::]:443 ssl;

server_name jen-integration-app.sociomile.net;

    #ssl on;

    ssl_certificate         /etc/ssl/certs/cert.pem; #cert dari sociomile.net (cloudflare)

    ssl_certificate_key     /etc/ssl/private/cert.key; #cert dari sociomile.net (cloudflare)

location / {

      proxy_set_header        Host $host;

      proxy_set_header        X-Real-IP $remote_addr;

      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_set_header        X-Forwarded-Proto $scheme;


      # Fix the “It appears that your reverse proxy set up is broken" error.

      proxy_pass          http://localhost:8080;

      proxy_read_timeout  90;


      proxy_redirect      http://localhost:8080 https://jen-integration-app.sociomile.net;

    }

}


  1. sudo nano /etc/default/jenkins

  2. Setelah itu, cari JENKINS\_ARGSbaris tersebut dan perbarui agar terlihat seperti ini:


JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpListenAddress=127.0.0.1 --httpPort=$HTTP_PORT -ajp13Port=$AJP_PORT"

Perhatikan bahwa pengaturan –httpListenAddress=127.0.0.1 perlu ditambahkan atau diedit.


Setelah itu, lanjutkan dan restart Jenkins dan Nginx.


  1. sudo service jenkins restart

  2. sudo service nginx restart

Sekarang Anda seharusnya dapat mengunjungi domain Anda menggunakan HTTP atau HTTPS, dan situs Jenkins akan disajikan dengan aman.


Opsional) Memperbarui URL OAuth



Jika Anda menggunakan GitHub atau plugin OAuth lain untuk autentikasi, plugin tersebut mungkin rusak saat ini. Misalnya, saat mencoba mengunjungi URL tersebut, Anda akan mendapatkan pesan "Gagal membuka halaman" dengan URL yang mirip dengan berikut:


http://jenkins.domain.com:8080/securityRealm/finishLogin?code=random-string


Untuk memperbaiki masalah ini, Anda perlu memperbarui beberapa pengaturan, termasuk pengaturan plugin OAuth Anda. Pertama, Anda perlu memperbarui URL Jenkins (di Jenkins GUI), Anda dapat menemukannya dengan menavigasi dengan cara berikut:


Jenkins -> Kelola Jenkins -> Konfigurasi Sistem -> Lokasi Jenkins


Setelah itu, perbarui URL Jenkins untuk menggunakan HTTPS -https://jenkins.domain.com/


Sebagai langkah berikutnya, perbarui setelan OAuth Anda dengan penyedia eksternal. Contoh ini untuk GitHub. Di GitHub, Anda dapat menemukannya di Pengaturan -> Aplikasi -> Aplikasi pengembang , di situs GitHub.


Harus ada entri untuk Jenkins. Perbarui URL Beranda dan URL panggilan balik Otorisasi untuk mencerminkan pengaturan HTTPS. Anda akan melihat sesuatu seperti ini.