-=] INTRODUCTION

Setting up Node Assassin involves two steps;

A. Installing the Fence Agent.

B. Programming the Node Assassin device(s).


-=] A. Installing the Fence Agent


1. For the impatient:

wget http://nodeassassin.org/files/node_assassin.1.1.4.tar.gz
tar -xvzf node_assassin.1.1.4.tar.gz
cd node_assassin.1.1.4
./install
vim /etc/fence_na/fence_na.conf
# Setup as per internal docs.
vim ./naos_1.1.4.4.c
# Edit and then load the NAOS as per B. below


2. Step by step:

If you are reading this, then you have probably already downloaded the Node
Assassin source. If not, though, download it here:

wget http://nodeassassin.org/files/node_assassin.1.1.4.tar.gz

Once downloaded, extract the file:

tar -xvzf node_assassin.1.1.4.tar.gz

This will create a directory called 'node_assassin.1.1.4', change into that
directory and you will see an installer script called, simply, 'install'. Run
that and you will be prompted to input some information.

cd node_assassin.1.1.4
./install

This will install create any needed directories and then copy file into place
and add support for Node Assassin to the 'cluster.ng' file.

Lastly, edit the '/etc/fence_na/fence_na.conf' file to match your environment
and Node Assassin(s). Details on how to edit the config file are imbedded in
the config file itself.

Proceed to the next section for details on editing and loading NAOS for your
Node Assassin(s).


-=] B. PROGRAMMING THE NODE ASSASSIN(S):

1. Download:

You will need to download the Arduino IDE. As of this writting, that is version
0018. Be sure to download the version appropriate for your architecture.

x32: http://arduino.googlecode.com/files/arduino-0018.tgz
x64: http://arduino.googlecode.com/files/arduino-0018-64-2.tgz

Check here for updates: http://arduino.cc/en/Main/Software

For convenience sake, a copy of the Arduino IDE for both architectures are
included with this package. They are copied to
'/etc/fence_na/arduino-0018.tar.gz' by the installer.


2. Modifying the NAOS Sketch

Arduino refers to loadable software as "sketches". In this case, the sketch you
will load is in the 'naos_<ver>.c' file. You can edit this in your favourite
text editor before loading it into the Arduino.

The most important sections to edit are:

2.1 MAC Address

byte mac[] = { 0x02, 0x00, 0x00, 0xFF, 0xF0, 0xAA };

If you have a MAC address pool, choose one and use it. Otherwise, select a
unique private MAC address. These are known as "privately administered" MAC
address and start with "0x02". 

2.2 Network Settings.

Be sure to edit the following values to match you PRIVATE cluster
administration LAN. That is, the Node Assassin MUST be on a subnet that is
NOT connected to any public-facing networks. Normally this is the cluster's
back channel.

The reason for this is that the Node Assassin does not implement internal
security. The fence agent does, but it's trivial to work around that at this
time if the Node Assassin itself is accessible.

byte ip[] = { 192, 168, 1, 66 };
byte nm[] = { 255, 255, 255, 0 };
byte dg[] = { 192, 168, 1, 1 };

2.3 Identity

These are optional changes, but can be useful to set if you are using multiple
Node Assassins cluster fence devices.

2.3.1 Node Assassin Name

To change the name of the given NA, change the following line:

char nodeName[16]="Motoko";

Replace "Motoko" with the name you want to assign to your device. Then be sure
to update the corresponding entry in the '/etc/na/fence_na.conf' file (see
Section 2.x below). By giving your NAs different names, it will be easier to
keep them straight in your mind when using them.

2.3.2 Serial Number

If you bought a Node Assassin then the serial number will have been assigned to
you when you got the device. It will be in the format 'NA####'. If you built
your own Node Assassin, then set your serial number as 'PR####' where '####' is
any integer you wish.

char serialNumber[7]="NA0002";

2.3.3 Build Date

If you bought a Node Assassin then the build date will have been assigned to
you when you got the device. It will be in the format 'YYYY-MM-DD'. If you
built your own Node Assassin, then you can set the date to the date you
completed the build.

char buildDate[11]="2010-04-03";


