Hai semuanya, apa kabar? Kali ini kita lanjutkan lagi belajar Ansible/Git-nya. Sebelumnya, kita sudah belajar cara membuat SSH key (bisa dicek pada link ini ). Kita menggunakan Git sebagai version control system yang melacak perubahan atau update terkait suatu file/project. Jadi, apabila kita atau tim melakukan perubahan atau update pada sistem yang sedang dikembangkan, kita tahu apa saja yang diubah dan siapa yang melakukannya. Dan juga sebagai “backup” seandainya file lokal kita hilang, tim lain masih bisa ada yang punya salinannya.
Kita mulai.
Cek Instalasi Git
Kita lakukan pengecekan apakah di sistem yang kita gunakan sudah ada Git atau belum. Apabila teman-teman menggunakan Linux, bisa menggunakan perintah which git. Apabila Git sudah terinstal, akan muncul path ke Git-nya yang formatnya seperti contoh di bawah ini:
~$ which git
/usr/bin/git
Apabila belum, kita bisa instal terlebih dahulu. Contohnya, kalau kita pakai sistem berbasis Linux Ubuntu/Debian (saya pribadi pakai Linux Mint), kita bisa gunakan perintah sudo apt update && sudo apt install git -y.
Buat Repository di Github
Untuk software management platform yang support Git sebenarnya ada banyak. Seperti GitHub, GitLab, BitBucket, dan lain-lain. Namun untuk pengujian kali ini kita akan gunakan GitHub. Apabila kita belum punya akun, kita bisa kunjungi situs resminya di github.com dan pilih Sign Up (bisa juga pakai akun Google/Apple – Continue with Google/Apple).

Selanjutnya kita akan buat Repository. Repository bisa diibaratkan sebagai “gudang” atau tempat di mana kita menyimpan kodingan/project kita. Setelah berhasil masuk, kita bisa pilih tombol New seperti pada gambar di bawah

Buat nama repositorinya. Pada pengujian kali ini menggunakan nama ansible-testing.

Kita juga bisa atur, repo ini mau dapat dilihat secara public atau tidak. Pada pengujian kali ini, repo-nya kita buat private. Pada tahap ini, kita juga bisa sekalian buat file sample/readme. PIlih tombol Create repository untuk melanjutkan.

Gambar di bawah menampilkan repo ansible-testing sudah berhasil dibuat. Namun isinya masih kosong (karena opsi membuat file readme tidak dipilih).

Untuk cek repo apa saja yang terhubung dengan akun GitHub kita, bisa pilih Sidebar> Repositories.

Gambar di bawah ini menampilkan repo ansible-testing yang sudah muncul di daftar repo.

Buat Public/SSH Key
Kita dapat menggunakan public key yang nantinya kita akan gunakan untuk sync ke GitHub, tanpa perlu kita berulang kali mengetikkan password. Untuk membuat SSH/public key baru, dapat dilihat pada tulisan sebelumnya.
Misalnya, file public key yang ada di komputer saya terletak di ~/.ssh/zai-ansible.pub. Isi dari key ini nantinya kita salin ke GitHub (bisa dari web browser). Pilih Profile> Settings lalu buka menu SSH & GPG keys.

Tempelkan isi dari public key, lalu pilih tombol Add SSH key untuk melanjutkan.

Apabila berhasil, public key yang ditambahkan akan muncul pada menu GitHub.

Punya Lebih dari Satu Akun GitHub?
Seorang SysAdmin bisa saja punya lebih dari satu akun GitHub, misalnya akun A untuk kerjaan, dan akun B untuk personal project. Kalau kita pakai key yang sama, sistem bisa bingung. Untuk mengatasi hal ini, kita bisa edit file ~/.ssh/config dan sebagai contoh, bisa menambahkan baris ini (bisa disesuaikan):
# Akun Kantor/Tutorial
Host github-office
HostName github.com
User git
IdentityFile ~/.ssh/zai-ansible
Clone Project ke Komputer Lokal
Kita akan coba “tarik” reponya ke komputer lokal kita (walaupun sebenarnya reponya masih kosong). Kita akan gunakan alias yang sudah dibuat sebelumnya (karena saya ada multiple account, jadi ada konfigurasi seperti sebelumnya agar sistem tidak “bingung”).
Sebelum clone, kita juga bisa “tes koneksi” terlebih dahulu. Contoh perintah yang dapat digunakan (pakai alias):
ssh -T git@github-office
Kalau jawabannya “Hi username!“: Berarti koneksi aman.
Contoh perintah untuk clone repo adalah sebagai berikut:
git clone git@github-office:username-kamu/ansible-testing.git
Cloning into 'ansible-testing'...
warning: You appear to have cloned an empty repository.
Untuk “pelacakan perubahan”, Git perlu mencatat siapa yang melakukan perubahan pada project. Kita perlu atur nama dan email kita.
git config --global user.name "Nama Kamu"
git config --global user.email "email@kantor.co.id"
File konfigurasinya terletak di ~/.gitconfig.
Alur Kerja: Edit, Add, Commit, Push
Kita akan coba buat file baru, yaitu README.md. Kita buat di lokal, lebih tepatnya (kalau di saya) di direktori ansible-testing.
Contoh isi file (Markdown):
# ansible_testing
ini adalah repositori untuk testing dan belajar Ansible
Selanjutnya, kita cek statusnya dengan menggunakan perintah git status. Singkatnya, perintah ini seperti kita bertanya ke Git “apa yang berubah?”.
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
Dari output di atas, Git sudah tahu bahwa ada file baru bernama README.md, namun statusnya adalah Untracked. Artinya, file ini belum “diawasi” oleh Git, sehingga apabila kita cek repo GitHub di web browser, file ini tidak akan muncul.
Kita akan ubah statusnya dari untracked ke “staging area”. Gunakan perintah berikut:
git add README.md
git status
Output:
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
Hasil output menunjukkan bahwa file README.md suadh masuk ke “daftar tunggu” dan siap “dicatat” perubahannya oleh Git.
Selanjutnya, kita perlu menambahkan catatan tentang apa saja yang sudah kita lakukan.
git commit -m "buat file README.md"
[main (root-commit) a38b0b8] buat file README.md
1 file changed, 3 insertions(+)
create mode 100644 README.md
Dari output di atas, perubahan file sudah tercatat oleh Git. Namun masih di lokal. Sehingga, apabila kita cek di web GitHub, file ini masih belum muncul.
Selanjutnya, kita akan “kirim” perubahan ini ke GitHub. Proses ini dinamakan push.
git push origin main
To github.com-office:zaidan-99/ansible-testing.git
* [new branch] main -> main
Setelah proses ini dilakukan, kita dapat mencoba cek di web GitHub (repo). Gambar di bawah menampilkan file ansible_testing sudah ada di dalam repo GitHub.

Mengapa GitHub Penting?
- Penyimpanan cloud/backup. Project kita juga disimpan di cloud, dalam hal ini GitHub. Jadi, apabila file project kita yang ada di lokal rusak/corrupt/crash, kita masih punya salinannya di GitHub.
- Riwayat perubahan/version control. Kita bisa tahu siapa yang melakukan perubahan pada project, kapan, dan bagian mana saja yang diubah.
- Kolaborasi tim. Rekan kerja bisa menarik (pull) kode yang kita buat ke komputer mereka masing masing (bisa saja mereka ingin fix kerjaan kita atau eksplor/oprek).
Tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.
Referensi course: https://youtu.be/FFaMqxpphjo?si=cZdqiluzaP1KIxJm&t=117