Konfigurasi Arch, WSL, Powershell, Terminal, ZSH, dan Lingkungan Bekerja

Setelah memasang Arch di WSL saya masih butuh mengulik-ulik agar segera dapat berkerja.

Memasang Terminal

Saya memilih memasang konsole emulator Terminal dari windows store melalui tautan https://aka.ms/terminal.

Memasang PowerShell 7.3

Saya sekaligus menaikan versi PowerShell bawaan ke vesi 7.3. Saya menggunakan installer *.MSI. Silahkan unduh berkas MSI dari halaman github, atau mengikut panduan dari https://learn.microsoft.com.

Mengatur Password Root

Berikut catatan-catatannya yang saya sadur dari https://wsldl-pg.github.io/ArchW-docs/How-to-Setup/:

>Arch.exe
[root@PC-NAME]# passwd

Menambah Pengguna dan Mengatur Default User untuk Arch WSL

Silahkan juga membaca wiki dari Arch terkait Sudo dan User and groups.

>Arch.exe
[root@PC-NAME]# echo "%wheel ALL=(ALL) ALL" > /etc/sudoers.d/wheel
(setup sudoers file.)

[root@PC-NAME]# useradd -m -G wheel -s /bin/bash {username}
(add user)

[root@PC-NAME]# passwd {username}
(set default user password)

[root@PC-NAME]# exit

>Arch.exe config --default-user {username}
(setting to default user)

Mengatur Profil Arch di Terminal

Karena saya memasang GNU/Linux lain di WSL, maka saya membutuhkan pengaturan sederhana lainnya. Berikut tampilannya:

Tuning WSL

Saya menambahkan tuning WSL untuk membatasi penggunaan sumberdaya RAM. Dan juga saya selalu melakukan Shutdown wsl setiap mau hibernate. Berikut caranya (dijalankan dari Arch):

vim /mnt/c/Users/nona/.wslconfig

#isi dengan kode
[wsl2]
memory=2GB
swap=12GB
kernelCommandLine = "sysctl.vm.swappiness=90"

Memasang YAY dari Binary

Saya memilih menggunakan YAY (Aur Helper) ketimbang menggunakan pacman, berikut cara memasangnya yang sadur dari https://www.itzgeek.com:

  1. Pasang git dan perkakas pengembangan.
  2. Unduh paket AUR menggunakan git
  3. Pindah ke folder yay-bin, dan lakukan kompilasi
  4. Selesai
sudo pacman -Sy --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si
cd ..
rm -rf yay-bin

Konfigurasi pada ZSH

Zsh sudah terpasang. Saya menggunakan zprezto biar zsh nya awesome. Cukup mengikuti panduan dari https://github.com/sorin-ionescu/prezto.

Tambahan, theme yang saya gunakan adalah sorin. Saya juga memasang keychain untuk membantu pengaturan kunci SSH.

yay keychain

Beberapa pengaturan yang saya gunakan:

# Customize to your needs...
/usr/bin/keychain -q --nogui $HOME/.ssh/id_rsa
source $HOME/.keychain/$HOST-sh

export GPG_TTY=$(tty)
gpgconf --launch gpg-agent

source ~/.zplug/init.zsh# Plugins
zplug "plugins/git",   from:oh-my-zsh
zplug "zsh-users/zsh-autosuggestions"
zplug "avivl/gcloud-project"

setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_FIND_NO_DUPS
setopt HIST_SAVE_NO_DUPS
setopt HIST_BEEP

Perkakas Bekerja

Saya menggunakan beberapa perkakas kerja sebagai kuli kabel dan penjaga awan, diantaranya:

Python

Saya menggunakan sesuai versi python dari Archlinux saat ini yaitu: 3.11.3. Saya juga memanfaatkan python-virtualenv untuk bekerja (terrafom dan ansible). Berikut konfigurasi standar yang saya gunakan:

yay python-virtualenv 
python -m venv pyenv-terraform
source pyenv-terraform/bin/activate
python -m venv pyenv-terraform
source pyenv-terraform/bin/activate

Ansible

Saya menggunakan ansible playbook sehingga membutuhkan beberapa pustaka. Pustaka ini saya penuhin dengan bantuan pip (termasuk binary ansible) dalam mode pyenv.

Terraform

Saya memasang terraform dengan mengunduh berkas binary langsung dari github, karena menyesuaikan versi terraform yang digunakan di tempat berkerja. Berikut cara pemasangannya:

wget -c https://releases.hashicorp.com/terraform/0.15.3/terraform_0.15.3_linux_amd64.zip
unzip terraform_1.3.8_linux_amd64.zip
sudo mv terraform /usr/local/bin/terraform
rm -rf terraform_1.3.8_linux_amd64.zip

GCloud SDK

Saya menggunakan perintah gcloud cukup masif. SDK saya pasang melalui berkas tar.gz dan saya letakkan di direktori /opt agar bisa digunakan oleh semua pengguna dan dilakukan konfigurasi secukupnya.

sudo mkdir  /opt/bin
sudo chmod -R 775 /opt/bin
sudo chown -R $USER /opt/bin
curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-405.0.0-linux-x86_64.tar.gz
tar -xf google-cloud-cli-405.0.0-linux-x86_64.tar.gz 
sudo mv google-cloud-sdk /opt/bin/.
rm -rf google-cloud-cli-405.0.0-linux-x86_64.tar.gz
cd /opt/bin/google-cloud-sdk
./install.sh
gcloud auth login

Kubectl

Saya menggunakan binari kubectl dari GCloud SDK. Dan memperbaharui secraa berkala.

Docker dan Image Registry

Docker saya pasang dari yay. Kemudian saya matikan deamonnya, hanya dihidupkan jika ingin digunakan.

Image registry masih menggunakan asia-southeast2-docker.pkg.dev. Untuk login saya mengintegrasikan docker dengan gcloud auth.

gcloud auth configure-docker asia-southeast2-docker.pkg.dev 

Memasang NTP (Tidak Harus)

Saya mengalami isu jam di wsl seakan membeku setelah melakukan sleep. Isu ini tercatat di https://github.com/microsoft/WSL/issues/8204. Sehingga saya memutuskan untuk memasang NTP (network time protocol) dan menampilkan jam saat ini pada tampilan terminal. Berikut langkah-langkahnya:

yay ntp
sudo ntpd -u ntp:ntp

Konfigurasi ntp yang saya simpan pada berkas /etc/ntp.conf sebagai berikut:

# Associate to Arch's NTP pool
server 0.arch.pool.ntp.org iburst
server 1.arch.pool.ntp.org iburst
server 2.arch.pool.ntp.org iburst
server 3.arch.pool.ntp.org iburst

restrict default kod limited nomodify nopeer noquery notrap
restrict -6 default kod limited nomodify notrap nopeer noquery

restrict 127.0.0.1
restrict -6 ::1

Konfigurasi pada .zshrc saya menambahkan baris berikut:

PROMPT='%{$fg[magenta]%}[%*] '$PROMPT

Konfigurasi Git

Saya memilih menggunakan git dari dalam Arch, dan juga menyimpan kode sumber di home Arch. Saya juga menambahkan kunci PGP untuk menandatangani setiap commit git. Berikut konfigurasi git yang saya gunakan:

[user]
    signingkey = 79AD3C553F6AE51F
[color "diff"]
    new = green
    old = red
    frag = yellow
    meta = cyan
    commit = normal
[alias]
    lgb = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches
[core]
    excludesfile = /home/nona/.gitignore_global
    whitespace = cr-at-eol
[commit]
    gpgsign = true
[gpg]
    program = gpg2
[pull]
    rebase = true
[rebase]
    autoStash = true
[fetch]
    prune = true

Memasang Teks Editor

Saya masih menggunakan teks editor sublime text dan dipasang pada windows, namun akan mengakses berkas kode sumber yang disimpan pada home Arch. Resikonya menyebabkan sering-sering menggunakan fitur Refresh Folders. Sementara saya berdamai dengan ini.

Sekian. Semoga bermanfaat.
Estu~

Tinggalkan komentar

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.