Showing posts with label Konfigurasi. Show all posts
Showing posts with label Konfigurasi. Show all posts

Menjalankan gitlab runner menggunakan docker

Tutorial ini merupakan catatan belajar saya dalam menggunakan GitLab CI/CD dan Docker.

Gitlab Runner adalah sebuah service yang digunakan untuk menjalankan job dan mengirimkan hasilnya kembali ke GitLab.. Shared runner sudah tersedia di Gitlab dan dapat digunakan gratis, tapi anda tetap dapat menghubungkan private runner anda ke gitlab jika kurang puas dengan Shared Runner yang disediakan.


Untuk menjalankan gitlab runner menggunakan docker gunakan perintah 

docker run -d --name gitlab-runner --restart always \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /srv/gitlab-runner/config:/etc/gitlab-runner \

 -v /usr/bin/docker:/usr/bin/docker \

gitlab/gitlab-runner:latest


*Pastikan sudah terinstall docker


Melihat container yang ada di docker dengan perintah docker ps -a

Terlihat terdapat satu container yang berjalan dengan nama gitlab-runner




Untuk masuk ke dalam container gunakan perintah 

docker exec -it gitlab-runner bash




Untuk mendapatkan  URL dan Token yang akan didaftarkan di gitlab runner dan melihat

gitlab runner yang sudah terdaftar di server gitlab, dengan masuk ke halaman:

setting->CI/CD->Runner




Terdapat register runner dengan url dan token yang akan digunakan pada gitlab runner.

Untuk menghubungkan gitlab-runner dengan server gitlab gunakan perintah 

Gitlab-runner register maka akan menampilkan inputan:

Isian yang dimasukkan diambil dari halaman setting->CI/CD->Runner pada server gitlab yang telah dilihat sebelumnya. 

Terutama Gitlab install URL dan Registration token 


Jika tidak perlu masuk dalam container bisa menggunakan perintah:

docker exec gitlab-runner gitlab-runner register



Jika di server gitlab gitlab-runner belum jalan, lakukan verify gitlab runner dengan perintah:

docker exec gitlab-runner gitlab-runner verify


Sekarang gitlab runner di docker  kita sudah tersambung dengan server gitlab .


Untuk menjalankan gitlab runner yang sudah didaftarkan untuk  project  pastikan pilihan enable shared runners for this project didisable (dimatikan).


Note: jika saat menjalankan pipeline terdapat output error docker not found solusinya


1. Create docker group if not exist : sudo groupadd docker

2. Add user to docker group : sudo usermod -aG docker ${USER}

3. Change docker.sock to new permission : sudo chmod 666 /var/run/docker.sock

4. Finally restart docker daemon service : sudo systemctl restart docker



Instalasi prometheus dan grafana untuk monitoring

Untuk artikel kali ini penulis akan membuat artikel cara instalasi prometheus yang di combine dengan grafana untuk melakukan monitoring server, untuk kasus ini menggunakan server OS ubuntu. 


Langkah awal silahkan download file node-exporter di link berikut. Node-exporter merupakan perangkat lunak yang digunakan tepat di samping aplikasi yang ingin diperoleh matriksnya.

https://prometheus.io/docs/guides/node-exporter/


File node-exporter yang sudah di download.


Extract file yang sudah didownload dengan perintah tar


List file yang di extract,terdapat nama folder node_exporter pindahkan/copy ke 

folder /usr/local/bin.


Perintah untuk copy file/folder ke /usr/local/bin.

Membuat file .service sebagai contoh dibuatkan nama node-exporter.service di folder /etc/systemd/system


[Unit]

Description=Node Exporter

Wants=network-online-target

After=network-online-target


[Service]

User=ion

Group=root


Type=simple

ExecStart=/usr/local/bin/node_exporter


[Install]

WantedBy=multi-user.target


Untuk menjalankan service yang dibuatkan sebelumnya gunakan perintah systemctl start node-exporter.service


Untuk melihat status service apakah sudah berjalan gunakan perintah systemctl status node-exporter.service. Pastikan service statusnya running.


Untuk mengecek apa service node-exporter sudah berjalan dengan mengakses di browser url

http://localhost:9100/metrics


Atau bisa menggunakan terminal dengan perintah curl localhost:9100/metrics



Langkah selanjutnya instalasi prometheus di docker, prometheus merupakan sistem monitoring berbasis metriks.Download image Prometheus hal ini menggunakan versi 2.32.1 dengan perintah docker pull prom/prometheus:v2.32.1

Sekarang buatkan container prometheus dengan image yang sudah di download. Dengan perintah seperti berikut.

docker run -d --name prometheus --restart always --net host \

-v /home/ion/Downloads/prometheus/prometheus_config/:/etc/prometheus \

-v prometheus-data:/prometheus \

-v /etc/localtime:/etc/localtime:ro \

prom/prometheus:v2.32.1


Buat  file dalam folder sebagai contoh di /home/ion/Downloads/prometheus/prometheus_config dengan nama file prometheus.yaml isinya seperti dibawah.



scrape_configs:

  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.

  - job_name: 'prometheus'


    # metrics_path defaults to '/metrics'

    # scheme defaults to 'http'.


    static_configs:

     - targets: ['localhost:9090']


  - job_name: 'node'

    scrape_interval: 10s

    static_configs:

     - targets: ['localhost:9100']


Untuk mengecek container prometheus sudah berjalan dengan semestinya Akses menggunakan browser dengan url http://localhost:9090, jika berhasil tampilan akan seperti ini.


Langkah selanjutnya instalasi grafana di docker, grafana merupakan alat yang populer untuk membuat dashboard untuk berbagai sistem pemantauan dan non monitor, salah satu tools yang dapat digunakan untuk membuat dashboard saat menggunakan Prometheus. Download image grafana dengan perintah docker pull grafana/grafana:8.3.3


Sekarang membuat container grafana dengan image yang sudah di download. Dengan perintah seperti berikut.

docker run -d --net host --name grafana grafana/grafana:8.3.3


Untuk mengecek container grafana sudah berjalan dengan semestinya Akses menggunakan browser dengan url http://localhost:3000/login. jika berhasil maka akan muncul form login, secara default login menggunakan username dan password admin.


Menambahkan Data source

Masuk ke menu Configuration > Data Source > Add data source

Type > Prometheus







Link untuk melihat Template dashboard grafana.

grafana.com/grafana/dashboards/11074



Import template dashboard grafana

Tanda tambah > import


Isikan id yang didapatkan di link grafana.com/grafana/dashboards/11074 terus tekan tombol load disamping isian kolom.

Setelah tombol load di tekan maka akan muncul tampilan berikut, langsung tekan tombol import maka akan langsung di redirect ke halaman dashboard monitoring.

Tampilan halaman monitoring grafana


Sekian , Terimakasih

Cara mengatasi dual monitor tidak berfungsi atau tidak terbaca pada Ubuntu 18.04

    Tutorial kali ini saya akan membagi pengalaman saya menggunakan Ubuntu 18.04 ketika menggunakan dual monitor menggunakan kabel HDMI dimana monitor kedua tidak terbaca atau tidak menampilkan layar...Setelah beberapa cara saya lakukan akhirnya saya menemukan cara yang berhasil di kasus saya yaitu dengan cara...

Pertama buka terminal lalu ketik kan perintah sebagai berikut:

sudo dpkg-reconfigure gdm3 (mengganti manager tampilan bolak-balik antara gdm3 dan lightdm)


Jika perintah diatas sudah di lakukan maka akan tampil dialog pilihan (gdm3 dan lightdm) maka pilih lightdm, langkah selanjutnya ketik kan perintah

sudo apt-get install --reinstall lightdm ubuntu-desktop (menginstal ulang lightdm dan mengonfigurasi ulang lagi alih-alih menggunakan gdm3). Jika semua langkah sudah dilakukan cabut ulang kabel HDMI dan masukkan kembali...


Demikian tutorial Cara mengatasi dual monitor tidak berfungsi atau tidak terbaca pada Ubuntu 18.04 

Membuat Makefile dan kegunaannya

     Sekarang kita akan mempelajari makefile. Apa Sih itu makefile, Makefile adalah kumpulan script yang akan di-eksekusi oleh command make. make merupakan automation-tools yang diciptakan di Unix-type OS. Jadi jika OS anda merupakan satu clan dengan Unix (Linux, MacOS) maka command ini seharusnya ada.

Beberapa kegunaan makefile yaitu ketika kita diharuskan mengetikkan command yang panjang  tiap kali melakukan sesuatu dan harus menghafal semua command yang panjang tersebut. Namun  telah dibuat suatu cara untuk mempermudah pekerjaan tersebut, yaitu dengan penggunaan makefile.

Konsepnya sederhana, kita hanya perlu define beberapa command dan proses yang akan dilakukan didalam Makefile. Selanjutnya kita tinggal memanggil script tersebut dengan command make.

Jika kita menjalankan make, Program ini akan mencari sebuah file bernama makefile pada direktori, lalu mengeksekusinya. Jika terdapat beberapa makefile, maka dapat pula dieksekusi dengan perintah :

make –f makefile


Adapun lebih lengkap mengenai make dapat dilihat dengan man make.


Untuk case ini kita mempunyai project django dan menjalankan project django menggunakan makefile. Kita sudah membuat file dengan nama Makefile didalam folder yang sama dengan project django seperti dibawah ini.


*Bagi teman” yang belum tahu cara instalasi django bisa kunjungi link ini.



Kita  memiliki Makefile dengan isi seperti gambar dibawah.

Penjelasan:

Baris 2,6,10:
- nama definisi command saat dipanggil make

Baris 3,7,11:

    - eksekusi command pada django

.PHONY: runserver

  • berarti kata "runserver" tidak mewakili nama file di Makefile ini;

  • berarti Makefile tidak ada hubungannya dengan file bernama "runserver" di direktori yang sama.


Cara menggunakan makefile untuk memanggil define command yang kita buat yaitu dengan cara seperti berikut:

  • Menjalankan server Django

Penjelasan:

Make runserver

                kata “runserver” mewakili definisi command yang merujuk ke command “@python                               manage.py runserver”  yang sudah kita buatkan sebelumnya di dalam file Makefile.



  • Create app project Django


Penjelasan:

Make createartikel

                  kata “createartikel” mewakili definisi command yang merujuk ke command “@python                          manage.py startapp artikel” yang sudah kita buatkan sebelumnya di dalam file Makefile,                   setelah mengeksekusi perintah “Make createartikel” secara otomatis akan terbuat folder                      dengan nama artikel.                 


  • Create app project Django secara dinamis dengan variabel

Penjelasan:

Make createapp app=berita
- kata “createapp” mewakili definisi command yang merujuk ke command “@python                  manage.py startapp $(app)” yang sudah kita buatkan sebelumnya di dalam file                      Makefile.

        - Kata “app” merupakan nama variabel yang sudah didefinisikan di command “@python              manage.py startapp $(app)”.

        - Kata “berita” merupakan nama app yang akan kita buatkan, kata “berita” bisa diubah              sesuai keinginan.

 Setelah selesai mengeksekusi perintah “Make createapp app=berita” secara otomatis akan terbuat folder dengan nama berita


Begitu kira” penggunaan makefile, teman” bisa menggunakan makefile sesuai kebutuhan.


Lebih jauh tentang makefile bisa kunjungi artikel berikut.

https://www.gnu.org/software/make/manual/make.html