Striker: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
No edit summary
Line 45: Line 45:
So how to resolve this?
So how to resolve this?


For completely understandable reasons, we can't simply repackage and distribute a [[RHEL]] or [[CentOS]]  
For completely understandable reasons, we can't simply repackage and distribute a [[RHEL]] or [[CentOS]] based Anvil! install ISO. Red Hat and CentOS work very hard to deliver their ISOs and they want to ensure that, if their name is on something, they've tested it to be up to their standards.


So given that we don't want to create a distro, and we respect Red Hat and CentOS's trademarks, the best option available was for us to create an ISO generation tool, and that's what we've done.


You run our tool against the stock ISO and it will generate an ready-to-go Anvil! ISO.


== Install Striker ==
== Build the Anvil! ISO ==


=== Requirements ===
{{note|1=We've tested this tool on [[Fedora]], [[RHEL]] and [[CentOS]] operating systems. It may not work on other distributions. If you have trouble, please [[Support|contact us]] and we'll work to extend support to new distros.}}


* A machine with two wired network interfaces, one to the [[BCN]] and one to the [[IFN]].
The build process is pretty simple;
* [[RHEL]], [[CentOS]] or similar version 6.x (6.5 or higher recommended).
** Minimal install is sufficient, provided you install <span class="code">perl</span>.
** The installer will install everything else it needs.


<syntaxhighlight lang="bash">
# Download the RHEL or CentOS 6 DVD ISO.
yum install perl
## [http://isoredirect.centos.org/centos/6/isos/x86_64/ CentOS x86_64 v6]
</syntaxhighlight>
## [https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux/get-started RHEL x86_64 v6 (try or buy)]
<syntaxhighlight lang="text">
# Download <span class="code">[https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-generate-iso anvil-generate-iso]</span>.
<yum output>
# Install dependencies.
</syntaxhighlight>
# Build the ''Anvil!'' ISO.
# (Optional) Write the ISO to a USB drive


This install document will be using a fresh, minimal install of CentOS 6.5.
=== Download the RHEL or CentOS ISO ===


=== Getting the Install Script ===
The first question to ask is;


The Striker installer needs to be downloaded. To account for minimal installs where <span class="code">wget</span> is not available, we'll use <span class="code">curl</span> instead which is always available.
"Do I want to build on RHEL or CentOS?".
 
<syntaxhighlight lang="bash">
curl https://raw.githubusercontent.com/digimer/striker/master/tools/striker-installer > striker-installer
</syntaxhighlight>
<syntaxhighlight lang="text">
  % Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 96104  100 96104    0    0  148k      0 --:--:-- --:--:-- --:--:--  318k
</syntaxhighlight>
<syntaxhighlight lang="bash">
chmod 755 striker-installer
ls -lah ./striker-installer
</syntaxhighlight>
<syntaxhighlight lang="text">
-rwxr-xr-x. 1 root root 94K Sep  1 17:55 ./striker-installer
</syntaxhighlight>


=== Using the Install Script ===
The answer is up to you, but it comes down to your support comfort level. If you are a proper business, then going with RHEL makes the most sense. You will need to purchase a RHEL entitlement and [Resilient Storage](https://www.redhat.com/apps/store/add-ons/) Add-On (which includes the High-Availability Add-On).


The install script works by taking command line switches. You can get a better explanation of the switches by running <span class="code">./striker-installer -h
If you're looking for a "free-as-in-beer" solution, or if you want to do a proof of concept/testing, CentOS is a perfectly fine option.
</span>.


The Striker installer configures the system as well as load the striker software. So we're going to tell it what host name, IP addresses and credentials to use.
At the time of writing, CentOS 6.7 is the latest and supported version. RHEL is up to 6.8 and that is the supported version. Please be sure to get the 64-bit version as 32-bit is not supported and very likely won't work.


In this tutorial, I am building a new Striker dashboard machine I will call <span class="code">an-m03.alteeve.ca</span>. I will be setting the following values:
For CentOS, download both DVD 1 and 2. For RHEL, there is only DVD 1.


{|class="wikitable"
Save the ISO in any directory you want, just make a note of where it is.
!Parameter
!Switch
!Value
!Description
|-
|[[Back-Channel Network]]
|class="code"|-b
|class="code"|10.20.4.3/16
|Sets the [[BCN]] IP address and subnet mask.
|-
|[[Internet-Facing Network]]
|class="code"|-i
|class="code"|10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4
|Sets the [[IFN]] IP address, subnet mask, default gateway and DNS servers.
|-
|Host name
|class="code"|-n
|class="code"|an-m03.alteeve.ca
|Sets the host name of the Striker dashboard machine.
|-
|Dashboard Owner
|class="code"|-c
|class="code"|Alteeve's Niche!
|This sets the name used on the password prompt when connecting to the dashboard. It reflects the owner/manager of the dashboard and is usually a company or organization name.
|-
|Email server user and password
|class="code"|-e
|class="code"|digimer@example.com:super secret password
|This is the email account user name and password that will be used later when sending alert emails from nodes.
|-
|Mail server details
|class="code"|-m
|class="code"|mail.example.com:587
|This is the mail server address and port that will be used later when sending alert emails from nodes. It is against this server that the user name and password defined in <span class="code">-e</span> will be used.
|-
|Striker user and password
|class="code"|-u
|class="code"|admin:another secret password
|This sets the user name and password that users will use when connecting to the dashboard. {{note|1=The password defined here will be used to set the <span class="code">root</span> user's password on the Striker dashboard itself. If you want these passwords to be different, please be sure to change it when the installer finished running.}}
|}


{{note|1=If you have already configured the network, please skip the <span class="code">-b</span> and <span class="code">-i</span> switches. If you have already configured the host name, please skip the <span class="code">-n</span> switch.}}
=== Download anvil-generate-iso ===


{{note|1=This is a standard <span class="code">[[bash]]</span> call, so please be sure to quote anything with spaces and to escape special characters like <span class="code">!</span>.}}
{{note|1=When version 2 is officially released, the download location will change from github to alteeve.ca proper.}}


Knowing this, the installer command will be:
Download the tool:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
./striker-installer \
wget -c https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-generate-iso
  -b 10.20.4.3/16 \
chmod 755 anvil-generate-iso
  -i 10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 \
  -n an-m03.alteeve.ca \
  -c "Alteeve's Niche\!" \
  -e "digimer@example.com:super secret password" \
  -m mail.example.com:587 \
  -u "admin:another secret password"
</syntaxhighlight>
</syntaxhighlight>


=== Running the installer ===
'''Optional'''


We're specifying <span class="code">-b</span> and <span class="code">-i</span>, so the installer won't be totally autonomous. It will pause to prompt us to unplug the network cable going to the physical interface that we want to make the [[Back-Channel Network]] and the [[Internet-Facing Network]] links. Once the mapping of the interfaces is confirmed, the installer will finish running without further input.
If you plan to install from a USB drive, download <span class="code">[https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-usb-installer anvil-usb-installer]</span> as well.


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
./striker-installer \
https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-usb-installer
  -b 10.20.4.3/16 \
chmod 755 anvil-usb-installer
  -i 10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 \
  -n an-m03.alteeve.ca \
  -c "Alteeve's Niche\!" \
  -e "digimer@example.com:super secret password" \
  -m mail.example.com:587 \
  -u "admin:another secret password"
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="text">
##############################################################################
#  ___ _      _ _                                    The Anvil! Dashboard  #
#  / __| |_ _ _(_) |_____ _ _                                -=] Installer  #
#  \__ \  _| '_| | / / -_) '_|                                              #
#  |___/\__|_| |_|_\_\___|_|                                                #
#                                              https://alteeve.ca/w/Striker #
##############################################################################


[ Note ] - No specific version requested, will install: [1.1.5]
=== Install Dependencies ===
Sanity checks complete.


Checking the operating system to ensure it is compatible.
The ISO generator requires a few program to work properly. So we'll install them now:
- We're on a RHEL (based) OS, good. Checking version.
- Looks good! You're on: [6.5]
Done.


Backing up some network related system files.
For [[EL6]] and [[EL7]]:
- The backup directory: [/root/anvil] doesn't exist, creting it.
- Backup directory successfully created.
- Backing up: [/etc/udev/rules.d/70-persistent-net.rules]
- It exists, backing it up.
- Copying: [/etc/udev/rules.d/70-persistent-net.rules] to: [/root/anvil/]
- Backing up: [/etc/sysconfig/network-scripts]
- Copying: [/etc/sysconfig/network-scripts] to: [/root/anvil/]
Done.


Making sure all network interfaces are up.
<syntaxhighlight lang="bash">
- The network interface: [eth1] is down. It must be started for the next stage.
yum install createrepo genisoimage git libcdio
- Checking if: [/etc/sysconfig/network-scripts/ifcfg-eth1] exists.
</syntaxhighlight>
- Config file exists, changing BOOTPROTO to 'none'.
- Attempting to bring up: [eth1]...
- Checking to see if it is up now.
- The interface: [eth1] is now up!
Done.


-=] Configuring network to enable access to Anvil! systems.
For [[Fedora]]:


Beginning NIC identification...
<syntaxhighlight lang="bash">
- Please unplug the interface you want to make:
dnf install createrepo genisoimage git libcdio
- [Back-Channel Network, Link 1]
</syntaxhighlight>
</syntaxhighlight>


{{note|1=If you are running the installer over the network, you will not see any output when you unplug the active cable. That is ok, just wait a second and then plug it back in.}}
=== Build the ISO ===


Unplug the network cable going to the physical interface that you want to use to connect to the [[BCN]].
{{note|1=This tool requires access to the Internet to work properly.}}


<syntaxhighlight lang="text">
To build a RHEL-based ''Anvil!'' ISO, run:
- NIC with MAC: [02:0c:9d:02:a0:9e] will become: [bcn-link1]
- (it is currently: [eth1])
- Please plug in all network cables to proceed.
</syntaxhighlight>


Now plug it back in again.
<syntaxhighlight lang="bash">
 
./anvil-generate-iso --source ./rhel-server-6.8-x86_64-dvd.iso
<syntaxhighlight lang="text">
- Please unplug the interface you want to make:
- [Internet-Facing Network, Link 1]
</syntaxhighlight>
</syntaxhighlight>


As before, unplug the cable going to the interface you want to use to connect to the [[IFN]].
To build a CentOS-based ''Anvil!'' ISO, run:


<syntaxhighlight lang="text">
<syntaxhighlight lang="bash">
- NIC with MAC: [10:bf:48:24:69:2e] will become: [ifn-link1]
./anvil-generate-iso --source ./CentOS-6.7-x86_64-bin-DVD1.iso,./CentOS-6.7-x86_64-bin-DVD2.iso
- (it is currently: [eth0])
- Please plug in all network cables to proceed.
</syntaxhighlight>
</syntaxhighlight>


Plug it back in again.
(Note that both CentOS ISOs are listed with a ',' separating them).


{{note|1=The network configuration will be updated, but the in-use configuration will '''not''' change until the Striker machine is rebooted.}}
Once the ISO generation starts, the process is the same for both types.


If you are happy with how the network will be reconfigured, press <span class="code"><enter></span>. If you want to try again, simply type <span class="code">n</span> and then press <span class="code"><enter></span>.
{{note|1=The ''Anvil!'' ISO generator will, if you allow it, download and include third party tools, like hardware management tools. This requires reading and accepting the third party terms of use. The exact list of third part applications will grow and change as we receive feedback from testers and users.}}


<syntaxhighlight lang="text">
License agreements are important, so please do read them before proceeding.
Here is what you selected:
- Interface: [02:0C:9D:02:A0:9E], currently named: [eth1],
- will be renamed to: [bcn-link1]
- Interface: [10:BF:48:24:69:2E], currently named: [eth0],
- will be renamed to: [ifn-link1]


The Back-Channel Network interface will be set to:
Once your agree or decline the third party tools, the generation will start.
- IP:      [10.20.4.3]
- Netmask: [255.255.0.0]


The Internet-Facing Network interface will be set to:
RHEL output:
- IP:      [10.255.4.3]
- Netmask: [255.255.0.0]
- Gateway: [10.255.255.254]
- DNS1:    [8.8.8.8]
- DNS2:    [8.8.4.4]


Shall I proceed? [Y/n]  
<syntaxhighlight lang="text">
- Generating md5sum of the source: [./rhel-server-6.8-x86_64-dvd.iso], please wait a moment...
- The source ISO is: [RHEL 6.8, Disk 1].
- The working directory: [/home/digimer/Temp/test/anvil/RHEL] doesn't exist.
- Can I create it (and needed subdirectories) now? [Y/n] y
</syntaxhighlight>
</syntaxhighlight>


Looks good, so we will proceed.
CentOS output:
 
This is a good time to go make a coffee, it might take a little while to finish, particularly if this is a fresh minimal install. The installer will run OS updates as well as install all needed packages.
 
{{note|1=During the install of packages, it might appear that the installer has hung. Please be patient! Buffering causes output to not be shown for a while. It is extremely unlikely that the installer has hung, and waiting is usually all that is needed.}}


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
- Thank you, I will start to work now.
- Generating md5sum of the source: [./CentOS-6.7-x86_64-bin-DVD1.iso], please wait a moment...
- The source ISO is: [CentOS 6.7, Disk 1].
- Generating md5sum of the source: [./CentOS-6.7-x86_64-bin-DVD2.iso], please wait a moment...
- The source ISO is: [CentOS 6.7, Disk 2].
- The working directory: [/home/digimer/Temp/test/anvil/CentOS] doesn't exist.
- Can I create it (and needed subdirectories) now? [Y/n]
</syntaxhighlight>


Writing the new udev rules file: [/etc/udev/rules.d/70-persistent-net.rules]
In the example here, the ISO tools will create a build directory called  <span class="code">/home/digimer/Temp/test/anvil/CentOS</span>, if you allow it to do so.  
Done.


Deleting old network configuration files:
The rest of the build will be automated.
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth1]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-wlan0]
- Deleting file: [/etc/sysconfig/network-scripts/ifcfg-eth0]
Done.


Writing new network configuration files.
RHEL output (CentOS output is nearly identical);
- IFN Link 1: [/etc/sysconfig/network-scripts/ifcfg-ifn-link1]
- BCN Link 1: [/etc/sysconfig/network-scripts/ifcfg-bcn-link1]
Done.


Configuring this system's host name.
<syntaxhighlight lang="text">
- Reading in the existing hostname file.
- Thank you, proceeding now.
- Writing out the new version.
- Creating the directory: [/home/digimer/Temp/test/anvil]
Done.
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/ks]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Packages]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/striker]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/fence]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/Fujitsu]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/ASIX]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/Avago]
- The source ISO: [./rhel-server-6.8-x86_64-dvd.iso] was found to be mounted at: [/mnt/iso2].
- Reading the contents of the ISO: [./rhel-server-6.8-x86_64-dvd.iso] now...
- Done. Read in: [6000] files across: [134] directories.
- Found: [4024] source packages.
- Please be patient!
- We're looking through the source ISO(s) to find which installation packages
  are needed. This can take a minute.
- Ready to copy files!
- Packages copied. Copying auxiliary source files now.
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/EFI]
...
<snip lots of directories>
...
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/repodata]
- Verifying 'syslinux' was created.
- The 'syslinux' directory was not in the source. Creating it now, if needed.
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/syslinux]
- Auxiliary files now in place, ready to grab Anvil! files.
- Cloning the Striker git repository.
  Please be patient, this might take a minute...
Cloning into 'striker'...
remote: Counting objects: 12302, done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 12302 (delta 72), reused 0 (delta 0), pack-reused 12183
Receiving objects: 100% (12302/12302), 104.86 MiB | 6.92 MiB/s, done.
Resolving deltas: 100% (8478/8478), done.
Checking connectivity... done.
- Striker source is ready.
- Downloading packages from the Alteeve's Niche! repository now.
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Avago/MegaCli-8.07.14-1.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/SVSystemMonitor-7.00-10.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/ServerViewConnectorService-1.30.00-02.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/alteeve-repo-0.1-3.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/bash-completion-1.3-7.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/drbd84-utils-8.9.5-1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/kmod-drbd84-8.4.7-1_1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/mtr-gtk-0.75-5.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/ntfs-3g-2015.3.14-2.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/ntfsprogs-2015.3.14-2.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/pcp-gui-3.10.3-3.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-Algorithm-Diff-1.1903-1.rhel6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/perl-Net-SSH2-0.53-4.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-Text-Diff-1.37-2.1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-XML-Simple-2.20-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-contrib-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-libs-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-plperl-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-server-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/sharutils-4.7-6.1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/shorewall-core-4.6.11.1-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/shorewall-4.6.11.1-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srv-cimprovider-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-agents-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-eecd-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-mods_src-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Avago/storcli-1.18.05-1.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/syslinux-tftpboot-4.04-3.el6.noarch.rpm]
- Done! All Anvil! packages are in place.
- Downloading non-RPM third party tools.
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/ASIX/AX88179_178A_LINUX_DRIVER_v1.14.4_SOURCE.zip]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/PrimeCollect.shar]
- Downloading: [https://raw.githubusercontent.com/digimer/fence_raritan_snmp/master/fence_raritan_snmp]
- Downloading: [https://alteeve.ca/files/vm.sh]
- New ISO generated.
- All done!


-=] Beginning configuration and installation processes now. [=-
The ISO file: [/home/digimer/Temp/test/anvil/Anvil_m2_RHEL_6.8_alpha.iso] (1.12 GiB) has been generated!
 
Checking if anything needs to be installed.
- The AN!Repo hasn't been added yet, adding it now.
- Added. Clearing yum's cache.
- output: [Loaded plugins: fastestmirror]
- output: [Cleaning repos: an-repo base extras updates]
- output: [Cleaning up Everything]
- Done!
</syntaxhighlight>
</syntaxhighlight>


The OS will update at this point. If there are a lot of updates needed, this could take a while.
Ding! Dinner is ready!


<syntaxhighlight lang="text">
You can now either burn the <span class="code">Anvil_m2_RHEL_6.8_alpha.iso</span> (or <span class="code">Anvil_m2_CentOS_6.7_alpha.iso</span>) ISO to a DVD disk.
==============================================================================
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: less.cogeco.net
* extras: less.cogeco.net
* updates: centos.bhs.mirrors.ovh.net
Setting up Update Process
Resolving Dependencies
--> Running transaction check


<snip>
=== Optional: Create a USB Boot Drive ===


Complete!
{{note|1=This script must be run as the '<span class="code">root</span>' user (or via '<span class="code">sudo</span>').}}
==============================================================================
Done.


Getting a list of currently installed packages.
If you don't have an optical drive on the machine you plan to make a ''Striker'' dashboard, then you can use <span class="code">anvil-usb-installer</span>.
- ............................................................................
- .............................................................................
- ...............................................................
Done!


Checking to see if any packages need to be installed.
We'll need a few more programs for this tool.
- Package: [acpid] needs to be installed.
- Package: [ccs] needs to be installed.
- Package: [cyrus-sasl] already installed.
- Package: [cyrus-sasl-plain] needs to be installed.
- Package: [expect] needs to be installed.
- Package: [fence-agents] needs to be installed.
- Package: [guacd] needs to be installed.
- Package: [httpd] needs to be installed.
- Package: [libcdio] needs to be installed.
- Package: [libguac-client-rdp] needs to be installed.
- Package: [libguac-client-ssh] needs to be installed.
- Package: [libguac-client-vnc] needs to be installed.
- Package: [man] needs to be installed.
- Package: [mlocate] needs to be installed.
- Package: [mod_ssl] needs to be installed.
- Package: [ntp] needs to be installed.
- Package: [openssl-devel] needs to be installed.
- Package: [perl-CGI] needs to be installed.
- Package: [perl-CPAN] needs to be installed.
- Package: [perl-Net-SSH2] needs to be installed.
- Package: [perl-Net-SSLeay] needs to be installed.
- Package: [perl-TermReadKey] needs to be installed.
- Package: [perl-Test-Simple] needs to be installed.
- Package: [perl-YAML-Tiny] needs to be installed.
- Package: [policycoreutils-python] needs to be installed.
- Package: [postfix] already installed.
- Package: [rsync] needs to be installed.
- Package: [screen] needs to be installed.
- Package: [syslinux] needs to be installed.
- Package: [tomcat6] needs to be installed.
- Package: [vim-common] needs to be installed.
- Package: [wget] needs to be installed.
- Done
</syntaxhighlight>


As with the operating system updates above, if many packages need to be installed, this could take a while.
For [[EL6]] and [[EL7]]:


<syntaxhighlight lang="text">
<syntaxhighlight lang="bash">
Installing missing packages now. Please be patient.
yum install mkdosfs parted rsync syslinux udevadm
==============================================================================
</syntaxhighlight>
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: less.cogeco.net
* extras: less.cogeco.net
* updates: centos.bhs.mirrors.ovh.net
Setting up Install Process
Resolving Dependencies
--> Running transaction check


<snip>
For [[Fedora]]:


Complete!
<syntaxhighlight lang="bash">
==============================================================================
dnf install mkdosfs parted rsync syslinux udevadm
Done.
 
Getting a list of currently installed packages.
- ............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .............................................................................
- .................
Done!
 
Verifying that everything is installed now.
- Package: [acpid] installed.
- Package: [ccs] installed.
- Package: [cyrus-sasl] installed.
- Package: [cyrus-sasl-plain] installed.
- Package: [expect] installed.
- Package: [fence-agents] installed.
- Package: [guacd] installed.
- Package: [httpd] installed.
- Package: [libcdio] installed.
- Package: [libguac-client-rdp] installed.
- Package: [libguac-client-ssh] installed.
- Package: [libguac-client-vnc] installed.
- Package: [man] installed.
- Package: [mlocate] installed.
- Package: [mod_ssl] installed.
- Package: [ntp] installed.
- Package: [openssl-devel] installed.
- Package: [perl-CGI] installed.
- Package: [perl-CPAN] installed.
- Package: [perl-Net-SSH2] installed.
- Package: [perl-Net-SSLeay] installed.
- Package: [perl-TermReadKey] installed.
- Package: [perl-Test-Simple] installed.
- Package: [perl-YAML-Tiny] installed.
- Package: [policycoreutils-python] installed.
- Package: [postfix] installed.
- Package: [rsync] installed.
- Package: [screen] installed.
- Package: [syslinux] installed.
- Package: [tomcat6] installed.
- Package: [vim-common] installed.
- Package: [wget] installed.
- All required packages are now installed.
</syntaxhighlight>
</syntaxhighlight>


If everything installed properly, the latest version of Striker will be downloaded (if needed) and installed.
{{warning|1=This project will completely wipe all data from the target storage device. Be certain you are pointing <span class="code">anvil-usb-installer</span> at the right target!}}


<syntaxhighlight lang="text">
In my case, my USB drive came up as <span class="code">/dev/sdb</span> and I am building a [[RHEL]] version, so the command I will run is:
Downloading Striker, if needed.
- Downloading version: [1.1.5] from: [https://github.com/digimer/an-cdb/archive/1.1.5.tar.gz]
==============================================================================
--2014-09-01 19:36:27--  https://github.com/digimer/an-cdb/archive/1.1.5.tar.gz
Resolving github.com... 192.30.252.131
Connecting to github.com|192.30.252.131|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/digimer/an-cdb/tar.gz/1.1.5 [following]
--2014-09-01 19:36:27--  https://codeload.github.com/digimer/an-cdb/tar.gz/1.1.5
Resolving codeload.github.com... 192.30.252.147
Connecting to codeload.github.com|192.30.252.147|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: `1.1.5.tar.gz'


    [      <=>                                                                                                                                                                                                                             ] 1,437,924  1.24M/s  in 1.1s   
<syntaxhighlight lang="bash">
 
-=] Anvil! USB Installer
2014-09-01 19:36:29 (1.24 MB/s) - `1.1.5.tar.gz' saved [1437924]
- USB device path: ..... [/dev/sdb]
 
- Target make and model: [TOSHIBA Y2OBY31XF]
==============================================================================
- The capacity is: ..... [465.76 GiB (500.11 GB)]
- Download complete.
- The source ISO is: ... [./anvil/Anvil_m2_RHEL_6.8_alpha.iso]
- Extracting: [1.1.5.tar.gz]
=======================================================================
- Output: [an-cdb-1.1.5/]
[ WARNING ] - This device will be completely erased! All existing data
- Output: [an-cdb-1.1.5/CHANGELOG]
[ WARNING ]   will be lost!
- Output: [an-cdb-1.1.5/README.md]
=======================================================================
- Output: [an-cdb-1.1.5/an-cluster_setup.pl]
Proceed? [y/N]  
- Output: [an-cdb-1.1.5/an.conf]
</syntaxhighlight>
- Output: [an-cdb-1.1.5/anvil_setup]
- Output: [an-cdb-1.1.5/cgi-bin/]
- Output: [an-cdb-1.1.5/cgi-bin/an-cdb]
- Output: [an-cdb-1.1.5/cgi-bin/an-cdb.lib]
- Output: [an-cdb-1.1.5/cgi-bin/an-cluster.lib]
- Output: [an-cdb-1.1.5/cgi-bin/an-mc]
- Output: [an-cdb-1.1.5/cgi-bin/an-mc.lib]
- Output: [an-cdb-1.1.5/cgi-bin/common.lib]
- Output: [an-cdb-1.1.5/cgi-bin/common.xml]
- Output: [an-cdb-1.1.5/cgi-bin/strings.xml]
- Output: [an-cdb-1.1.5/guacamole/]
- Output: [an-cdb-1.1.5/guacamole/README]
- Output: [an-cdb-1.1.5/guacamole/guacamole-0.9.2.war]
- Output: [an-cdb-1.1.5/guacamole/guacamole-auth-noauth-0.9.2.jar]
- Output: [an-cdb-1.1.5/guacamole/guacamole.properties]
- Output: [an-cdb-1.1.5/guacamole/noauth-config.xml]
- Output: [an-cdb-1.1.5/html/]
- Output: [an-cdb-1.1.5/html/an-cdb.css]
- Output: [an-cdb-1.1.5/html/an-cdb.js]
- Output: [an-cdb-1.1.5/html/favicon.ico]
- Output: [an-cdb-1.1.5/html/index.html]
- Output: [an-cdb-1.1.5/html/jquery-latest.js]
- Output: [an-cdb-1.1.5/html/skins/]
- Output: [an-cdb-1.1.5/html/skins/alteeve/]
- Output: [an-cdb-1.1.5/html/skins/alteeve/common.css]
- Output: [an-cdb-1.1.5/html/skins/alteeve/common.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/common.js]
- Output: [an-cdb-1.1.5/html/skins/alteeve/config.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/anvil-url_16x16.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/back.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/gather_info.gif]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/hard-drive-with-led_128x128.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/hard-drive_128x128.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/icon_clear-fields_16x16.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/icon_server-desktop_n01.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/icon_server-desktop_n02.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/icon_server-desktop_offline.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/icon_server-desktop_oops.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/logo_striker_01.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/raid_battery_128x128.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/raid_controller_128x128.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/raid_logical-disk_128x128.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/refresh.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/images/t.png]
- Output: [an-cdb-1.1.5/html/skins/alteeve/jquery-latest.js]
- Output: [an-cdb-1.1.5/html/skins/alteeve/lsi-storage.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/main-page.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/media-library.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/select-anvil.html]
- Output: [an-cdb-1.1.5/html/skins/alteeve/server.html]
- Output: [an-cdb-1.1.5/striker-installer]
- Output: [an-cdb-1.1.5/tools/]
- Output: [an-cdb-1.1.5/tools/99-an-usb.rules]
- Output: [an-cdb-1.1.5/tools/an-cluster_setup.pl]
- Output: [an-cdb-1.1.5/tools/an-cm]
- Output: [an-cdb-1.1.5/tools/an-cm.lib]
- Output: [an-cdb-1.1.5/tools/an-usb-insert]
- Output: [an-cdb-1.1.5/tools/an-usb-remove]
- Output: [an-cdb-1.1.5/tools/an-usb.conf]
- Output: [an-cdb-1.1.5/tools/an-usb.lib]
- Output: [an-cdb-1.1.5/tools/archive_an-cm.log.sh]
- Output: [an-cdb-1.1.5/tools/archive_megasas.log.sh]
- Output: [an-cdb-1.1.5/tools/backup_node_config.sh]
- Output: [an-cdb-1.1.5/tools/bond_watch]
- Output: [an-cdb-1.1.5/tools/call_gather-system-info]
- Output: [an-cdb-1.1.5/tools/call_gather-system-info.c]
- Output: [an-cdb-1.1.5/tools/check_dvd]
- Output: [an-cdb-1.1.5/tools/check_dvd.c]
- Output: [an-cdb-1.1.5/tools/do_dd]
- Output: [an-cdb-1.1.5/tools/do_dd.c]
- Output: [an-cdb-1.1.5/tools/gather-system-info]
- Output: [an-cdb-1.1.5/tools/generate_tz_list]
- Output: [an-cdb-1.1.5/tools/oui_parser]
- Output: [an-cdb-1.1.5/tools/restart_guacd]
- Output: [an-cdb-1.1.5/tools/restart_guacd.c]
- Output: [an-cdb-1.1.5/tools/restart_tomcat6]
- Output: [an-cdb-1.1.5/tools/restart_tomcat6.c]
- Output: [an-cdb-1.1.5/tools/safe_anvil_start]
- Output: [an-cdb-1.1.5/version]
- Will use the source directory: [./an-cdb-1.1.5]
Done.
 
Configuring Apache.
- Backing up original files.
- Copying: [/etc/httpd] to: [/root/anvil/]
- Reading in the existing system user file.
- Writing out the new version.
- Creating the apache home directories.
- Creating: [/var/www/home].
- Creating: [/var/www/home/archive].
- Creating: [/var/www/home/cache].
- Creating: [/var/www/home/media].
- Creating: [/var/www/home/status].
- Setting ownership to: [apache:apache].
- Setting mode to: [0775].
- Setting up Striker's authentication via Apache's htpasswd...
- Generating: [admin]'s: [/var/www/home/htpasswd] password file.
Adding password for user admin
- Reading in the existing config file and adjusting as needed.
- Writing out the new version.
Done.
 
Configuring Tomcat.
- Backing up: [/etc/tomcat6/server.xml].
- Copying: [/etc/tomcat6/server.xml] to: [/root/anvil/]
- Reading in the existing tomcat server configuration server.
- Writing out the new version.
Done.


Configuring guacamole
'''Verify this is the drive you want to overwrite!'''
- Creating the Guacamole configuration directory.
- Creating the Guacamole Tomcat directory.
- Creating the Guacamole library directory.
- Creating the Guacamole classpath directory.
- Copying the 'auth-noauth' module into place.
- Copying: [./an-cdb-1.1.5/guacamole/guacamole-auth-noauth-0.9.2.jar]
      to: [/var/lib/guacamole/classpath/]
- Copying the 'auth-noauth' module into place.
- Copying: [./an-cdb-1.1.5/guacamole/noauth-config.xml]
      to: [/etc/guacamole/]
- Copying: [./an-cdb-1.1.5/guacamole/guacamole-0.9.2.war]
      to: [/var/lib/guacamole]
- Creating guacamole web archive symlink.
- Symlink created successfully.
- Copying: [./an-cdb-1.1.5/guacamole/guacamole.properties]
      to: [/etc/guacamole/]
- Creating guacamole properties symlink.
- Symlink created successfully.
Done.
</syntaxhighlight>


The next step creates SSH keys for the <span class="code">apache</span> user. If you are installing Striker on a light-weight computer/appliance, the time needed to collect entropy could be lengthy.
If so, press '<span class="code">y</span>' and hit '<span class="code"><enter></span>'.


<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Configuring SSH daemon to allow faster logins.
- Thank you, Proceeding
- Backing up: [/etc/ssh/sshd_config].
- Unmounting: [/dev/sdb1]
- Copying: [/etc/ssh/sshd_config] to: [/root/anvil/]
- Success!
- Reading in the existing ssh daemon configuration file.
- Wiping out existing partition scheme and MBR from: [/dev/sdb]
- Writing out the new version.
- Creating a new partition.
- Generating: [apache]'s RSA keys.
- Verifying that the new partition was created successfully.
[ Note ] - Please be patient! It might take time to collect entropy.
- Formatting the new partition: [/dev/sdb1]
- Output: [Generating public/private rsa key pair.]
- Writing out the master boot record to: [/dev/sdb]
- Output: [Created directory '/var/www/home/.ssh'.]
- Installing syslinux on: [/dev/sdb1]
- Output: [Your identification has been saved in /var/www/home/.ssh/id_rsa.]
- Creating the temporary USB mount point: [/tmp/anvil_usb]
- Output: [Your public key has been saved in /var/www/home/.ssh/id_rsa.pub.]
- Creating the temporary ISO mount point: [/tmp/anvil_iso]
- Output: [The key fingerprint is:]
- Mounting the USB partition: [/dev/sdb1] on: [/tmp/anvil_usb]
- Output: [17:f2:f3:bf:da:c9:a7:60:75:7b:2f:79:27:65:30:0e apache@an-m03.alteeve.ca]
- Mounting the source ISO: [./anvil/Anvil_m2_RHEL_6.8_alpha.iso]
- Output: [The key's randomart image is:]
  on: [/tmp/anvil_iso]
- Output: [+--[ RSA 8191]----+]
- Verifying they mounted.
- Output: [|                |]
- Verifying that everything we're about to copy is under 4 GiB for 'vfat'
- Output: [|                |]
  compatibility.
- Output: [|        . .     |]
- Copying the source ISO contents to the USB device.
- Output: [|        o .E o  |]
- Protecting the USB drive in case 'striker-usb-insert' is set to force-initialize.
- Output: [|        S +  o.o.|]
- Copying the source ISO to the USB drive. This might take a bit, please be
- Output: [|        . o ...+|]
  patient!
- Output: [|            +  =.|]
- Copying the 'syslinux' files into place.
- Output: [|          . =+.*|]
- Cleaning up, please wait while the USB drive is finalized!
- Output: [|            ..BBo|]
  If the OS cached data being written to the USB, this might take a bit.
- Output: [+-----------------+]
- Unmounting: [/tmp/anvil_iso]
Done.
- Removing the temporary mount point: [/tmp/anvil_iso]
 
- Unmounting: [/tmp/anvil_usb]
Configuring the firewall to allow normal and secure web access.
- Removing the temporary mount point: [/tmp/anvil_usb]
- Backing up: [/etc/sysconfig/iptables].
Done!
- Copying: [/etc/sysconfig/iptables] to: [/root/anvil/]
- Reading the current firewall configuration.
- Opening access for standard web access.
- Opening access for secure web access.
- Saving the new iptables configuration.
Done.


Copying Striker program files into place.
Plug the USB drive into the machine you wish to make a Striker dashboard. Press
- Backing up: [/var/www].
the key for you system to manually select a boot device (usually <F10> or
- Copying: [/var/www] to: [/root/anvil/]
<F12>) and choose this USB drive. Select the appropriate Striker number from
- Copying HTML files and skins.
the menu.
- Copying executable files and languages.
- Copying tools.
- Creating the Striker configuration directory.
- Copying base Striker configuration file.
- Copying: [./an-cdb-1.1.5/an.conf]
      to: [/etc/an]
- Updating mail server values in Striker's configuration file.
- Writing out the new version.
Done.


- Creating empty Striker log file.
NOTE: The Install performed by this USB drive is fully automated, once started.
Done.
      Any data on the target machine will be erased without further warning!
 
     
Setting ownership and permissions/modes on Striker files.
Have fun!
- On: [/var/www],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
- On: [/etc/guacamole/noauth-config.xml],
  Setting ownership and mode to: [root:apache] and: [0664], respectively.
- On: [/etc/hosts],
  Setting ownership and mode to: [root:apache] and: [g+w], respectively.
- On: [/etc/ssh/ssh_config],
  Setting ownership and mode to: [root:apache] and: [g+w], respectively.
- On: [/etc/an/an.conf],
  Setting ownership and mode to: [apache:apache] and: [0660], respectively.
- On: [/etc/an],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
- On: [/var/log/an-cdb.log],
  Setting ownership and mode to: [apache:apache] and: [g+w], respectively.
- On: [/var/www/tools/call_gather-system-info],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/check_dvd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/do_dd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/restart_guacd],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
- On: [/var/www/tools/restart_tomcat6],
  Setting ownership and mode to: [root:root] and: [6755], respectively.
Done.
</syntaxhighlight>
</syntaxhighlight>


All of the services that are set to be stopped will be told to stop. If those services are not installed, they will print a harmless error.
All done!


Similarly, all services set to be enabled will be restarted. If they were not running yet, then you will see a harmless <span class="code">[FAILED]</span> message on the stop portion of the restart.
= Building The First Striker Dashboard ==


<syntaxhighlight lang="text">
The first dashboard will be booted off of either the DVD or USB drive. How exactly you do this will depend on your hardware, so please consult your machine's service manual for instructions on how to choose a temporary boot device.
Configuring daemons to start/stop on boot and start/stop daemons.
- Disabling: [ip6tables] on boot and stopping it.
- Output: [ip6tables: Setting chains to policy ACCEPT: filt[  OK  ]]
- Output: [ip6tables: Flushing firewall rules:            [  OK  ]]
- Output: [ip6tables: Unloading modules:                  [  OK  ]]
- Enabling: [iptables] on boot and (re)starting it.
- Output: [iptables: Setting chains to policy ACCEPT: filte[  OK  ]]
- Output: [iptables: Flushing firewall rules:              [  OK  ]]
- Output: [iptables: Unloading modules:                    [  OK  ]]
- Output: [iptables: Applying firewall rules:              [  OK  ]]
- Enabling: [httpd] on boot and (re)starting it.
- Output: [Stopping httpd:                                [FAILED]]
httpd: apr_sockaddr_info_get() failed for an-m03.alteeve.ca
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
- Output: [Starting httpd:                                [  OK  ]]
- Enabling: [haldaemon] on boot and (re)starting it.
- Output: [Stopping HAL daemon:                            [FAILED]]
- Output: [Starting HAL daemon:                            [FAILED]]
- Enabling: [acpid] on boot and (re)starting it.
- Output: [Stopping acpi daemon:                          [FAILED]]
- Output: [Starting acpi daemon:                          [  OK  ]]
- Enabling: [tomcat6] on boot and (re)starting it.
- Output: [Stopping tomcat6:                              [  OK  ]]
- Output: [Starting tomcat6:                              [  OK  ]]
- Enabling: [guacd] on boot and (re)starting it.
- Output: [Stopping guacd:                                [FAILED]]
guacd[11178]: INFO:  Guacamole proxy daemon (guacd) version 0.9.2
guacd[11178]: INFO:  Successfully bound socket to host ::1, port 4822
guacd[11178]: INFO:  Exiting and passing control to PID 11179
guacd[11179]: INFO:  Exiting and passing control to PID 11180
- Output: [Starting guacd:                                [  OK  ]]
- Enabling: [ntpd] on boot and (re)starting it.
- Output: [Shutting down ntpd:                            [FAILED]]
- Output: [Starting ntpd:                                  [  OK  ]]
Done.


Making sure that selinux is permissive.
== Hardware Requirements ==
- Backing up: [/etc/selinux/config].
- Copying: [/etc/selinux/config] to: [/root/anvil/]
- Reading in the existing selinux config file.
- Setting selinux to 'permissive'.
- Writing out the new version.
Done.


Setting root user's password.
The Striker dashboard has fairly modest system requirements. The only hard requirement is that the machine can run RHEL or CentOS 6 and that it has two network interfaces (wireless is NOT supported).  
- Output: [Changing password for user root.]
- Output: [passwd: all authentication tokens updated successfully.]
Done!


##############################################################################
The recommended minimum configuration is:
# NOTE: Your 'root' user password is now the same as the Striker user's      #
#      password you just specified. If you want a different password,      #
#      change it now with 'passwd'!                                        #
##############################################################################


* Intel Core i5 v5 (or AMD equivalent) or newer CPU
* 8 GiB of RAM
* 128 GiB SSD
* 4x 1 Gbps NICs


[ Warning ] - You may need to reboot the network if the network interfances
The above specs will provide plenty of performance for hosting the ScanCore database as well as provide network redundancy on both the [[Back-Channel Network]] and the [[Intranet-Facing Network]].  
[ Warning ] - were renamed. Simply restarting the network will likely not
[ Warning ] - work.


Installation of Striker is complete!
</syntaxhighlight>


As you see in the final '''note''', the <span class="code">root</span> user's password was changed. If you want the dashboard's <span class="code">root</span> password to differ from the main striker password, be sure to call <span class="code">passwd</span> to change it.
In this install, a new kernel was installed during the OS update process and the network interfaces were renamed. So we need to restart the dashboard.


<span class="code"></span>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
reboot
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
Broadcast message from root@an-m03.alteeve.ca
(/dev/pts/0) at 19:55 ...
The system is going down for reboot NOW!
[root@localhost ~]# Connection to 10.255.1.10 closed by remote host.
Connection to 10.255.1.10 closed.
</syntaxhighlight>
</syntaxhighlight>


When the dashboard server boots back up, you will be able to connect to it using your favourite web browser.


= Configuring a New Striker Dashboard =


{{note|1=I prefer to use host names instead of IP addresses. As such, I have added the hostname <span class="code">an-m03</span> to my <span class="code">/etc/hosts</span> file, which I will use for the rest of this tutorial. You are free to use the raw IP address if you wish.}}
=== Requirements ===


{{note|1=There is '''no default password'''. If you forget your password, you will need to re-run the install script with the <span class="code">-u "user:password"</span> switch to reset it.}}
* A machine with two wired network interfaces, one to the [[BCN]] and one to the [[IFN]].
* [[RHEL]], [[CentOS]] or similar version 6.x (6.5 or higher recommended).
** Minimal install is sufficient, provided you install <span class="code">perl</span>.
** The installer will install everything else it needs.


When you first connect to the new dashboard, you will be prompted for a user name and password. Use the values you set with the <span class="code">-u</span> switch during the install. Once logged in, you will be told that no ''Anvil!'' systems have been defined.
<syntaxhighlight lang="bash">
yum install perl
</syntaxhighlight>
<syntaxhighlight lang="text">
<yum output>
</syntaxhighlight>


{|class="wikitable"
|[[Image:striker_first-connect.png|center|400px|thumb|Credential prompt.]]
|[[Image:striker_new-dashboard.png|center|400px|thumb|New Dashboard!]]
|}


The first thing to do is the click on <span class="code">Manage</span> and make sure the global variables are set the way you like. These control how mail is delivered and will be used for all ''Anvil!'' systems you define, unless you provide an override for a given ''Anvil!''.
{{warning|1=Below here is very old.}}


{|class="wikitable"
{|class="wikitable"
|[[Image:striker_initial-global-variable-form.png|center|400px|thumb|Configure global values.]]
!Parameter
|[[Image:striker_updating-initial-global-variables.png|center|400px|thumb|Updating the global <span class="code"></span>Alert Recipient(s).]]
!Switch
|[[Image:striker_saving-changes-to-global-variables.png|center|400px|thumb|Saving changes to the global variables.]]
!Value
|}
!Description
 
|-
Now that the global variables are set, let's add our first ''Anvil!'' system!
|[[Back-Channel Network]]
 
|class="code"|-b
{|class="wikitable"
|class="code"|10.20.4.3/16
|[[Image:striker_click-on-new-anvil-button.png|center|400px|thumb|Click on the '<span class="code">New</span>' button to add our first ''Anvil!''.]]
|Sets the [[BCN]] IP address and subnet mask.
|[[Image:striker_configure-first-anvil.png|center|400px|thumb|Add the information for the first ''Anvil!''.]]
|-
|[[Image:striker_saving-first-anvil.png|center|400px|thumb|Global variables are fine for this ''Anvil!'', so no overrides are set. Click on '<span class="code">Save</span>'.]]
|[[Internet-Facing Network]]
|class="code"|-i
|class="code"|10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4
|Sets the [[IFN]] IP address, subnet mask, default gateway and DNS servers.
|-
|Host name
|class="code"|-n
|class="code"|an-m03.alteeve.ca
|Sets the host name of the Striker dashboard machine.
|-
|Dashboard Owner
|class="code"|-c
|class="code"|Alteeve's Niche!
|This sets the name used on the password prompt when connecting to the dashboard. It reflects the owner/manager of the dashboard and is usually a company or organization name.
|-
|Email server user and password
|class="code"|-e
|class="code"|digimer@example.com:super secret password
|This is the email account user name and password that will be used later when sending alert emails from nodes.
|-
|Mail server details
|class="code"|-m
|class="code"|mail.example.com:587
|This is the mail server address and port that will be used later when sending alert emails from nodes. It is against this server that the user name and password defined in <span class="code">-e</span> will be used.
|-
|-
|[[Image:striker_first-anvil-saved.png|center|400px|thumb|Your first ''Anvil!'' has been added!]]
|Striker user and password
|[[Image:striker_editing-first-anvil.png|center|400px|thumb|You can now edit or delete this ''Anvil!'' if you wish.]]
|class="code"|-u
|[[Image:striker_first-anvil-added.png|center|400px|thumb|Back on the main configuration page, we see our ''Anvil!'' now.]]
|class="code"|admin:another secret password
|This sets the user name and password that users will use when connecting to the dashboard. {{note|1=The password defined here will be used to set the <span class="code">root</span> user's password on the Striker dashboard itself. If you want these passwords to be different, please be sure to change it when the installer finished running.}}
|}
|}


{{note|1=To delete an ''Anvil!'' from your dashboard, open it as if you were going to edit it and click on the small red "x" icon, which will clear the form. Save the now-empty form and that ''Anvil!'' will be removed.}}
{{note|1=If you have already configured the network, please skip the <span class="code">-b</span> and <span class="code">-i</span> switches. If you have already configured the host name, please skip the <span class="code">-n</span> switch.}}


Now when you go back to the main page, you will see the newly added ''Anvil!'' in the list where the "<span class="code">New</span>" massage was. Click on the name of your newly added ''Anvil!'' and, assuming everything was entered correctly, you will be able to manage it right away!
{{note|1=This is a standard <span class="code">[[bash]]</span> call, so please be sure to quote anything with spaces and to escape special characters like <span class="code">!</span>.}}


{|class="wikitable"
Knowing this, the installer command will be:
|[[Image:striker_connecting-to-the-new-anvil.png|center|400px|thumb|Once selected, we're in. Pretty easy, eh?]]
|}


If you only have one ''Anvil!'' defined, future connections to the dashboard will immediately select it. If you want to get back to the configuration menu, simply click on the title logo.
= Powering on an Anvil! =
This section will show how to power up an ''Anvil!'' from a completely powered off state.
In order to power on an ''Anvil!'', two things must be true;
# Your Striker dashboard must be on the ''Anvil!'''s [[Back-Channel Network]].
# The dashboard must have logged into the ''Anvil!'' at least once before so that the fence methods and credentials are in cache.
<span class="code"></span>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
./striker-installer \
  -b 10.20.4.3/16 \
  -i 10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 \
  -n an-m03.alteeve.ca \
  -c "Alteeve's Niche\!" \
  -e "digimer@example.com:super secret password" \
  -m mail.example.com:587 \
  -u "admin:another secret password"
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang="text">
</syntaxhighlight>
= Monitor =
The monitor application is based around a "[[Striker API]]". The monitor itself acts as a daemon that calls scanner agents it finds inn the <span class="code">cgi-bin/scan.d</span> directory.


{{footer}}
{{footer}}

Revision as of 22:56, 21 May 2016

 AN!Wiki :: Striker

Warning: This is an in-progress document. Do not expect anything here to be accurate or correct. This warning will be removed when the guide is completed. You can track the progress on Striker's Github page.

Striker is the Anvil! web-based dashboard.

It's goal is to reduce the potential for human errors causing availability interruptions by simplifying the interface as much as possible. With it, you can build, maintain and replace other dashboards and Anvil! nodes, as well as build Anvil!' systems from scratch.

Striker dashboards also act as a ScanCore database. Two or more Striker dashboards will work together to make the ScanCore data resilient by handling replication of the data and n-way resync automatically to update new or rebooted dashboards.

Building an Anvil

With version 2, perhaps the biggest new feature is the nearly completely automated building of new Anvil! systems.

Note: This guide covers a lot of background reasoning and high-level discussion of the Anvil! platform in general. If you don't care about this and want concise instructions, see the link below.

Overview

This starts by download the Striker ISO generator, running it against either a RHEL or CentOS 6 ISO and it spits out an Anvil! build ISO. You can then burn this to a DVD or write it to a USB drive (using another small tool).

You boot the first Striker dashboard off of the ISO use it build up the dashboard machine.

Once done, you can get rid of the ISO if you'd like. All further installs will happen over the network!

The Striker UI acts as an "Install Target". When you enable it, you can then boot other dashboards or nodes, choose to boot of the network and they will boot and install from Striker, just the same as if you had booted up from the ISO, just a lot more conveniently.

Staged Installs

Building dashboards and nodes is a 2-stage process.

The first stage is like installing firmware on a router; It gets the base OS install and initial configuration, but it is a generic system at that point.

The second stage is where you configure the system for your environment.

The "Install Target" function handles the stage-1 install for both dashboards and nodes. The stage-2 is handled differently for dashboards and nodes, which we'll cover in a bit.

Why Do I Have To Build My Own ISO?

The Anvil! platform itself works like an appliance. That is to say, builds and manages the operating systems under the Striker dashboards and Anvil! nodes.

We had to choose early on if we were going to create our own operating system or not, and we chose not to. The additional burden of maintaining an OS would distract us from our core goal of building the most resilient, intelligent availability platform.

So how to resolve this?

For completely understandable reasons, we can't simply repackage and distribute a RHEL or CentOS based Anvil! install ISO. Red Hat and CentOS work very hard to deliver their ISOs and they want to ensure that, if their name is on something, they've tested it to be up to their standards.

So given that we don't want to create a distro, and we respect Red Hat and CentOS's trademarks, the best option available was for us to create an ISO generation tool, and that's what we've done.

You run our tool against the stock ISO and it will generate an ready-to-go Anvil! ISO.

Build the Anvil! ISO

Note: We've tested this tool on Fedora, RHEL and CentOS operating systems. It may not work on other distributions. If you have trouble, please contact us and we'll work to extend support to new distros.

The build process is pretty simple;

  1. Download the RHEL or CentOS 6 DVD ISO.
    1. CentOS x86_64 v6
    2. RHEL x86_64 v6 (try or buy)
  2. Download anvil-generate-iso.
  3. Install dependencies.
  4. Build the Anvil! ISO.
  5. (Optional) Write the ISO to a USB drive

Download the RHEL or CentOS ISO

The first question to ask is;

"Do I want to build on RHEL or CentOS?".

The answer is up to you, but it comes down to your support comfort level. If you are a proper business, then going with RHEL makes the most sense. You will need to purchase a RHEL entitlement and [Resilient Storage](https://www.redhat.com/apps/store/add-ons/) Add-On (which includes the High-Availability Add-On).

If you're looking for a "free-as-in-beer" solution, or if you want to do a proof of concept/testing, CentOS is a perfectly fine option.

At the time of writing, CentOS 6.7 is the latest and supported version. RHEL is up to 6.8 and that is the supported version. Please be sure to get the 64-bit version as 32-bit is not supported and very likely won't work.

For CentOS, download both DVD 1 and 2. For RHEL, there is only DVD 1.

Save the ISO in any directory you want, just make a note of where it is.

Download anvil-generate-iso

Note: When version 2 is officially released, the download location will change from github to alteeve.ca proper.

Download the tool:

wget -c https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-generate-iso
chmod 755 anvil-generate-iso

Optional

If you plan to install from a USB drive, download anvil-usb-installer as well.

https://raw.githubusercontent.com/ClusterLabs/striker/master/tools/anvil-usb-installer
chmod 755 anvil-usb-installer

Install Dependencies

The ISO generator requires a few program to work properly. So we'll install them now:

For EL6 and EL7:

yum install createrepo genisoimage git libcdio

For Fedora:

dnf install createrepo genisoimage git libcdio

Build the ISO

Note: This tool requires access to the Internet to work properly.

To build a RHEL-based Anvil! ISO, run:

./anvil-generate-iso --source ./rhel-server-6.8-x86_64-dvd.iso

To build a CentOS-based Anvil! ISO, run:

./anvil-generate-iso --source ./CentOS-6.7-x86_64-bin-DVD1.iso,./CentOS-6.7-x86_64-bin-DVD2.iso

(Note that both CentOS ISOs are listed with a ',' separating them).

Once the ISO generation starts, the process is the same for both types.

Note: The Anvil! ISO generator will, if you allow it, download and include third party tools, like hardware management tools. This requires reading and accepting the third party terms of use. The exact list of third part applications will grow and change as we receive feedback from testers and users.

License agreements are important, so please do read them before proceeding.

Once your agree or decline the third party tools, the generation will start.

RHEL output:

- Generating md5sum of the source: [./rhel-server-6.8-x86_64-dvd.iso], please wait a moment...
- The source ISO is: [RHEL 6.8, Disk 1].
- The working directory: [/home/digimer/Temp/test/anvil/RHEL] doesn't exist.
- Can I create it (and needed subdirectories) now? [Y/n] y

CentOS output:

- Generating md5sum of the source: [./CentOS-6.7-x86_64-bin-DVD1.iso], please wait a moment...
- The source ISO is: [CentOS 6.7, Disk 1].
- Generating md5sum of the source: [./CentOS-6.7-x86_64-bin-DVD2.iso], please wait a moment...
- The source ISO is: [CentOS 6.7, Disk 2].
- The working directory: [/home/digimer/Temp/test/anvil/CentOS] doesn't exist.
- Can I create it (and needed subdirectories) now? [Y/n]

In the example here, the ISO tools will create a build directory called /home/digimer/Temp/test/anvil/CentOS, if you allow it to do so.

The rest of the build will be automated.

RHEL output (CentOS output is nearly identical);

- Thank you, proceeding now.
- Creating the directory: [/home/digimer/Temp/test/anvil]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/ks]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Packages]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/striker]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/fence]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/Fujitsu]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/ASIX]
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/Tools/Avago]
- The source ISO: [./rhel-server-6.8-x86_64-dvd.iso] was found to be mounted at: [/mnt/iso2].
- Reading the contents of the ISO: [./rhel-server-6.8-x86_64-dvd.iso] now...
- Done. Read in: [6000] files across: [134] directories.
- Found: [4024] source packages.
- Please be patient! 
- We're looking through the source ISO(s) to find which installation packages 
  are needed. This can take a minute.
- Ready to copy files!
- Packages copied. Copying auxiliary source files now.
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/EFI]
...
<snip lots of directories>
...
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/repodata]
- Verifying 'syslinux' was created.
- The 'syslinux' directory was not in the source. Creating it now, if needed.
- Creating the directory: [/home/digimer/Temp/test/anvil/RHEL/source/syslinux]
- Auxiliary files now in place, ready to grab Anvil! files.
- Cloning the Striker git repository.
  Please be patient, this might take a minute...
Cloning into 'striker'...
remote: Counting objects: 12302, done.
remote: Compressing objects: 100% (114/114), done.
remote: Total 12302 (delta 72), reused 0 (delta 0), pack-reused 12183
Receiving objects: 100% (12302/12302), 104.86 MiB | 6.92 MiB/s, done.
Resolving deltas: 100% (8478/8478), done.
Checking connectivity... done.
- Striker source is ready.
- Downloading packages from the Alteeve's Niche! repository now.
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Avago/MegaCli-8.07.14-1.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/SVSystemMonitor-7.00-10.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/ServerViewConnectorService-1.30.00-02.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/alteeve-repo-0.1-3.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/bash-completion-1.3-7.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/drbd84-utils-8.9.5-1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/kmod-drbd84-8.4.7-1_1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/mtr-gtk-0.75-5.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/ntfs-3g-2015.3.14-2.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/ntfsprogs-2015.3.14-2.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/pcp-gui-3.10.3-3.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-Algorithm-Diff-1.1903-1.rhel6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/perl-Net-SSH2-0.53-4.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-Text-Diff-1.37-2.1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/perl-XML-Simple-2.20-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-contrib-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-libs-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-plperl-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-server-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/postgresql95-9.5.0-1PGDG.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/x86_64/sharutils-4.7-6.1.el6.anvil.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/shorewall-core-4.6.11.1-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/shorewall-4.6.11.1-1.el6.anvil.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srv-cimprovider-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-agents-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-eecd-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/srvmagt-mods_src-7.00-10.x86_64.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Avago/storcli-1.18.05-1.noarch.rpm]
- Downloading: [https://alteeve.ca/an-repo/el6/RPMS/noarch/syslinux-tftpboot-4.04-3.el6.noarch.rpm]
- Done! All Anvil! packages are in place.
- Downloading non-RPM third party tools.
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/ASIX/AX88179_178A_LINUX_DRIVER_v1.14.4_SOURCE.zip]
- Downloading: [https://alteeve.ca/an-repo/el6/Third_Party/Fujitsu/PrimeCollect.shar]
- Downloading: [https://raw.githubusercontent.com/digimer/fence_raritan_snmp/master/fence_raritan_snmp]
- Downloading: [https://alteeve.ca/files/vm.sh]
- New ISO generated.
- All done!

The ISO file: [/home/digimer/Temp/test/anvil/Anvil_m2_RHEL_6.8_alpha.iso] (1.12 GiB) has been generated!

Ding! Dinner is ready!

You can now either burn the Anvil_m2_RHEL_6.8_alpha.iso (or Anvil_m2_CentOS_6.7_alpha.iso) ISO to a DVD disk.

Optional: Create a USB Boot Drive

Note: This script must be run as the 'root' user (or via 'sudo').

If you don't have an optical drive on the machine you plan to make a Striker dashboard, then you can use anvil-usb-installer.

We'll need a few more programs for this tool.

For EL6 and EL7:

yum install mkdosfs parted rsync syslinux udevadm

For Fedora:

dnf install mkdosfs parted rsync syslinux udevadm
Warning: This project will completely wipe all data from the target storage device. Be certain you are pointing anvil-usb-installer at the right target!

In my case, my USB drive came up as /dev/sdb and I am building a RHEL version, so the command I will run is:

-=] Anvil! USB Installer
- USB device path: ..... [/dev/sdb]
- Target make and model: [TOSHIBA Y2OBY31XF]
- The capacity is: ..... [465.76 GiB (500.11 GB)]
- The source ISO is: ... [./anvil/Anvil_m2_RHEL_6.8_alpha.iso]
=======================================================================
[ WARNING ] - This device will be completely erased! All existing data
[ WARNING ]   will be lost!
=======================================================================
Proceed? [y/N]

Verify this is the drive you want to overwrite!

If so, press 'y' and hit '<enter>'.

- Thank you, Proceeding
- Unmounting: [/dev/sdb1]
- Success!
- Wiping out existing partition scheme and MBR from: [/dev/sdb]
- Creating a new partition.
- Verifying that the new partition was created successfully.
- Formatting the new partition: [/dev/sdb1]
- Writing out the master boot record to: [/dev/sdb]
- Installing syslinux on: [/dev/sdb1]
- Creating the temporary USB mount point: [/tmp/anvil_usb]
- Creating the temporary ISO mount point: [/tmp/anvil_iso]
- Mounting the USB partition: [/dev/sdb1] on: [/tmp/anvil_usb]
- Mounting the source ISO: [./anvil/Anvil_m2_RHEL_6.8_alpha.iso]
  on: [/tmp/anvil_iso]
- Verifying they mounted.
- Verifying that everything we're about to copy is under 4 GiB for 'vfat'
  compatibility.
- Copying the source ISO contents to the USB device.
- Protecting the USB drive in case 'striker-usb-insert' is set to force-initialize.
- Copying the source ISO to the USB drive. This might take a bit, please be
  patient!
- Copying the 'syslinux' files into place.
- Cleaning up, please wait while the USB drive is finalized!
  If the OS cached data being written to the USB, this might take a bit.
- Unmounting: [/tmp/anvil_iso]
- Removing the temporary mount point: [/tmp/anvil_iso]
- Unmounting: [/tmp/anvil_usb]
- Removing the temporary mount point: [/tmp/anvil_usb]
Done!

Plug the USB drive into the machine you wish to make a Striker dashboard. Press
the key for you system to manually select a boot device (usually <F10> or 
<F12>) and choose this USB drive. Select the appropriate Striker number from 
the menu.

NOTE: The Install performed by this USB drive is fully automated, once started.
      Any data on the target machine will be erased without further warning!
      
Have fun!

All done!

Building The First Striker Dashboard =

The first dashboard will be booted off of either the DVD or USB drive. How exactly you do this will depend on your hardware, so please consult your machine's service manual for instructions on how to choose a temporary boot device.

Hardware Requirements

The Striker dashboard has fairly modest system requirements. The only hard requirement is that the machine can run RHEL or CentOS 6 and that it has two network interfaces (wireless is NOT supported).

The recommended minimum configuration is:

  • Intel Core i5 v5 (or AMD equivalent) or newer CPU
  • 8 GiB of RAM
  • 128 GiB SSD
  • 4x 1 Gbps NICs

The above specs will provide plenty of performance for hosting the ScanCore database as well as provide network redundancy on both the Back-Channel Network and the Intranet-Facing Network.



Requirements

  • A machine with two wired network interfaces, one to the BCN and one to the IFN.
  • RHEL, CentOS or similar version 6.x (6.5 or higher recommended).
    • Minimal install is sufficient, provided you install perl.
    • The installer will install everything else it needs.
yum install perl
<yum output>


Warning: Below here is very old.
Parameter Switch Value Description
Back-Channel Network -b 10.20.4.3/16 Sets the BCN IP address and subnet mask.
Internet-Facing Network -i 10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 Sets the IFN IP address, subnet mask, default gateway and DNS servers.
Host name -n an-m03.alteeve.ca Sets the host name of the Striker dashboard machine.
Dashboard Owner -c Alteeve's Niche! This sets the name used on the password prompt when connecting to the dashboard. It reflects the owner/manager of the dashboard and is usually a company or organization name.
Email server user and password -e digimer@example.com:super secret password This is the email account user name and password that will be used later when sending alert emails from nodes.
Mail server details -m mail.example.com:587 This is the mail server address and port that will be used later when sending alert emails from nodes. It is against this server that the user name and password defined in -e will be used.
Striker user and password -u admin:another secret password This sets the user name and password that users will use when connecting to the dashboard.
Note: The password defined here will be used to set the root user's password on the Striker dashboard itself. If you want these passwords to be different, please be sure to change it when the installer finished running.
Note: If you have already configured the network, please skip the -b and -i switches. If you have already configured the host name, please skip the -n switch.
Note: This is a standard bash call, so please be sure to quote anything with spaces and to escape special characters like !.

Knowing this, the installer command will be:

./striker-installer \
  -b 10.20.4.3/16 \
  -i 10.255.4.3/16,dg=10.255.255.254,dns1=8.8.8.8,dns2=8.8.4.4 \
  -n an-m03.alteeve.ca \
  -c "Alteeve's Niche\!" \
  -e "digimer@example.com:super secret password" \
  -m mail.example.com:587 \
  -u "admin:another secret password"

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.