server dan command line - @kholidfu

Table of Contents

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

15 ufw untuk block IP

Baru mencoba eksplorasi aplikasi ufw:

sudo apt-get install ufw
sudo ufw allow ssh
sudo ufw allow http
sudo ufw deny from xxx.xxx.xxx.xxx to any
sudo ufw status

Date: 2016-03-08

Author: Kholid Fuadi

Created: 2016-10-14 Fri 11:35

Validate