Install DxSpider on CentOS 7 / RHEL 7

Revision: 1.00 – 07/05/2018

Here you find my installation guide how to install DxSpider on CentOS 7 / RHEL 7.  Also you can find more information here wiki.dxcluster.org. If you need help please contact with me.

Furthermore if you don’t want make manual installation you can used my script for the installation and configuration Dxspider (The firewall and services must be configure manual).

1. First login as  root.

SeLinux is by default enabled and there is no need to disable it for running a telnet DxSpider node.

yum is the package manager

to update the system use

# yum update

as the root user install the additional package repository EPEL

# yum install epel-release

2. Add the extra packages needed by DXSpider

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

3. Create user sysop and setup password

# adduser -m sysop 

# passwd sysop

4. Now download and  unpack the DX Spider distribution, set symbolic links and group permissions.

# ln -s ~sysop/spider /spider

before adding the spider group it is advisable to check that group # 251 is not already in use

# cat /etc/group |grep 251

Which should produce no output, if 251 is already assigned to a group choose a different group Number here, On Redhat based distributions Group numbers below 500 are assigned to system services so choose a free group number below 500

# groupadd -g 251 spider

Use the following commands to add the users to the spider group

# usermod -aG spider sysop 

# usermod -aG spider root

5. Now login to your machine as the user you created earlier. In my case that user is called ‘sysop’. Once logged in, issue the following commands

# su -l sysop

6. Use git to get latest DXspider build

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

7. Fix up permissions ( AS THE SYSOP USER )

Very bad things happen if you run these as root and in the wrong place, so I wish to make it abundantly clear that these are to be run as the sysop user in the sysop’s home directory /home/sysop

$ chown -R sysop.spider spider

$ find . -type d -exec chmod 2775 {} \; 

$ find . -type f -exec chmod 775 {} \;

8. We are installed, now to configure the cluster

$ cd /spider $ mkdir local

$ mkdir local_cmd 

$ cp perl/DXVars.pm.issue local/DXVars.pm 

$ cd local 

$ vi DXVars.pm (or your favourite editor)

Using the distributed DXVars.pm as a a template, set your cluster callsign, sysop callsign and other user info to suit your own environment.

$mycall = "SV5FRI-1";

This is the call sign of your cluster. Here in the UK we have separate callsigns for our cluster nodes. If you can’t use a different callsign I suggest you use an SSID of ‘-2’ for the node callsign ‘$mycall’.

$myalias = "SV5FRI";

This is the sysop user callsign, normally your own.

PLEASE USE CAPITAL LETTERS FOR CALLSIGNS

Note that this a perl file which will be parsed and executed as part of the cluster. If you get it wrong then perl will complain when you start the cluster process. It is important only to alter the text of any section. Some of the lines look a little odd. Take this line for example ….

$myemail = "myemail@gmail.com";

There appears to be an extra slash in there. However this has to be there for the file to work so leave it in.

DON’T alter any file in /spider/perl, they are overwritten with every release. Any files or commands you place in /spider/local or /spider/local_cmd will automagically be used in preference to the ones in /spider/perl EVEN while the cluster is running!

Save the new file and change directory to ../perl ….

9. Edit Listeners.pm to remove “#” from the line for the port, and add additional ports as needed:

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

$ cd /spider/local/ 

$ vi Listeners.pm

edit /spider/local/Listeners.pm

It comes out of the box looking something like:-

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

Change it so that it looks like this:-

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

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

$ cd ../perl 

$ ./create_sysop.pl

11. Firewall Configuration

Login as root

The firewall, centos7 has moved to using firewalld to manage the firewall settings, I am not sure how I feel about this! The old way can be installed

# yum remove firewalld

# yum install iptables-service 

# systemctl enable iptables

Then you have the traditional iptables way of doing things

However if one wishes to use the ‘new way’ with firewalld

first create

# touch /etc/firewalld/services/dxspider.xml


# vi /etc/firewalld/services/dxspider.xml

with the contents (change port number to suit your own needs)

<service> 
	<short>DXSpider</short> 
	<description>DXSpider DX cluster service</description> 
	<port protocol="tcp" port="7300"/> 
</service>

then issue the following commands as root

# firewall-cmd --reload 

# firewall-cmd --permanent --zone=public --add-service=dxspider 

# firewall-cmd --reload

12. Service Configuration (systemd)

Login as and a basic service file for systemd

create a file

# touch /etc/systemd/system/dxspider.service


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

With the following contents

[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

[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

Usage:

to start up dxspider 

# systemctl start dxspider 

to stop 

# systemctl stop dxspider 

to set up to start on boot 

# systemctl enable dxspider

13. On a separate ssh or system console, log into the system as sysop

$ /spider/perl/console.pl

14. Creates the connect script file and enters the editor. Your connect script should look similar to this script.

Create connect script

$ touch /spider/connect/<adjacent_node_callsign>

$ vi /spider/connect/<adjacent_node_callsign>

Connect script must like this

timeout 60 
abort (Busy|Sorry|Fail) 
# don't forget to chmod 4775 netrom_call! 
connect telnet cluster.xyz.com 7300 
# example 'login' 'sv5fri-1' 
'login' 'your_node_callsign' 
# example if you connect to k1ttt 
# client k1ttt 
telnet client connect_node_callsign telnet

After check permission file

# chmod 775 /spider/connect/adjacent_node_callsign

15. To configure your node you must set the adjacent node by node type:

i. For connection to a DXSpider node use the set/spider command from the console

$ /spider/perl/console.pl

–----- 
sv5fri de sv5fri-1 25-Nov-2015 0755Z dxspider > set/spider adjacent_node_callsign

 Enter your link partner as after set/spider

ii. For a connection to an ARCluster node

$ /spider/perl/console.pl 
–----- 

sv5fri de sv5fri-1 25-NOV-2015 0757Z dxspider > set/arcluster adjacent_node_callsign

16. To initiate a connection to the your new adjacent node partner

$ /spider/perl/console.pl 

connect adjacent_node_callsign

17. At least you need a cron and a connect script to connect to the nodes automatically for examble – your node parter is: k1ttt

$ touch /spider/local_cmd/crontab 

$ vi /spider/local_cmd/crontab

the cron like this:

# Check every 10 minutes to see if xxxx is connected and if not 
# start a connect job 
#
0,10,20,30,40,50 * * * * start_connect('k1ttt') unless connected('k1ttt')

Next change the permissions for the file crontab

# chmod 775 /spider/local_cmd/crontab

Good luck with DxSpider installation 🙂

Share