10 Juni 2009

Xerox Document Center C320

Sebelumnya gue udah pernah setting printer ini. Karena nggak ada driver yang cocok, gue pilih driver generic PCL6 seperti biasa. Dan emang bisa cetak. Sayangnya ya cuman hitam putih aja. Cetak warna semuanya akan di convert ke hitam putih. Huh?

Nggak sengaja smalem waktu baca-baca milist, ada yang tanya mengenai Xerox tapi model laen. Waktu Googling nemukan driver Linuxnya justru untuk Xerox Document Center 240/C320/C400 yang ada di company sini. Jadi tertarik pengen nyoba lagi.

Setelah download driver dari sini:

http://www.support.xerox.com/go/results.asp?Xtype=download&prodID=WCM24&Xlang=en_au&Xcntry=AUS

Ternyata nggak ada tuh untuk Xerox Document Center 240/C320/C400. Semua ppd filenya justru untuk model laennya. Gemana nih Xerox? Bener-bener deh. Linknya jelas, tapi setelah di extract justru nggak ada untuk model itu. Bahkan udah gue intip setiap ppd filesnya satu persatu, emang nggak ada keterangan untuk model itu.

Nggak sengaja lagi, ada link "Documentation" di link download tadi. Setelah gue klik, justru menuju ke sini:

http://www.support.xerox.com/go/results.asp?Xtype=docs&prodID=WCM24&Xlang=en_au&Xcntry=AUS&prodName=Document%20Centre%20C240/C320/C400

Aneh! Semua yang muncul di halaman ini adalah Xerox WorkCenter M24. Bukan support dari Xerox Document Center 240/C320/C400. Nggak jelas nih. Gue yang bego, or Xerox yah? :-D Karena gue coba klik skali lagi, emang muncul lagi semua dokumentasi link Xerox WorkCenter M24.

Ya udah. Akhirnya gue cari dari ppd file tadi untuk Xerox WorkCenter M24. Lalu ppd file (xrxwcm24.ppd) ini gue coba pake untuk Xerox Document Center 240/C320/C400 milik kita. Well... color bisa dicetak dengan sempurna. :-D

07 Juni 2009

Generate otomatis Logon script di Samba

Sebenernya idenya udah dari tahun lalu pengen bikinnya. Tapi karena melihat keadaan user sini yang nggak terlalu komplek waktu itu, cukup bikin 1 departemen 1 macem logon script saja. Dan MIS udah terbiasa dengan hal ini. Maklum, mereka baru kenal Linux. Banyak nggak taunya kalo sebenernya server Linux bisa di customize untuk kebutuhan macem-macem. Dan kali ini loe akan liat hasilnya ;-)

Setelah baca artikel Vavai (link), baru inget lagi. Dan tepat juga dengan keluhan beberapa bos sini. Mereka pengen akses di banyak departemen folder. Maunya semuanya langsung muncul seperti Linux user. Well ... Ubuntu (Gnome) client di sini menikmati logon script juga loh :-D Sekali login ke Gnome, semua folder di server NFS langsung terbookmark otomatis. Baca deh artikel gue tentang ini (link).

Karena mulai banyak user yang maunya akses beberapa folder departemen laen, mau nggak mau harus cari solusi. Setelah baca-baca "samba-doc" muncul ide juga. Sayangnya contoh logon script yang di generate pake Python dan Perl. Dan gue nggak ngerti tuh ke 2 bahasa itu. OK, no problem deh. Pake scripting yang laen juga bisa di Linux. Karena dikit-dikit tahu tentang Bash, akhirnya gue pilih Bash script saja. Dan berhasil :-D

Kondisi sharing di server (Samba)

Setiap user disini, akan langsung menikmati folder-foldernya di server:
  1. Personal (masing-masing username dapat folder sendiri)
    Default Samba pake nama [home], tapi sengaja gue ganti nama sharenya.
  2. Department (semua user di departemen yang bisa akses)
  3. Public (Semua user bisa baca, hanya perdepartemen yang bisa baca/tulis)
  4. Software (software for Linux/Windows untuk kebutuhan MIS support ke client)
  5. Temp (Temporary folder)
Untuk No.1,3,4,5 setiap user akan menikmati mapping folder ini. Kendala munculnya di no.2 di atas. Ada user yang maunya akses folder ke 3 departemen. Padahal logon scriptnya udah kita set ke default department. Mau nggak mau, MIS akan mount manual di Windows. Dan ini akan jadi masalah, saat user pake komputer laen departemen selain default nggak muncul lagi.

Pake logika yang sama seperti bikin script untuk Gnome, disini ada perbedaan cara kerja. Windows client memiliki fasilitas logon script saat udah join ke Windows/Samba server. Jadi tanpa perlu nambah apa-apa di client. Murni generate script dan deteksi group semuanya dilakukan di server Linux/Samba. Sama skali tanpa perlu nambah software di client.

Bandingkan dengan Ubuntu/Gnome client di artkel sebelumnya (link). Script emang ada di NFS server. Tapi setiap user login via GDM, script di server tersebut harus di load. Jadi autostart programnya akan bermanfaat disini. Cukup buat 1 shortcut yang sangat simple dan copy ke semua client Ubuntu. Siapapun yang login ke Ubuntu client, shortcut itu akan meload script di NFS server dan langsung folder di NFS akan terbookmarks di File Browser (Nautilus). Solusi beres. Baca artikel di link atas selengkapnya.

Konfigurasi Samba

Ini konfigurasi di Samba server. Terutama bagian yang berkaitan dengan netlogon saja yah:

[global]
logon script = %U.bat

[netlogon]
path = /samba/netlogon
writeable = no
guest ok = no
root preexec = /usr/local/bin/genlogonscript.sh %U
root postexec = rm -f /samba/netlogon/%U.bat


Dan ini adalah script bash untuk mengenerate logon scriptnya. Yang harus di simpan ke /usr/local/bin/genlogonscript.sh dan buat jadi executable. Kalo ragu copy paste, bisa ambil salinan script ini di dropbox gue (link).

#!/bin/bash
# Logon script generator using Bash
# created by Lutfi <lutfi.arab@gmail.com> @2009
#
# Requirement software:
# - tofrodos
#
# Limitation:
# - ldap group have to same with department folder
# - mapping drive from drive L until drive Y
#
# define your server here

servername=SAMBASVR
logonscriptdir=/samba/netlogon
logonscript=$logonscriptdir/$1.bat
user=$1

# starting to generate logon script
# set time on client
echo "NET TIME \\\\$servername /SET /YES" > $logonscript

# delete old mapping
drive=( J K L M N O P Q R S T U V W X Y )
for (( i=0; i<${#drive[@]}; i++ )); do
echo "NET USE /DEL ${drive[$i]}:" >> $logonscript
done

# map personal folder
# default samba using \\<samba-server>\<username>
echo "NET USE J: \\\\$servername\\PERSONAL" >> $logonscript

# map public folder
echo "NET USE K: \\\\$servername\\PUBLIC" >> $logonscript

# map department folder
drive=( L M N O P Q R S T U V W )
let driveno=-1

for i in `/usr/bin/groups $user` ;
do
for j in `/bin/ls /samba/department/` ;
do
if [ $i == $j ] ; then
let driveno++ ;
echo "NET USE ${drive[$driveno]}: \\\\$servername\\$i" >> $logonscript ;
fi ;
done ;
done

# map software folder
echo "NET USE X: \\\\$servername\\SOFTWARE" >> $logonscript

# map temp folder
echo "NET USE Y: \\\\$servername\\TEMP" >> $logonscript

# add space here
echo >> $logonscript

# convert text to dos format
cd $logonscriptdir
/usr/bin/unix2dos $logonscript
/bin/chmod 644 $logonscript

#finishing
exit

Contoh hasil generate

Misal generate logon script untuk gue, bisa di cek dulu gue masuk groups apa nih? Oya, gue pake sambldap-tools. Jadi groups udah ada di LDAP dan udah terintegrasi dengan sistem. Tapi kalopun nggak pake LDAP server (murni samba), script ini tetep bisa. Karena deteksi groups gunakan sistem Linux. Misal nih gue masuk groups apa aja:

root@sambasvr:~# su lutfi
lutfi@sambasvr:/root$ groups
Domain Users Domain Admins Administrators mis management

Jadi gue masuk di groups (department): "mis" dan "management". Dan ke dua groups ini punya folder di /samba/department. Group yang laen (Domain Users, Domain Admins dan Administrators) adalah default groups dari Samba. Yang mana nggak ada foldernya. Jadi ini akan diabaikan. Jadi untuk yang ini, jangan punya folder department bernama: Domain, Admins, Administrators dan Users. Inget yah!

Berikut contoh hasil script yang di generate:

root@sambasvr:/samba/netlogon# cat lutfi.bat
NET TIME \\SAMBASVR /SET /YES
NET USE /DEL J:
NET USE /DEL K:
NET USE /DEL L:
NET USE /DEL M:
NET USE /DEL N:
NET USE /DEL O:
NET USE /DEL P:
NET USE /DEL Q:
NET USE /DEL R:
NET USE /DEL S:
NET USE /DEL T:
NET USE /DEL U:
NET USE /DEL V:
NET USE /DEL W:
NET USE /DEL X:
NET USE /DEL Y:
NET USE J: \\SAMBASVR\PERSONAL
NET USE K: \\SAMBASVR\PUBLIC
NET USE L: \\SAMBASVR\mis
NET USE M: \\SAMBASVR\management
NET USE X: \\SAMBASVR\SOFTWARE
NET USE Y: \\SAMBASVR\TEMP

Laen-laen

Script ini akan gunakan drive mapping mulai drive J sampe drive Y. Jadi kalo butuh manually mount, sebaiknya jangan gunakan drive itu. Karena setiap login akan di diskonek dan di bikin drive mapping baru.

See pren, dengan Linux semua jadi bisa kan;-)