Build an m2 Anvil! - Detailed: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
Line 417: Line 417:
|This sets the name of the customer/owner of the Anvil!. This is used by the web browser at the top of the input box when asking the user for their login credentials. If this is not set, "Striker Dashboard" will be used alone.
|This sets the name of the customer/owner of the Anvil!. This is used by the web browser at the top of the input box when asking the user for their login credentials. If this is not set, "Striker Dashboard" will be used alone.
|-
|-
|class="code" style="white-space: nowrap"|--custom-config
|class="code" style="white-space: nowrap"|/path/to/striker.conf
|This is an optional way to specify a custom <span class="code">striker.conf</span> file to use instead of the default example <span class="code">striker.conf</span> provided by the installer. Note that the file name does *not* have to be '<span class="code">striker.conf</span>'. It must have all core variables set though. That is, the specified file must be complete because it will be used instead of, not appended to, the default configuration file.
|-
|class="code" style="white-space: nowrap"|--ethtool-opts
|class="code" style="white-space: nowrap"|<options>
|If you need to pass any special 'ethtool' configuration options to your network devices, you can do so using this option. If you want to pass multiple options, be sure to use double-quotes to contain the options.
'''Note''': These options will be applied to both/all <span class="code">ifn_linkX</span> and <span class="code">bcn_linkX</span> interfaces.
|-
|class="code" style="white-space: nowrap"|-h, -?, --help
|class="code" style="white-space: nowrap"|
|class="code" style="white-space: nowrap"|
|class="code" style="white-space: nowrap"|
|Show the built-in help dialog. Possibly more up to date than this document.
|
|-
|-
|class="code" style="white-space: nowrap"|
|class="code" style="white-space: nowrap"|-i
|class="code" style="white-space: nowrap"|
|class="code" style="white-space: nowrap"|<ip_address/netmask>,dg=<ip_address>[,dns1=<ip_address>,dns2=<ip_address>]
|
|This sets the IP address and subnet to be assigned to the [[Internet-Facing Network]] interface. Unlike <span class="code">-b</span> switch, this switch requires a default gateway be specified after the IP address via:
 
<span class="code">dg=<ip_address></span>
 
[[IPv4]] address of the default gateway.
 
Optionally, one or two [[DNS]] servers may be specified via:
<span class="code">dns1=<ip_address></span>
<span class="code">dns2=<ip_address></span>
 
IPv4 addresses of the first and/or secondary DNS server. If these are not set, they will not be used! This disables DNS on the DHCP server as well!
|-
|-
|class="code" style="white-space: nowrap"|
|class="code" style="white-space: nowrap"|
Line 433: Line 454:
|
|
|}
|}
 
<span class="code"></span>
<syntaxhighlight lang="text">
--ipmi-user <user:password>
If specified, and if an IPMI BMC is found, the installer will set the
IPMI BMC password for the specified user.
Note: This will *not* create a user! If the specified user is not found
      in the IPMI user list, the password will not be set and an error
      will be printed.
--ipmi-ip <ip_address/netmask>[,gw=<ip_address>]
If specified, and if an IPMI BMC is found, the installer will set the
IPMI BMC to have the specified IP address and network mask/subnet.
Optionally, if 'gw' is set, the BMC's gateway will also be set.
--use-lsi
If your dashboard machine uses an LSI-brand storage controller, and if
you've installed (or specify a repo with) the LSI 'storcli' and
'MegaCli' RPMs, then they will be installed and configured.
--mtu <byte_size>
If your network can handle jumbo frames, you can use this switch to set
the MTU byte size. This will be assigned to both/all interfaces.
If you are not certain that your network can handle large packets, do
not set this.
-n <hostname>
This sets the host name of the Striker dashboard.
--no-os-updates
By default, the operating system will be updated if there is Internet
access. You can disable this behaviour with this switch.
--no-striker-configure-vmm
By default, the 'striker-configure-vmm' will be used to configure
Virtual Machine Manager so that Anvil! systems added via Striker are
automatically added to and removed from VMM.
--no-reboot
By default, the installer will reboot the system when it is finished.
This option prevents this from happening. If you are installing over
an ssh connection, using this switch is recommended.
--ntp <ip[,ip]>
If one or more NTP IPs are passed, they will be added to Striker's
NTP configuration file. Multiple NTP servers can be specified using
commas to separate the IPs.
-p <start_ip:end_ip>
This sets the DHCP range that this Striker dashboard will offer IPs on
for new machines being installed off of the local PXE server. If set to
'none', PXE will not be configured.
NOTE: This lease range must be in the BCN subet. We do not want to
      interfere with existing DHCP servers on the IFN!
--peer-dashboard <hostname=x,bcn_ip=y>
This allows you to tell this Striker dashboard about its peer. When
set, the installer will configure the other dashboard as a ScanCore
database host and record its data to the peer as well.
NOTE: This only works if the ScanCore database configuration and
      Striker password is the same as this dashboard! If you have
      a differing configuration or password, please manually add the
      peer information to striker.conf and /etc/hosts after the install
      completes.
--rhn <user:password>
When installing on a RHEL server, these credentials can be passed to
add the machine to yout RHN account. If you do not pass this and if
your machine is not already activated, the install will fail.
--router-mode
When Striker is configured to be an install target, using this switch
tells Striker to run as a router, providing Internet access on the BCN
to the machines getting DHCP IPs from it on the BCN.
If '-p' is not set, this option will be ignored.
NOTE: This will expose the BCN to the IFN! Care has been taken to
      block all traffic from the IFN to the BCN, but no program is
      perfect. If you are particularly concerned about this, audit the
      code before using this. In any case, it is a good idea to disable
      the "Install Target" feature in Striker when not needed. That
      will tear down the bridge as well.
--run-rc-local
In some cases, some users have customizations in /etc/rc.local that can
be clobbered by the --gui install. Using this switch causes the
installer to call 'sh /etc/rc.local' just prior to the end of the
install process.
-u <user:password>
This is the user name and password to set for Striker. This will be
used in apache's htpasswd authentication and will be stored in the
|;
$help .= " $conf->{path}{apache_htpasswd} file.\n";
$help .= q|
NOTE: This also sets the 'root' user's password on the striker
      appliance!
-y
Automatically answers "yes" to prompts. Specifically, this prevents
confirmation request for network remapping, so it should only be used
by scripts.
</syntaxhighlight>


{{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.}}
{{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.}}

Revision as of 03:28, 5 June 2016

 AN!Wiki :: Build an m2 Anvil! - Detailed

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 is optional. 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:

sudo ./anvil-usb-installer --iso ./anvil/Anvil_m2_RHEL_6.8_alpha.iso --usb /dev/sdb
-=] 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.

Note: If you know the key combination for a device not listed here, please let us know.

Known models and their key to select temporary boot device:

Manufacturer Model Key Note
Fujitsu Primergy Servers F12 Select 'IBA GE Slot 0300' for the standard 1 Gbps BCN Link 1 port (closest on-board interface to PSUs)
Intel NUC F10

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.



Stage-2 Striker Install

Warning: Below here is incomplete.

striker-installer Switches

There are several ways to customize Striker for your environment. Below is a complete list, but don't worry, you can do the install in most cases with just a few switches which we'll highlight below.

Switch Value Description
--autostart-dhcpd <none> By default, Striker will not run its "Install Target" feature on boot. This is done to avoid an accidental conflict with your site's main DHCP server(s). Ideally, the BCN will be isolated from the main network. If so, the DHCP server on the dashboard can safely run all the time, avoiding the need to manually enable the "Install Target" when needed.

If you know that your BCN is VLAN or hard isolated, then you can usethis switch to auto-start the "Install Target" feature on boot.

-b <ip_address/netmask> This sets the IP address and subnet mask to be assigned to the Back-Channel Network interface.
-c <customer/owner> This sets the name of the customer/owner of the Anvil!. This is used by the web browser at the top of the input box when asking the user for their login credentials. If this is not set, "Striker Dashboard" will be used alone.
--custom-config /path/to/striker.conf This is an optional way to specify a custom striker.conf file to use instead of the default example striker.conf provided by the installer. Note that the file name does *not* have to be 'striker.conf'. It must have all core variables set though. That is, the specified file must be complete because it will be used instead of, not appended to, the default configuration file.
--ethtool-opts <options> If you need to pass any special 'ethtool' configuration options to your network devices, you can do so using this option. If you want to pass multiple options, be sure to use double-quotes to contain the options.

Note: These options will be applied to both/all ifn_linkX and bcn_linkX interfaces.

-h, -?, --help Show the built-in help dialog. Possibly more up to date than this document.
-i <ip_address/netmask>,dg=<ip_address>[,dns1=<ip_address>,dns2=<ip_address>] This sets the IP address and subnet to be assigned to the Internet-Facing Network interface. Unlike -b switch, this switch requires a default gateway be specified after the IP address via:

dg=<ip_address>

IPv4 address of the default gateway.

Optionally, one or two DNS servers may be specified via:

dns1=<ip_address> dns2=<ip_address>

IPv4 addresses of the first and/or secondary DNS server. If these are not set, they will not be used! This disables DNS on the DHCP server as well!

 --ipmi-user <user:password>

	If specified, and if an IPMI BMC is found, the installer will set the
	IPMI BMC password for the specified user.
	
	Note: This will *not* create a user! If the specified user is not found
	      in the IPMI user list, the password will not be set and an error
	      will be printed.

 --ipmi-ip <ip_address/netmask>[,gw=<ip_address>]
 
	If specified, and if an IPMI BMC is found, the installer will set the
	IPMI BMC to have the specified IP address and network mask/subnet.
	Optionally, if 'gw' is set, the BMC's gateway will also be set.

 --use-lsi

	If your dashboard machine uses an LSI-brand storage controller, and if
	you've installed (or specify a repo with) the LSI 'storcli' and 
	'MegaCli' RPMs, then they will be installed and configured.

 --mtu <byte_size>

	If your network can handle jumbo frames, you can use this switch to set
	the MTU byte size. This will be assigned to both/all interfaces.
	
	If you are not certain that your network can handle large packets, do
	not set this. 

 -n <hostname>

	This sets the host name of the Striker dashboard.

 --no-os-updates

	By default, the operating system will be updated if there is Internet
	access. You can disable this behaviour with this switch.

 --no-striker-configure-vmm

	By default, the 'striker-configure-vmm' will be used to configure 
	Virtual Machine Manager so that Anvil! systems added via Striker are
	automatically added to and removed from VMM.

 --no-reboot
 
	By default, the installer will reboot the system when it is finished.
	This option prevents this from happening. If you are installing over
	an ssh connection, using this switch is recommended.

 --ntp <ip[,ip]>

	If one or more NTP IPs are passed, they will be added to Striker's
	NTP configuration file. Multiple NTP servers can be specified using
	commas to separate the IPs.

 -p <start_ip:end_ip>
 
	This sets the DHCP range that this Striker dashboard will offer IPs on
	for new machines being installed off of the local PXE server. If set to
	'none', PXE will not be configured.

	NOTE: This lease range must be in the BCN subet. We do not want to
	      interfere with existing DHCP servers on the IFN!

 --peer-dashboard <hostname=x,bcn_ip=y>

	This allows you to tell this Striker dashboard about its peer. When 
	set, the installer will configure the other dashboard as a ScanCore
	database host and record its data to the peer as well.
	
	NOTE: This only works if the ScanCore database configuration and 
	      Striker password is the same as this dashboard! If you have
	      a differing configuration or password, please manually add the
	      peer information to striker.conf and /etc/hosts after the install
	      completes.

 --rhn <user:password>

	When installing on a RHEL server, these credentials can be passed to
	add the machine to yout RHN account. If you do not pass this and if
	your machine is not already activated, the install will fail.

 --router-mode

	When Striker is configured to be an install target, using this switch
	tells Striker to run as a router, providing Internet access on the BCN
	to the machines getting DHCP IPs from it on the BCN.
	
	If '-p' is not set, this option will be ignored.
	
	NOTE: This will expose the BCN to the IFN! Care has been taken to
	      block all traffic from the IFN to the BCN, but no program is
	      perfect. If you are particularly concerned about this, audit the
	      code before using this. In any case, it is a good idea to disable
	      the "Install Target" feature in Striker when not needed. That
	      will tear down the bridge as well.

 --run-rc-local

	In some cases, some users have customizations in /etc/rc.local that can
	be clobbered by the --gui install. Using this switch causes the
	installer to call 'sh /etc/rc.local' just prior to the end of the
	install process.

 -u <user:password>

	This is the user name and password to set for Striker. This will be
	used in apache's htpasswd authentication and will be stored in the
|;
	$help .= "	$conf->{path}{apache_htpasswd} file.\n";
	$help .= q|

	NOTE: This also sets the 'root' user's password on the striker
	      appliance! 

 -y

	Automatically answers "yes" to prompts. Specifically, this prevents
	confirmation request for network remapping, so it should only be used
	by scripts.
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-striker01.alteeve.ca \
  -c "Alteeve's Niche\!" \
  -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.