Instalasi Jenkins 2.235 di CentOS 7 Server

Jenkins merupakan sebuah perangkat lunak otomatisasi server berbasis Java (open source) yang menawarkan cara mudah untuk mengatur integrasi yang berkelanjutan (Continuous Integration) dan pengiriman (Continuous Delivery) pipeline yang berkesinambungan (CI/CD Pipeline).

Apa itu CI dan apa itu CD?

Continuous Integration (CI) adalah sebuah praktek DevOps di mana anggota tim secara teratur melakukan commit pada perubahan kodingan mereka ke repositori kontrol, tentunya setelah proses build dan testing dilakukan.

Sedangkan Continuous Delivery (CD) merupakan serangkaian praktek di mana perubahan kodingan dibuat, diuji, dan digunakan untuk level produksi secara otomatis.

Persyaratan

Pastikan kalian memiliki sudo atau root access pada server kalian.

Instalasi Aplikasi

  1. Instalasi OpenJDK 8
    Karena Jenkins merupakan sebuah aplikasi berbasis Java, maka tahap pertama yang harus dilakukan adalah instalasi Java. Berikut ini adalah perintah untuk melakukan instalasi paket OpenJDK 8:

    yum install java-1.8.0-openjdk-devel
    Instalasi OpenJDK 8

    Jenkins juga sudah mendukung OpenJDK 11. Jadi kalau kalian memiliki aplikasi lain yang membutuhkan Java11 di dalam satu server yang sama dengan Jenkins, kalian bisa menggunakan OpenJDK 11.

  2. Mengaktifkan repositori
    Tahap berikutnya adalah mengaktifkan repositori Jenkins. Untuk melakukannya, impor GPG Key dengan menggunakan perintah curl berikut:

    curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo
    enable repository

    Dan tambahkan repositorinya ke sistem kalian dengan perintah:

    sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

    Menambahkan repositori
  3. Install versi stabilnya
    Usai repositori diafktifkan, instal versi stabilnya dengan mengetikkan perintah:

    sudo yum install jenkins

    Proses instalasi
  4. Jalankan service
    Setelah proses instalasi selesai, jalankan service-nya dengan mengetikkan perintah:

    sudo systemctl start jenkins
  5. Periksa service
    Untuk memeriksa apakah service-nya sudah berjalan dengan baik, jalankan perintah:

    systemctl status jenkins

    Starting and checking the service
  6. Mengaktifkan secara penuh
    Untuk mengaktifkan service-nya secara penuh (bila sistem operasinya di-restart, aplikasi otomatis akan menyala), jalankan perintah:

    sudo systemctl enable jenkins

    Enable it
  7. Membuka Port
    Jika kalian menjalankan Jenkins pada sebuah remote server yang port 8080-nya diproteksi oleh sebuah firewall, jalankan perintah ini untuk membuka port tersebut:

    sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
    
    sudo firewall-cmd --reload

    membuka port 8080

Pengaturan Jenkins

  1. Untuk membuat pengaturan atas instalasi yang baru saja dilakukan, buka browser kalian dan ketikkan alamat domain atau IP yang diikuti dengan port 8080. Halaman seperti ini akan muncul:

    Halaman awal yang muncul
  2.  Gunakan perintah berikut untuk memunculkan password di terminal:
    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. Copy hasil tersebut ke dalam text box yang tersedia tadi:

    Copy Administrator Password
  4. Pada tahap selanjutnya, kalian akan diberi pilihan untuk menginstal dengan plugin yang disarankan atau kalian memilih plugin secara manual. Pilih saja install suggested plugins dan proses instalasi akan dimulai secara otomatis.
    Install suggested plugins

    proses sedang berjalan
  5. Setelah instalasi komplit, kalian akan diminta untuk memasukkan pengguna administratif yang pertama. Isi informasi tersebut lalu tekan save & continue:

    User admin yang pertama
  6.  pada halaman berikutnya, kalian kana diminta untuk memasukkan URL untuk aplikasi ini. URL akan terisi secara otomatis
    URL terisi secara otomatis

    Untuk menyelesaikan prosesnya, tekan save & finish

  7. Dengan menekan tombol start using Jenkins, kalian sudah siap untuk menggunakan aplikasi tersebut.
    Aplikasi sudah siap

    Halaman admin

Jika kalian sudah mencapai titik ini, berarti kalian sudah sukses melakukan instalasinya di CentOS.

Tambahan

Untuk me-redirect dari port 8080 ke 80 dan untuk memasang SSL di Jenkins, cara yang saya gunakan adalah dengan memasang web server nginx di depan Jenkins. Berikut adalah tahapannya:

  1. Instalasi nginx
    Untuk melakukan instalasi nginx di CentOS, jalankan perintah berikut:

    instalasi nginx
  2. Ubah konfigurasinya nginx agar membuatnya menjadi reverse proxy.
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
        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;
    }
  3.  Untuk mengaktifkan SSL dan me-redirect port 80 ke 443, ubah konfigurasi nginx menjadi:
    upstream jenkins {
    server 127.0.0.1:8080 fail_timeout=0;
    }
    
    server {
    listen 80;
    server_name <nama_server_kalian>;
    return 301 https://<nama_server_kalian>$request_uri;
    }
    
    
    server {
    listen 443 ssl;
    server_name <nama_server_kalian>;
    
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
    
    add_header Strict-Transport-Security "max-age=31536000";
    
    ssl_certificate /etc/letsencrypt/live/<nama_server_kalian>/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/<nama_server_kalian>/privkey.pem;
    
    gzip on;
    gzip_types text/plain text/css application/javascript application/json;
    gzip_vary on;
    
    location / {
    proxy_set_header Host $host:$server_port;
    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;
    proxy_redirect http:// https://;
    proxy_pass http://jenkins;
    # Required for new HTTP-based CLI
    proxy_http_version 1.1;
    proxy_request_buffering off;
    proxy_buffering off; # Required for HTTP-based CLI to work over SSL
    # workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
    add_header 'X-SSH-Endpoint' '<nama_server_kalian>:50022' always;
    }
    }
    konfigurasi nginx

    Sertifikat yang saya gunakan pada contoh di atas berasal dari Let’s Encrypt dengan Certbotnya. Untuk instalasinya bisa kalian lihat DI SINI

  4. Jika instalasi usdah selesai, nyalakan service-nya, aktifkan dan periksa statusnya dengan perintah:
    sudo systemctl enable nginx
    sudo systemctl start nginx
    sudo systemctl status nginx

    enable, start, and check nginx status
  5. Jika service sudah berjalan dengan baik, sekarang waktunya untuk mengizinkan traffic masuk ke port 80 dan 443. Caranya:
    sudo firewall-cmd --zone=public --permanent --add-service=http
    
    sudo firewall-cmd --zone=public --permanent --add-service=https
    
    sudo firewall-cmd --reload

    allow traffic

Leave a Reply

Your email address will not be published. Required fields are marked *