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:
- Pasang git dan perkakas pengembangan.
- Unduh paket AUR menggunakan git
- Pindah ke folder yay-bin, dan lakukan kompilasi
- 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~