Jenkins apa itu?

Jenkins merupakan sebuah automasi server berbasis open source yang ditulis menggunakan bahasa Java. Salah satu kegunaan Jenkins adalah untuk mengimplementasikan Continuous Integration dan Continous Delivery atau biasa yang disebut CI/CD proses. lebih jelasnya jenkins memudahkan kita untuk Proses seperti testing, building dan deployment yang dapat dijalankan secara otomatis.

Menyiapkan Server Build Jenkins

Membuat server build dengan cepat untuk integrasi berkelanjutan (CI) di AWS

Q: Apa itu Jenkins?

Jenkins adalah alat integrasi berkelanjutan open-source yang ditulis dalam Java. Ia menyediakan layanan integrasi kustom bagi pengembangan perangkat lunak. Ia merupakan sistem berbasis server yang digunakan oleh banyak tim pengembangan.

T: Mengapa saya harus menggunakan Jenkins?

Anda perlu menggunakan Jenkins jika Anda berusaha mempercepat Software Development Lifecycle (SDLC) Anda. Jenkins memungkinkan Anda mengintegrasikan pembangunan, penerapan, dan pengujian di berbagai lingkungan, sembari mengurangi waktu tunggu bagi tim pengembangan Anda. Terakhir, karena ia memungkinkan Anda mengintegrasikan secara berkelanjutan, Jenkins cocok bagi DevOps dan metodologi tangkas yang menggunakan daur iterasi cepat.

Q: Mengapa saya perlu menjalankan Jenkins di AWS?

AWS menyediakan sumber daya infrastruktur andal, terskala, dan aman yang ideal untuk menjalankan aplikasi semacam Jenkins. Dengan menjalankan Jenkins pada komputasi AWS, Anda hanya membayar untuk yang Anda gunakan dan dapat menaikkan atau menurunkan skala kapasitas untuk menyesuaikan dengan kebutuhan spesifik Anda.

Q: Akankah saya memiliki lingkungan Jenkins saya?

Ya – semua sumber daya yang dibuat ketika mengeksekusi panduan Memulai ini tetap menjadi milik Anda dan akan ada di dalam akun Anda. Mereka akan tetap ada hingga Anda memutuskan untuk menghapus instans Amazon EC2.

Q: Berapa harga Jenkins?

Jenkins merupakan perangkat lunak open-source gratis. Biaya yang Anda bayar hanya infrastruktur dasar tempat Jenkins berjalan. Untuk informasi selengkapnya, lihat Layanan yang Digunakan dan Biaya.

Q: Bagaimana saya dapat mengamankan Jenkins di AWS?

Anda harus memanfaatkan Grup Keamanan dan menggunakan kata sandi yang kuat. Anda juga harus memastikan bahwa instalasi instans EC2 dan Jenkins Anda termutakhirkan dengan patch keamanan terbaru. Grup keamanan bertindak sebagai stateful firewall virtual yang mengendalikan lalu lintas bagi satu instans atau lebih. Jika memungkinkan, persempit rentang IP hingga hanya pada sumber alamat IP yang relevan. Jangan membuka port TCP atau UDP luar apa pun (TCP 80 dan 8080 sudah cukup). Ketika mengatur kata sandi bagi Jenkins, ikuti praktik terbaik penyandian yang biasa dan gunakan karakter alfanumerik huruf kecil dan huruf kapital sebagai tambahan bagi simbol (misalnya, /, ., !, *…). Anda dapat memastikan bahwa instans Amazon Linux Anda mempunyai paket terbaru terinstal dengan menjalankan pemutakhiran yum. Hal ini juga akan memutakhirkan Jenkins jika Anda telah menginstalnya menggunakan yum, sesuai dengan instruksi panduan ini.

Q: Dapatkah saya menjalankan Jenkins dalam sebuah subnet pribadi?

Anda dapat menginstal Jenkins pada instans EC2 yang merupakan bagian dari subnet publik atau pribadi. Jika Anda ingin menempatkan instans tersebut dalam sebuah subnet pribadi, Anda akan perlu memastikan bahwa Anda dapat mengakses front-end Jenkins. Jika Anda terkoneksi melalui internet, Anda dapat memilih untuk menciptakan sebuah grup target Jenkins dan menggunakan sebuah Application Load Balancer untuk menciptakan suatu titik akhir publik bagi instans host pribadi Anda. Jika Anda terkoneksi dari pusat data Anda sendiri, Anda akan ingin membuat sebuah VPN atau terkoneksi ke Jenkins melalui Direct Connect.

Q: Bagaimana saya dapat menyesuaikan skala Jenkins?

Ada beberapa cara agar Anda dapat memastikan bahwa Jenkins akan mengikuti kebutuhan CI/CD Anda. Satu cara langsung adalah menyesuaikan skala secara vertikal instans EC2 dengan mengganti ukuran instans. Cara lainnya adalah dengan mengonfigurasiJenkins Amazon EC2 Container Service Plugin dengan demikian mengalihkan tugas build ke slave task Jenkins pada sebuah klaster ECS.

# Installasi Jenkins

untuk proses installasi saya sudah membuat script bash yang memudahkan penginstallan jenkins.
$ git clone https://github.com/notme1001/jenkins-run.git && cd jenkins-run
$ ./test.sh
+++++++++++++++++++++++++++++++++++inu++++++++++++++++++++++++++++++++++++++++++++
      __               __    __                                              
     |__| ____   ____ |  | _|__| ____   ______         _______ __ __  ____   
     |  |/ __ \ /    \|  |/ /  |/    \ /  ___/  ______ \_  __ \  |  \/    \  
     |  \  ___/|   |  \    <|  |   |  \___ \   /_____/  |  | \/  |  /   |  \ 
 /\__|  |\___  >___|  /__|_ \__|___|  /____  >          |__|  |____/|___|  / 
 \______|    \/     \/     \/       \/     \/                            \/  
=============================Jenkins-Installer====================================
Simple Install Jenkins With one command , Select Distro Linux for install :
 Date : Sel 23 Mar 2021 05:49:33  WIB
 1 - centos7
 2 - ubuntu or debian
 3 - Example Jenkinsfile
Enter selection:
Pilih distro Linux yang di gunakan pada server atau local. setelah installasi selesai kita bisa mengakses jenkins dengan membuka url jenkins dengan port default yaitu 8080. http://ip-server:8080 .

Konfigurasi Jenkins

  • Unlock Jenkins dengan menjalankan perintah dibawah. lalu copy password key untuk membuka jenkins.
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
notion image
  • Lanjutkan dengan memilih install suggested plugins.
notion image
  • set username dan password.
notion image
  • Konfigurasi alamat url untuk jenkins.
notion image

# Penggunaan

Mengintegrasikan Jenkins dengan github, untuk otomatis deploy ketika kita melakukan push pada branch yang di tentukan .
  • Buat jobs baru , masukkan namajob dan memilih Pipeline.
notion image
  • Untuk Tab General centang Github Project , dan isi dengan url repository github yang akan digunakan.
notion image
  • Untuk Tab Build Triggers , centang GitHub hook trigger for GITScm polling .
notion image
  • Untuk Tab Pipline , Konfigurasi seperti gambar di bawah, dan Simpan konfigurasi Pipeline.
notion image

Penjelasan Konfigurasi Pipeline

  1. karena kita menggunakan github SCM di sini set git (berlaku juga untuk bitbucket).
  1. cerdential disini saya tidak isi dikarenakan repository yang saya gunakan publik, apabila ingin menggunakan repository yang bersifat private kita bisa menambahkan cerdential menggunakan username & password github atau menggunakan ssh.
  1. Branch to build, masukkan branch yang akan di gunakan .
  1. Script Path , File jenkins yang akan di eksekusi untuk melakukan deployment, defaultnya Jenkinsfiles.
notion image
  • Membuat Jenkinsfile pada repository github, dengan nama Jenkinsfile .
pipeline {
    environment {
        PATH = "$PATH:/usr/bin/docker-compose"
    }
    
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Build... \n'
                sh "ls -lisa"
            }
        }
        stage('Test') {
            steps {
                echo 'Runningg Test.. \n'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Successs... \n'
            }
        }
    }
}

Penjelasan Script Pipeline

  1. environment disini saya memasukkan path docker-compose apabila ingin menggunakan docker , tetapi jika proses deploy tidak menggunakan docker kita bisa menghapusnya.
  1. stage disini adalah tahap yang akan dikerjakan jenkins, disini saya membuat tiga tahap yaitu proses build dengan mencetak echo dan mengecek directory workspace yang di jalankan.
  1. sh berfungsi untuk menjalankan command linux , contohnya di sini saya menjalankan perintah ls .
  • sampai sini kita bisa mengetes build pada jenkins.
notion image
  • Hasil proses build pada jenkins.
notion image
  • Hasil integrasi jenkins dan github, ketika melakukan push Jenkins akan memproses build dengan menarik repositori dan menjalankan Jenkinsfile.
notion image
notion image
Sumber :
https://ibnuu.com/mengenal-jenkins
https://aws.amazon.com/id/getting-started/hands-on/setup-jenkins-build-server/faq/

Check Also

Gunakan GMV (Gross Merchandise Value) untuk mengukur pertumbuhan ekonomi startup

  Startup dianggap sehat dan dimungkinkan jika terus berkembang. Pertumbuhan ini perlu finansial dan juga …

Watch Dragon ball super