Catagory:DXSpider Centos 7 Install

From Ham Wiki
Jump to: navigation, search

Packages to install

First make sure you are up to date:

sudo yum update

Now install the required packages

sudo yum install perl-TimeDate perl-Time-HiRes perl-Digest-SHA1 perl-Curses perl-Net-Telnet git gcc make perl-Data-Dumper perl-DB_File ftp git

Add EPEL repository

sudo rpm --import http://mirrors.mit.edu/epel//RPM-GPG-KEY-EPEL-7
sudo rpm -Uvh http://mirrors.mit.edu/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

For IPv6 support add:

sudo yum perl-IO-Socket-IP.noarch

Configure Timezone

First, take a look at the available timezones by typing:

sudo timedatectl list-timezones

This will give you a list of the timezones available for your server. When you find the region/timezone setting that is correct for your server, set it by typing:

sudo timedatectl set-timezone region/timezone

For instance, to set it to United States eastern time, you can type:

sudo timedatectl set-timezone America/Chicago

Your system will be updated to use the selected timezone. You can confirm this by typing:

sudo timedatectl

Configure NTP

Now that you have your timezone set, we should configure NTP. This will allow your computer to stay in sync with other servers, leading to more predictability in operations that rely on having the correct time. To start the service:

sudo systemctl start ntpd
sudo systemctl enable ntpd


Create Service file for systemd

With your favorite editor create the dxspider service

sudo vi /etc/systemd/system/dxspider.service

Add the following:

[Unit]
Description= Dxspider DXCluster service
After=network.target

[Service]
Type=simple
User=sysop
Group=sysop
ExecStart= /usr/bin/perl -w /spider/perl/cluster.pl
# Comment out line below for logging everything to /var/log/messages
StandardOutput=null
Restart=always

[Install]
WantedBy=multi-user.target

Firewalld

Enable firewalld

sudo systemctl start firewalls

Add ssh to be allowed in

sudo firewall-cmd --permanent --add-service=ssh

Add DXspider service

sudo firewall-cmd --permanent --add-service=dxspider

When you are finished, you can see the list of the rules that will be implemented by typing:

sudo firewall-cmd --permanent --list-all

When you are ready to implement the changes, reload the firewall:

sudo firewall-cmd --reload

If, after testing, everything works as expected, you should make sure the firewall will be started at boot:

sudo systemctl enable firewalld

Create file for dxspider

vi /etc/firewalld/services/dxspider.xml

Add the following

<service>
  <short>DXSPIDER</short>
  <description>Dxspider dxcluster service on tcp port 7300</description>
  <port protocol="tcp" port="7300"/>
</service>

Configuring The User And Group

This can be anything you want I've used sysop from the old BBS days. :)

sudo adduser -m sysop
sudo passed sysop

Choose a good strong password here!

You don't need to do this but I think it makes some things easier down the road.

sudo ln -s ~sysop/spider /spider

Create a new user group. But first check to see if the group number is already in use.

cat /etc/group |grep 251

If it does not exist create it or chose a different number

sudo groupadd -g 251 spider

Add the sysop user to the group and yourself if or root

sudo usermod -aG spider sysop
sudo usermod -aG spider root   <--optional

Now let's grab the current DXspider build as of this it is 1.55

Change to the sysop user:

sudo su - sysop

Grab the latest build with git:

git clone git://scm.dxcluster.org/scm/spider

NOW FIX PERMISSIONS AS SYSOP!!

chown -R sysop.spider spider
find . -type d -exec chmod 2775 {} \;
find . -type f -exec chmod 775 {} \;

Cluster Configurations

Now for the good stuff the configs.

cd /spider
mkdir local
mkdir local_cmd
cp perl/DXVars.pm.issue local/DXVars.pm
cd local
vi DXVars.pm

In the DXVars.pm file you will need to make a few changes like set your cluster callsign, sysop callsign and other user info to suit your own environment.

$mycall = "N9BC-2";

# your name
$myname = "Brent";

# Your 'normal' callsign (in CAPTTAL LETTERS)
$myalias = "N9BC";

# Your latitude (+)ve = North (-)ve = South in degrees and decimal degrees
$mylatitude = +44.4375000;

# Your Longtitude (+)ve = East, (-)ve = West in degrees and decimal degrees
$mylongitude = -87.7916667;

# Your locator (USE CAPITAL LETTERS)
$mylocator = "EN54XL";

# Your QTH (roughly)
$myqth = "Green Bay, Wisconsin";

# Your e-mail address
$myemail = "n9bc\@arrl.net";

# Your BBS addr
#$mybbsaddr = "G1TLH\@GB7TLH.#35.GBR.EU";

After you save the file change directory to ../perl

cd ../perl

Now type the following command which creates the basic user file with you as the sysop.

./create_sysop.pl

Build the client program

cd /spider/src
make

Configure internet access to your cluster. I have mine listening on port 7300 on both IPv4 and IPv6

cp /spider/perl/Listeners.pm  /spider/local/
vi /spider/local/Listeners.pm

My Dual stack config

package main;

use vars qw(@listen);

@listen = (
          ["::", 7300],
          #["0.0.0.0", 7300],
);

1;

Start Dxspider

 sudo service dxspider start
Stop Dxspider
s udo service dxspider stop
Set up to start on boot 
 sudo systemctl enable dxspider


Add QRZ Lookups

The command sh/qrz will only work once you have followed a few simple steps. First you need to get a user ID and password from qrz.com. Simply go to the site and create one. Next you need a paid subscription for this to work. Last you need to copy the file /spider/perl/Internet.pm to /spider/local and alter it to match your user ID and password. You also at this point need to set $allow=1 to complete the setup.

cp perl/Internet.pm local/Internet.pm
vi local/Internet.pm

Set your password via the console

cd /spider/perl
./console.pl
set/password n9bc Jdbk3@@Va25
bye


Cluster Peers

Adding peers so you can see spots. One thing to note you need to contact the peer sysop so they can add you as peer node to their configuration without them adding your node you will not see any new spots only local ones you generate. Here are some examples:

cd /spider/connect
vi iw2evh-6
timeout 30
abort (Busy|Sorry|Fail)
connect telnet 1972.dyndns.tv  7300
'Login' 'n9bc-2'

For IPv6 peer

vi /spider/wb3ffv-2
timeout 30
abort (Busy|Sorry|Fail)
connect telnet 2001:550:102:1::11 7300
'Login' 'n9bc-2'

Once you have setup the peers and are added by the peer you can now connect to them. Use the console or telnet to your node.

cd /spider/perl
./console.pl

Set the node type if they are a dxspider node type this:

set/spider wb3ffv-2
connect wb3ffv-2

You can check by issuing the who command

who
  Callsign Type      Started           Name     Ave RTT Link
  IW2EVH-6 NODE DXSP 30-Dec-2015 2209Z             0.26 79.35.192.156
      N9BC USER      31-Dec-2015 1942Z Brent            ::1
    N9BC-2 NODE DXSP 17-Dec-2015 0513Z Brent
      NX9G NODE DXSP 29-Dec-2015 1417Z             0.14 2607:f978:5:8001::1
  WA9PIE-2 NODE DXSP 31-Dec-2015 0212Z             0.11 172.246.122.151
  WB3FFV-2 NODE DXSP 29-Dec-2015 1354Z             0.14 2001:550:102:1::11

Show should now start to see DXspots coming in.

Last thing to do is set up Crontab for auto connecting to the other peers

cd /spider/local_cmd
vi crontab
* * * * * start_connect('wb3ffv-2') unless connected('wb3ffv-2')
* * * * * start_connect('wa9pie-2') unless connected('wa9pie-2')
* * * * * start_connect('nx9g') unless connected('nx9g')
* * * * * start_connect('iw2evh-6') unless connected('iw2evh-6')

Now you should have a fully running DXspider DX Cluster. If you would like to add me as a peer please send me a email.

73, N9BC Brent