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 🙂
Excellent instruction, and my dxspider runs as pa0esh-3. Now i would like to enhance it with the webinterface as per https://github.com/coulisse/spiderweb.
However i run into so manyy issues with python and pip that i lost it. Hace you ever succeeded in doing so ?
73’s
Erik, PA0ESH