Skip to main content

Install Jenkins Master Slave pada Ubuntu 16.04

Jenkins adalah sebuah aplikasi cross plaform, dimana fungsi utamanya adalah continuous integration dan continuous delivery untuk build  dan test secara berkelanjutan sehingga itu memudahkan developer dalam mengembangan aplikasinya  secara terus menerus.

Use Case:

ada sebuah perusahaan PT Suka Dagang, perusahaan tersebut bergerak dibidang E-Commerce, dimana perusahaan tersebut mengunakan banyak paltform untuk menjalankan aplikasinya diatanya adalah web, android, ios, dll. sebelumnya perusahaan tersebut hanya mengunakan 1 platform saja yaitu web, untuk menlajankan itu mereka hanya menggunakan 1 jenkins saja. namun karena sekarang dia menjalankan aplikasinya dibanyak platform, maka dibutuhkan solusi jenkins master slave, untuk menjalankan masing2 plaform hanya pada satu slave tertentu saja, seperti gambar diatas.

Secara Arsitektur Jenkins support dengan arsitektur master-slave, kita dapat membangun banyak slave untuk satu master. itu juga dikenal dengan Jenkins Distributed Build, hal ini juga memungkinkan untuk menjalankan pekerjaan pada environment yang berbeda, misal linux, windows atau macos. Selain itu kita juga dapat menjalankan skema testing secara paralel pada env yang berbeda dengan jenkins distributed build, dengan itu maka suatu proses dapat dikerjakan secara bersamaan dan lebih cepat, dan semua hasil pekerjaan di monitoring oleh master.

Jenkins Master

Your main Jenkins server is the master machine. The tasks performed by the master are :

  • Scheduling build jobs.
  • Dispatching builds to the slaves for the execution.
  • Monitor the slaves.
  • Recording and presenting the build results.
  • Can also execute build jobs directly.

Jenkins Slave

A slave is a Java executable that runs on a remote machine. The characteristics of the slave are :

  • It hears requests from the Jenkins Master instance.
  • Slaves can run on a variety of operating systems.
  • The job of a Slave is to do as they are told to, which involves executing build jobs dispatched by the Master.
  • We can configure a project to always run on a particular Slave machine or a particular type of Slave machine, or simply let Jenkins pick the next available Slave.

 

Sebelum anda menjalankan ini, anda harus install jenkins terlebih dahulu disini

  • Generate SSH Key – Pada Jenkins Master

Hasil SSH Key Public

  • Jalankan Pada Jenkins Worker

kemudian install beberapa package

  • Buat Credentials SSH Private Key di jenkins master

Pilih Add Credentials, pada Kind pilih SSH Username with private key, username : root, private key (dari jenkins master, cat ~/.ssh/id_rsa)

Pilih Manage Jenkins -> manage Nodes

Pilih New Nodes

masukan Node Name: Jenkins-worker1, pilih permanent

Perhatikan pada bagian yang saya kasih tanda merah

Tunggu beberapa menit untuk proses sync

Untuk case ini saya hanya mengunakan 1 slave saja, namun jika anda membutuhkan env di windows, anda juga dapat install slave agent jenkins di windows

cukup sekian tutorialnya semoga bermanfaat 😀

Ref:

  • https://blog.knoldus.com/setting-up-master-slave-machines-using-jenkins/
  • https://embeddedartistry.com/blog/2017/12/22/jenkins-configuring-a-linux-slave-node

 

Alan Adi Prastyo

System Engineer