19 Mei 2009

Script untuk switch secara otomatis proxy APT di notebook

Beberapa user minta di install Ubuntu di personal notebook. Bahkan ada satu yang dulu slalu bawa Mac, sekarang ikutan pake Ubuntu juga. Karena mereka hidup di dua alam (office dan home), lumayan ribet deh kalau jelasin ke mereka gemana harus ganti2 proxy (apt-cacher).

Dalam office sini semua client pake proxy apt-cacher. Tujuannya tentu saja untuk menghemat bandwidth. Karena semua request software Ubuntu (.deb) akan di simpan (cache) di server. Laen user jika request software yang sama, akan langsung diberi dari cachenya (tanpa perlu download ulang).

Cukup gunakan ini di semua client:

$cat /etc/apt/apt.conf.d/01proxy
Acquire::http::Proxy "http://repo.mydomain.com:3142";

Problem muncul untuk notebook. Kalo mereka kembali ke rumah, proxy itu harus dimatikan (atau hapus saja file itu). Untuk kita jelas sangat simple. Tapi untuk user biasa, melihat console itu seperti melihat setan saja. Selalu ada keluhan :-D

Dari situ akhirnya gue dapat ide untuk mempermudahkan. Karena network kita pake DHCP, domain dari DHCP yang dijadikan patokan. Kalo di file /etc/resolv.conf terdapat domain company kita, maka file proxy akan di generate. Di rumah DHCP server beda (umumnya dr ADSL modem). Dan ini tentunya menggunakan domain laen lagi. Domain selain company kita yang terdeteksi, akan menghapus file proxynya. Simple kan?

Untuk mengetahui perubahan domain, script ini paling cocok di simpan ke directory /etc/network/if-up.d/ yang akan di execusi setiap kali notebook online. And here the script:

#!/bin/bash
# This script special for mobile user (notebook)
# To make easy switch proxy server for apt (apt-cacher server) on office or direct connection on home
# It will detect domain from DHCP server (in file /etc/resolv.conf)
#
# created by Lutfi <lutfi.arab@gmail.com> @2009
#
# How to:
# Save this file on directory /etc/network/if-up.d/
# and don't forget to set: chmod +x /etc/network/if-up.d/switch-proxy-apt

# define your apt-cacher server here
proxyname="repo"
proxyport="3142"

# define your company domain (DHCP domain)
companydomain="mydomain.com"

# don't change this !!!
grep -q $companydomain /etc/resolv.conf && \
echo "Acquire::http::Proxy \"http://$proxyname:$proxyport\";" > /etc/apt/apt.conf.d/01proxy || \
echo "Acquire::http::Proxy \"http://\";" > /etc/apt/apt.conf.d/01proxy

Atau (kalo males copy/paste) bisa download script ini dari dropbox gue: here. Simple aja tekniknya. Simpan ke dalam directory /etc/network/if-up.d/ dan rubah permission supaya dapat di execute.

wget http://dl.getdropbox.com/u/382552/switch-proxy-apt
nano switch-proxy-apt #Edit sesuaikan proxy dan domainnya !!!
sudo mv switch-proxy-apt /etc/network/if-up.d
sudo chmod +x /etc/network/if-up.d/switch-proxy-apt


OK. Smoga bermanfaat, pren.

Tidak ada komentar: