*** OCTOPUS INSTALLATION***
0. - INSTALL INFERNO
The recommended version now is the google code version.
Install a subversion client. In debian and MacOSX you need
svn-client so
apt-get install svn-client
Search for
inferno-os google code
in google.
Go to source and get it:
svn checkout http://inferno-os.googlecode.com/svn/trunk/ /inferno
Now you need the fonts from a regular inferno installation, which is just
copying the /fonts directory.
1.- INSTALLING THE PC ON A SHARED PLAN 9 / INFERNO
SYSTEM.
From now on, local machine is isis.
Note that inferno's root is shared with other users, therefore you have
to bind your personal files before running inferno.
Choose a directory to place your personal configuration files.
My directory is $home/octopus.
Make the directory and copy these ndb files from the shared
installation and customize them:
mkdir $home/octopus/
cp /usr/inferno/lib/ndb/octopus $home/octopus/ndb.octopus
cp /usr/inferno/lib/ndb/local $home/octopus/ndb.local
Create a new directory called keydb. This directory contains
the files needed to run the authentication server for our octopus.
Create a file named 'keys'. The file will store the users accounts.
(see chapter 2).
mkdir $home/octopus/keydb
mkdir $home/octopus/keys
mkdir $home/keyring
cp /dev/null $home/octopus/keydb/keys
chmod 600 $home/octopus/keydb/keys
Create a script to bind your files and run Inferno.
This is my script, $home/bin/rc/inferno:
----
#!/bin/rc
bind -b /usr/inferno/Plan9/386/bin /bin
bind -b /usr/ /usr/inferno/usr/
bind -c $home/octopus/keydb /usr/inferno/keydb
bind -c $home/octopus/keys /usr/inferno/mnt/keys
bind -c $home/octopus/ndb.local /usr/inferno/lib/ndb/local
bind -c $home/octopus/ndb.octopus /usr/inferno/lib/ndb/octopus
emu -g1850x1150 /dis/wm/wm.dis /dis/wm/logon.dis -u $user
----
Run an inferno using the script above, so your configuration files come from
your $home/octopus instead of the shared inferno.
2.- INSTALLING THE PC
Run Inferno (don't forget to run wm/logon -u username).
2.1- CONFIGURING THE NETWORK
Configure a /lib/ndb/local file following the inferno documentation.
If you are using the script provided above, /lib/ndb/local inside
inferno is actually $home/octopus/ndb.local outside and
/lib/ndb/local/octopus corresponds to $home/octopus/ndb.octopus.
Copy a /lib/ndb/octopus file or copy/paste this text:
tcp=op port=16699
tcp=rop port=17000
sys=pc ip=IP_OF_THE_PC #i.e. 212.128.4.125
Where ip is the ip of the machine which is going
to act as your PC.
Include /lib/ndb/octopus in the ndb/local,
database=
....
file=/lib/ndb/octopus
Change the inferno site info in the file /lib/ndb/local.
You have to set your PC name in the following attributes:
SIGNER, FILESERVER, registry and gridsched.
You also have to add an entry to define your PC and
its ip address.
----
infernosite=
dnsdomain=YOUR_DNS_DOMAIN # lsub.org
dns=IP_RESOVER # resolver i.e. 193.147.71.86
SIGNER=PC_NAME # isis.lsub.org
FILESERVER=PC_NAME # isis.lsub.org
smtp=SMTP_SRVR_NAME # aquamar.pantuflo.es
dom=YOUR_DOMAIN # lsub.org
registry=PC_NAME # isis.lsub.org
gridsched=PC_NAME # isis.lsub.org
sys=pc ip=IP_OF_THE_PC # 212.128.4.125
----
2.2- CONFIGURING AN AUTH AND FILE SERVER
Create a signer key file in $home/octopus/keydb.
This file is used to generate certificates for clients.
The command createsignerkey creates this file. Its
first argument is the name of the Certification Authority (CA).
In this case, the name of the PC.
cd /keydb
auth/createsignerkey PC_NAME # isis.lsub.org
We need to store the keydb password in a file to not type it everytime
we boot the PC. Note that this password is used to encrypt/decrypt
the keys file, not to be authenticated in the server. It's similar to the
auth server's password in a Plan 9's CPU/auth server.
cd /keydb
echo 'mysuperpasswd' > nvr
chmod 600 nvr
Run the auth server:
ndb/cs
svc/auth -n /keydb/nvr
You have to create an account for your user.
auth/changelogin USERNAME #paurea
This command asks you to set a password. This password will be used to
authenticate your user in the auth server. Do not confuse this
password with the auth-server's password set above.
Make sure the account has been created:
ls /mnt/keys/username
You should see some files there, such as secrect, status etc.
Next, get the certificate for the PC. The PC is the CA (certification
authority), but it is also the file server. Hence, it needs a
certificate to exectute the inferno's auth protocol. This protocol
is based on Diffie-Hellman (for more info read the "Inferno Security"
paper by D. Presotto, (pdf at ieee explore).
getauthinfo default
Now run this command so that the PC can serve files.
svc/net
2.3- OPTIONAL: TEST THE AUTH/FILE SERVER
Try to mount this Inferno FROM OTHER INFERNO
In the client, get a certificate
getauthinfo default
>use signer: PC_NAME #isis.lsub.org
>remote username: USERNAME #paurea
>password: ....
>save in file: yes
and mount the PC
ndb/cs
mount PC_NAME /n/remote
If you can get the ticket and mount the Inferno, the auth server
is OK. If not, check out the ndb database (configure it as in
previous stages).
2.4- SETUP OCTOPUS IN THE PC (AUTH/FILE SERVER)
*ignore this at lsub or if /dis/o contains the binaries already*
Copy the octopus binaries in the local inferno fs.
You can get them from whale.lsub.org.
Lets assume you have whale.lsub.org mounted on /n/whale:
cd /n/whale/dis
puttar o > /tmp/o.tar
cd /dis
gettar -v < /tmp/o.tar
Re-start Inferno.
Start the PC:
o/pcrc
3.- INSTALLING A NEW TERMINAL.
Install inferno and configure the network:
Copy /lib/nbd/local from your PC to /lib/ndb/local.
Copy /lib/ndb/octopus too.
Run
wm/logon -u USERNAME
for example use this script to run inferno on Mac Os X:
-----
#!/bin/sh
#do not forget to update the PATH to use the Inferno binaries.
inferno -g 1280x750 wm/wm wm/logon -u $USER
-----
Create a $home in the inferno.
mkdir /usr/USERNAME
mkdir /usr/esoriano/lib
mkdir /usr/esoriano/tmp
mkdir /usr/esoriano/keyring
chmod 700 /usr/esoriano/keyring
Start the connection server:
ndb/cs
Get a ticket to be authenticated on the PC:
getauthinfo default
>use signer: PC_NAME
>remote username: USERNAME
>password: ....
>save in file: yes
You have your ticket stored in /usr/USERNAME/keyring/default
Mount the PC:
mount PC_NAME /n/remote
Copy the octopus port binaries to the local inferno:
cd /n/remote/dis
puttar o > /tmp/o.tar
cd /dis
gettar -v < /tmp/o.tar
You need to create some directories: one to mount the pc, one to
mount devices, and one to store the cache:
mkdir /n/pc
mkdir /n/pc/devs
mkdir /tmp/cache
and the mount points for the terminal's devs:
mkdir /term
mkdir /term/print
mkdir /term/view
mkdir /term/voice
mkdir /term/what
mkdir /term/who
mkdir /term/fs
mkdir /devs
Edit the terminal's script and change the default PC name to your own.
sed 's/alboran.lsub.org/PC_NAME/g' \
< /n/remote/dis/o/termrc > /dis/o/termrc
Re-start Inferno.
Run the terminal's script:
o/termrc
Now, you (should) have an octopus terminal ready to be used.
Enjoy.
|