server dan command line - @kholidfu
Table of Contents
- 1. Mencegah SSH Timeout
- 2. Membuat / Menambah swap di Ubuntu
- 3. Set Locale di Ubuntu Server
- 4. Mengatur depth level command tree
- 5. Lock Package Version di Linux Mint
- 6. Setting git dan SSH key
- 7. Custom domain di localhost
- 8. Melihat paket yang terpasang di Ubuntu/Mint
- 9. Docker di Linux Mint 17.1
- 10. Block IP di Ubuntu Server dengan ufw
- 11. nginx gagal restart
- 12. Menambahkan ssh key di macosx
- 13. Mengubah direktori virtualenv
- 14. Setup PostgreSQL di vagrant
- 15. ufw untuk block IP
1 Mencegah SSH Timeout
Bagi Anda yang sering melakukan koneksi SSH ke server, tentu sangat
mengganggu bukan? Solusinya mudah, tambahkan atau buat konfigurasi baru
di berkas ~/.ssh/config
:
Host * ServerAliveInterval 10
2 Membuat / Menambah swap di Ubuntu
Terkadang karena keterbatasan memory, kita tidak dapat melakukan
instalasi paket atau library tertentu di server. Hal ini pernah penulis
alami ketika akan memasang library pandas
. Daripada harus upgrade
droplet, saya coba membuat swap di server tersebut, dan setelah membuat
swap sebesar 1GB, library tersebut berhasil terpasang dengan sukses.
Berikut ini langkah-langkahnya:
# create new partition 1M * 1024 = 1GB dd if=/dev/zero of=/swapfile bs=1M count=1024 # set as swap mkswap /swapfile # activate the swap once swapon /swapfile # add to /etc/fstab to auto load when reboot [optional] /swapfile swap swap defaults 0 0
3 Set Locale di Ubuntu Server
Ini hal wajib yang perlu dilakukan ketika setup server, karena jika belum diset, biasanya ada beberapa masalah yang muncul, misal tidak mau login ke mongo console atau psql (postgresql).
Cara untuk setting locale (ubuntu) adalah dengan menyunting berkas
/etc/default/locale
dan isikan baris config berikut:
LC_ALL="en_US.UTF-8" LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8"
Selanjutnya silakan re-login atau reboot, agar setting berlaku.
4 Mengatur depth level command tree
Perintah berikut ini membatasi kedalaman output perintah tree
menjadi maksimal 2 level saja.
tree -L 2 somedir/
5 Lock Package Version di Linux Mint
Salah satu kelebihan menggunakan Linux adalah mudahnya melakukan update paket melalui package manager yang biasanya sudah disediakan secara default oleh tiap-tiap distro. Namun ini juga terkadang membawa masalah tersendiri, kenapa?
Misalnya nih, saya baru saja membeli VGA Card merk ATI. Karena dukungan driver yang tidak terlalu bagus (dibanding NVIDIA), terkadang ketika ada perubahan versi kernel, maka driver yang sudah terpasang menjadi tidak berjalan secara sempurna.
Untuk itu, setelah konfigurasi mapan, saya berpikir untuk me-lock versi dari kernel yang saya gunakan. Dan ternyata Linux menyediakan fitur untuk itu.
Kalau Anda pengguna Ubuntu (atau Mint), Anda dapat melakukan langkah berikut:
Go to System -> Administration -> Synaptic Package Manager. Highlight the package and choose menu Package -> Lock Version.
Jika sudah, maka paket tersebut akan ada simbol gembok dan berwarna merah, seperti yang terlihat dalam tangkapan layar berikut:
Note:
This may not applied to server which need to be as up-to-date as possible.
6 Setting git dan SSH key
Capek kan kalo harus ngetik username password setiap kali push
atau pull
? Biar tidak ngetik terus, kita membuat SSH key
saja. Caranya sebagai berikut:
Membuat SSH key
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Selanjutnya ikuti saja petunjuknya, kalau saya memilih menyimpan key
di ~/.ssh/id_rsa.pub
, which is default. Untuk passphrase,
silakan diisi sesuai keinginan (kosong pun tidak masalah, tapi
sebaiknya diisi).
Menambahkan SSH key ke git
Untuk github, silakan menuju profile, kemudian Settings, klik SSH keys, kemudian Add SSH key.
Title bebas mau dinamai apa saja, tapi sebaiknya berupa string yang
terkait dengan mesin kita, misal bantengpc
, untuk memudahkan
identifikasi saja sih, bahwa sshkey ini kepunyaan mesin bantengpc
.
Salin isi dari ~/.ssh/id_rsa.pub
kemudian paste ke input
"Key". Kemudian klik Add key.
Testing
Ketik perintah berikut:
ssh -T git@github.com
Untuk pertama kali, maka akan muncul pesan konfirmasi yang isinya kurang lebih sebagai berikut:
The authenticity of host 'github.com (207.97.227.239)' can't be established. # RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. # Are you sure you want to continue connecting (yes/no)?
Jawab saja yes, kemudian jika berhasil akan muncul keterangan sebagai berikut:
Hi kholidfu! You've successfully authenticated, but GitHub does not # provide shell access.
Selanjutnya yang tidak kalah penting adalah memastikan bahwa url remote, berbentuk seperti ini:
[remote "origin"] url = git@github.com:kholidfu/kholidfu.github.io.git
Ini berarti kita bisa menggunakan ssh key untuk login dan push. Tetapi jika format url masih seperti ini:
[remote "origin"] url = https://github.com/kholidfu/kholidfu.github.io.git
Silakan disesuaikan, karena format di atas melakukan autentikasi menggunakan format usermame/password.
7 Custom domain di localhost
Seringnya Anda melihat menggunakan IP 127.0.0.1 atau localhost saja,
bagaimana membuatnya menjadi seolah-olah punya nama, seperti misalnya
test.com
atau banteng.app
?
Tambahkan atau sunting berkas /etc/hosts
:
127.0.0.1 localhost banteng.app test.com
Sekarang localhost dapat Anda akses juga menggunakan test.com
atau
banteng.app
.
8 Melihat paket yang terpasang di Ubuntu/Mint
Misal saya ingin mencari apakah paket emacs
sudah terpasang di mesin
belum, jalankan perintah berikut:
dpkg -l | grep emacs
Perintah dpkg -l
berarti melihat semua daftar paket yang terpasang,
kemudian kita lakukan filter dengan menggunakan perintah grep
.
Alternatif lainnya, kita juga bisa menggunakan perintah berikut:
apt-cache search emacs
Maka akan muncul semua paket yang terkait dengan paket yang kita
inginkan, dalam hal ini emacs
.
9 Docker di Linux Mint 17.1
Berikut ini cara install docker di Mint 17.1
sudo apt-get install docker.io
sudo apt-get install apparmor lxc cgroup-lite
sudo usermod -aG docker ${USER}
sudo service docker start
<<<<<<< HEAD
10 Block IP di Ubuntu Server dengan ufw
Ada IP yang ingin Anda blok dari server Anda? Anda dapat menggunakan
iptables, tapi ada aplikasi yang lebih mudah (sebenarnya hanya
interface dari iptables juga sih), yakni ufw
.
Berikut ini cara blok IP:
# install dulu kalau belum ada sudo apt-get install ufw # pastikan port 22 untuk ssh tetep dibuka sudo ufw allow ssh # block ip sudo ufw deny from {ip-address-here} to any # lihat status untuk memastikan blocking bekerja sudo ufw status # Berikut ini contoh outputnya: Status: active To Action From -- ------ ---- Anywhere DENY 121.189.37.17 22 ALLOW Anywhere 22 (v6) ALLOW Anywhere (v6)
Referensi:
cyberciti.biz
=====
11 nginx gagal restart
Pernah mengalami? ketika Anda menjalankan perintah sudo service nginx
restart
dan hasilnya FAIL? Apa yang terjadi? Bagaimana cara
memeriksa penyebab terjadinya error?
Jalankan perintah berikut:
sudo tail -f /var/log/nginx/error.log
Amati log, dan coba googling… Happy coding…
12 Menambahkan ssh key di macosx
Setup project selesai, sekarang waktunya membuat repo, push dan selesai… Teorinya seperti itu, namun apa daya, ternyata ada permasalahan yang muncul. Mesin yang kita gunakan belum terdaftar di git server. Solusinya adalah mendaftarkan mesin kita. Ok, mari kita mulai.
Asumsi mesin yang digunakan adalah macbookpro dengan os macosx el capitan (seharusnya tidak ada perbedaan, masih satu unix family dengan linux).
Buka terminal Anda, tambahkan baris berikut di ~/.ssh/config
:
Host bitbucket.org IdentityFile ~/.ssh/id_rsa
Kemudian jalankan perintah berikut:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Kemudian muncul prompt menanyakan di mana kita akan menyimpan key, untuk kasus macosx, secara default akan berada di:
/Users/you/.ssh/id_rsa
Muncul lagi prompt menanyakan password, saya prefer untuk empty saja.
Key sudah ter-generate, tahap selanjutnya adalah menambahkan key tersebut ke bitbucket atau github. Sebelumnya mari kita copy key yang kita punya, dengan cara:
pbcopy < ~/.ssh/id_rsa.pub
Perintah di atas adalah menyalin key ke clipboard via commandline.
Buka bitbucket atau github, cari halaman dimana kita bisa menambahkan SSH key. Setelah ketemu, paste key.. Dan mari kita push ulang.
Happy git-ing… :)
13 Mengubah direktori virtualenv
Suatu ketika kita ingin mengubah nama direktori dari virtual environment yang sudah kita buat sebelumnya, bisakah? Bisa!
Berikut ini caranya:
Sunting berkas bin/activate
, cari baris yang berhubungan dengan path
lama kita, dan ubah ke yang baru.
# path berikut akan kita ganti dengan /agcimg2 VIRTUAL_ENV="/vagrant_data/agcimg"
Sunting berkas bin/pip
, pada baris paling atas, ubah path python
interpreter ke path yang baru.
# path berikut kita ganti ke /agcimg2/bin/python #!/vagrant_data/agcimg/bin/python
Dan yang terakhir, jika Anda juga menggunakan git sebagai version
control, sunting juga berkas .git/config
dan cari baris yang
mengandung path ke direktori lama, ubahlah ke path yang baru.
# path berikut akan kita ganti ke agcimg2.git url = git@bitbucket.org:kholidfu/agcimg.git
14 Setup PostgreSQL di vagrant
Perlu perlakuan khusus, karena secara default, username adalah vagrant. Berikut ini adalah langkah-langkahnya:
sudo -u postgres -i
Anda akan masuk ke prompt postgre, selanjutnya ketikkan
psql
Kemudian, tambahkan user vagrant, ada 3 cara:
CREATE ROLE vagrant LOGIN; # tanpa password CREATE USER vagrant WITH PASSWORD 'password'; # dengan password cara 1 CREATE USER vagrant WITH LOGIN PASSWORD 'password'; # dgn passwd cara 2
Selesai! >>>>>>> 9fae1d5b3cf8bee673a38c9a5f1a5ed7277fe5a8