Preamble
While trying things out I found that Kerberos support is still too much in flux, a new auth2-server/clog-client
- is upcoming, which will do things differently. So I will only describe how to get Coda up and running on Debian with minimal effort.
If you are sensible to data loss read the disclaimer at the bottom of the page first.
Setup Scenario
We have one very small Server hosted at an Internet Service Provider and with very long uptimes: hurd.magma.co m.ni]. ["=hurd"] hosts the [=magma.com.ni
domain, with a Webserver, and a mailserver with some five user accou nts.
Our team works at geographically different locations and wants to use this Server as a central storing point fo r our shared (and private) documents. So we set up a Coda SCM which holds our files_, and a Kerberos Realm for
- authentication on this server_. On the notebooks of each members, as well as on the computers at different locations we set up the Kerberos cl ients and the Coda Venus client.
Prepare APT
We use Debian unstable, which will - Real Soon Now (t) - turn into the stable Sarge distribution. We also need
- to set up the CMU Debian repository so our /etc/apt/sources.list file looks like this:
deb http://ftp.us.debian.org/debian unstable \ main contrib non-free deb http://ftp.at.debian.org/debian-non-US unstable/non-US \ main contrib non-free deb http://www.coda.cs.cmu.edu/debian unstable/
Don't forget to [=apt-get update].
Client Setup
- as root run:
apt-get install coda-client
You will be asked for a default realm for authentication, type in the domain name of your coda-server in spe, i n my case: [=magma.com.ni].
Second question: size of the cache for storing files, either leave the default, or increment it up to 300000 as
- fits the spare size of your harddisk. If you are not asked for the default realm, run:
dpkg-reconfigure coda-client
after installation.
Now you would be ready, if you head a recent kernel and coda support compiled in, or as a module. I recommend:
apt-get install kernel-package libncurses-dev \ kernel-source-2.6.6 cd /usr/src tar xjf kernel-source-2.6.6.tar.bz2 cd kernel-source-2.6.6 make menuconfig
... find and mark
Filesystems ---> Network File Systems ---> <M> Coda file system support (advanced network fs) [ ] Use a default NLS
... compile and install the new kernel
make-kpkg clean; make-kpkg kernel-image cd .. dpkg -i kernel-image-2.6.6_10.00.Custom_i386.deb echo coda >> /etc/modules
Make your computer reboot this new kernel and you should be set.
Server setup
- as root run:
apt-get install coda-server
then you must decide about the disk space you will burn. Just for simplicity (hoo!) we'll use raw disk partiti on, we need three of them,
- log partition: 2M -- /dev/hda8
- rvm - data partition: 90M -- /dev/hda9
Partition where the actual files are stored: 2.2G /dev/hda10 Use any disk partitioner you like to generate them but be sure to make them at least as big as indicated, or a little bit bigger. Format the 2.2G partition with any file system you like, I use
reiserfs] or [=ext3
. Maybe- you need to reboot before formatting for the kernel to recognice the new partitions.
Then create the directory
/vicepa
, put the line
- you need to reboot before formatting for the kernel to recognice the new partitions.
Then create the directory
/dev/hda10 /vicepa reiserfs defaults 0 0
into [=/etc/fstab] and [=mount /vicepa].
We need also three authentication tokens, you can generate them with pwgen] (you '''have''' [=pwgen
installed , haven't you?)
wieDii3d Ohgh3noo Phuve7ci
Invent a coda username and user id you well use for coda administration. The id must not be 0 and it is conven ient if the username ist the same as your standard unix account name. I propose starting with id 5000.
Now you can run
vice-setup
I copy here some crucial questions/answers from the dialog with this script:
... Is this the master server, aka the SCM machine? (y/n) y ... Enter an id for the SCM server. (hostname clums) The serverid is a unique number between 0 and 255. You should avoid 0, 127, and 255. serverid: 1 ... Enter the name of the rootvolume (< 32 chars) : coda.root ... Enter the uid of this user: 1000 Enter the username of this user: jorge ... Are you ready to set up RVM? [yes/no] yes ... What is your log partition? /dev/hda8 ... What is your log size? (enter as e.g. '2M') 2M ... What is your data partition (or file)? /dev/hda9 ... What is the size of you data partition (or file) [22M, 44M, 90M, 130M, 200M, 315M]: 90M ... Proceed, and wipe out old data? [y/n] y ... Where shall we store your file data [/vicepa]? Shall I set up a vicetab entry for /vicepa (y/n) y Select the maximum number of files for the server. [256K, 1M, 2M, 16M]: 1M
Note that I just pressed enter at the [/vicepa] question.
Eventually you must start the coda server, do it with:
invoke-rc.d codasrv.init start
The last part of the [=vice-setup] tells you (amongst other things) how to create your root volume. Just copy that command and run it. You need NOT to start up all the servers. The [=init.d] script of the Debian package
- takes care of that.
User Setup
To set up a new user or group, you must login to the Coda Server as root and run `pdbtool]. To give the user a
- password, you log in at the Coda Client as the administrative user and use the ["[=coda-client =au] comm and. The [=au] command is actually not contained in the"] package, you can either copy it from the server to the client machine, or install -- but not necessarily set up -- the [=coda-server` package on the client.
au] is in the directory ["=/usr/sbin/"] so it is not on the normal users [=PATH
, either create (as root) a sy mlink:
ln -s /usr/sbin/au /usr/local/bin/au
or copy the program to the [=/usr/bin] directory.
Ok, first let's create two new users and a group for the cell, then let's change the default password (changeme ) of the administrative user to something sensible, and assign the two users a password. As a gift: two brand new passwords from pwgen
:
evail0Ah ae5vieMi
Users need positive numeric id's, we choose to count from 5000 onwards.
Now, we log in to the Coda server as root an run:
pdbtool nui guest 5000 nui gloria 5001ng magma jorge ag jorge magma ag gloria magma
nui - create new user with id
ng - create new group
- ag - add (user to) group
The users
jorge] and [=gloria
are now members of the group magma.
We go back to our Coda client, and run
au cp Your Vice name: jorge Your password: changeme User name: jorge New password: evail0Ah ... au nu Your Vice name: jorge Your password: evail0Ah User name: gloria New password: ae5vieMi ... au nu Your Vice name: jorge Your password: evail0Ah User name: guest New password: guest
cp - change password
nu - add password to new user You have now a
guest
user, which you can use to allow anyone else in the Internet to play with (parts of) you r Coda Volume
Coda exploration
Now that we have three users and a running Coda cell we should do something with it. We can for example mimic the testserver Coda Cell at CMU, which has a README] file, visible to the anonymous user, and a directory name d "playground" which is read and writable by the guest user. And finally we create a directory ["=magma"] wher e we hold data only accessible to members of the [=magma
group.
clog jorge Password: evail0Ah cd /coda/MAGMA.COM.NI mkdir playground magma cfs sa -clear playground guest all cfs sa -clear magma magma all
To create the [=README] file, we just use our favorite editor. This file can not be edited by [=gloria], unles s we add her to the the System:Administrators group.
Where to from here
If you did not run into trouble, you have a simple Coda Cell up and running. Don't put valuable data into it y et, or stay always backed up. There are several things you can and should do:
- try out replication, by adding (an)other server(s) - adding more volumes (
/vicepb /vicepc ...
) to the cell - try out the backup facility
Very soon you will run into disconected operation and into conflicts and reparations. All this is subject to t he original Coda Manuals.
References
Disclaimer
The instructions given in this document are derived from my experience of setting up a coda cell. The specific
parameters and commands shown, may render your client and your server computer useless by loss of any or all d ata. Do not use this instructions, if you are not sure about taking this risk, and if you are not sufficient f amiliar with your operating system and computer to fully comprehend every step. And first of all: do not blaim
me for any damage done to any of your items by following these instructions. Of course, I am always open to corrections and suggestions.
?CategoryCoda
It is wise to do all this, and, for example, convert the playground] and the [=magma
directory into mountpoin ts and mount individual volumes on them.