Skip to content

Commit

Permalink
Merge pull request #21 from 128technology/develop
Browse files Browse the repository at this point in the history
Update changes from develop
  • Loading branch information
laneshields authored Apr 22, 2021
2 parents edab3de + 43c1913 commit 57e68c3
Showing 1 changed file with 29 additions and 20 deletions.
49 changes: 29 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,29 @@ This repository contains files and instructions that can be used to setup a basi

This software is provided as a 128T Community supported application and is not maintained by 128 Technology officially. Any issues can be reported through this github repository with no guarantee that a fix will be provided and no SLA for any fix timeframes.

> **Current Release: v1.1, April 22, 2021
>
> Updates from v1.0:
> * Improved memory usage when downloading ISOs
> * Added button to search all conductors for assets matching hardware identifiers and automatically associate quickstarts
> * Proxy server support
> * Ability to disassociate a quickstart from a node after an association has been made
> * Ability to define custom passwords for root and t128 user to override ISO defaults
> * Update to handle new 128T Combined ISO format
> * Self-documentation in web UI
> * Update Manage nodes page to improve workflow of assigning quickstarts to nodes
>
> Note when upgrading from v1.0: A new table has been added to the database. If you wish to keep your current data and not recreate the DB from scratch, follow this procedure on the docker host after performing the upgrade procedure:
> ```
> cd blaster/instance
> sqlite3 blaster.sqlite
> CREATE TABLE passwords (
> username TEXT PRIMARY KEY,
> password_hash TEXT
> );
> .quit
> ```
## Topology ##
![Blasting Architecture](./Blaster.png)
Expand Down Expand Up @@ -77,33 +100,19 @@ docker-compose up -d
```
## Using the Blaster ##
Once the docker containers are running, pointing a browser to the management IP of the blast server should load the blaster menu. The following sections provide information about each of the options from the main menu.
Once the docker containers are running, pointing a browser to the management IP of the blast server should load the blaster menu. The blaster is fully self-documented through the web iterface, but some high level instructions follow.
### Certificate Management ###
The certificate management menu provides options for managing your 128T yum certificate. In order for the blaster to download official 128T ISOs, a valid yum certificate must be in place. The `Add Certificate` page provides a portal to upload a certificate. The `Show Esxisting Certtificate` option allows you to see details of a valid certificate, including the certificate expiration date.
The certificate management menu provides options for managing your 128T yum certificate. In order for the blaster to download official 128T ISOs, a valid yum certificate must be in place.
### ISO Management ###
The ISO management menu provides options for managing official 128T ISOs. The `List Availabile ISOs` option will use the uploaded yum certificate to provide a list of all available ISO images. Clicking any one of these ISOs will start the process of downloading and preparing the ISO for PXE booting. This process will take some time (one ISO should be setup at a time).

The `List ISOs` option will provide a list of all ISOs that the blaster knows about. Each ISO in the list will show the name and status of the ISO. Once an ISO has been selected from the `List Available ISOs` list, it will be put in the `Processing` state. If an ISO shows a `Failed` state or stays in the `Processing` state for more than 10 minutes, logs should manually be investigated and the ISO should be deleted using the option from this page and retried from the `List Available ISOs` page. Once the status shows `Ready`, it can be used for blasting. Only one image is available for blasting at a time and will be identified with an `X` in the active column. To make any successfully uploaded image active for blasting, click the `Set as Active` link next to that image.

Once an image is active, the blast systems are ready to start PXE booting following appropriate instructions from the hardware vendor.
The ISO management menu provides options for managing official 128T ISOs. ISOs can be downloaded from the 128T yum repo if a valid certificate was provided, or they can be uploaded manually. This menu is also where to select which ISO is "active" for blasting purposes.
### Conductor Management ###
If you wish to use the blaster as a quickstart server, you may wisth to use this functionality to pull quickstart data from one or more conductors. The `Add Conductor` link will allow you to enter a meaningful name for the conductor, the URL to reach the conductor (base URL only, api endpoints will be added when needed), and login credentials. The system will attempt to authenticate and retreive a token. If there is a failure, you will be notified. If authentication is successful, the token and conductor information will be saved in the DB.

The `List Configured Conductors` provides a listing of all conductors that were successfully added using the prior process. Any conductor can be removed from the DB with the `Delete` link. Using the `List Nodes` option will cause the blaster to query the conductor for all nodes via GraphQL and provdie a list of all non-conductor nodes including their router name, node name, and asset id. Next to each node will be a `Download Quickstart` link. Clicking this will cause the blaster to save the quickstart information for this node so that it can be used for bootstrapping with OTP ISOs (see the next section)
If you wish to use the blaster as a quickstart server, you may want to use this functionality to extract quickstart data from one or more 128T conductors.
### Quickstart Management ###
These options can be used to manage quickstarts used for bootstrapping 128T ISO blasted systems. The `Add Quickstart` link allows quickstarts to be uploaded to the blaster providing another mechanism aside from retreiving them directly from the Conductor API. The conductor name, router name, and description fields are free form and are not validated against other tables or against quickstart contents. At this time only non-password protected quickstart files are supported. When retrieving quickstarts from conductor, be sure to delete the auto-generated password field from the quickstart download page before downloading the file. Also note, at this time the conductor will not automatically populate the asset id field with the auto-generated asset id when downloading from conductor. If you wish to use the auto-generated asset ID, please manually edit the downloaded quickstart file and set this as the value of the "a" option in the JSON data before uploading. This limitation does not exist when automatically downloading quickstarts from conductor.

The `List Quickstarts` field provides data about all quickstart files that have been stored in the blaster's database. You can click on a `Delete` link to remove a quickstart. You can click on a `Set as Default` link to cause a specific quickstart to be offered to any device whose identifier is not already assigned to a specific quickstart (more on this in the next section). This option is only available when no asset ID is associated with a quickstart. You can click on `Unset as Default` if one is currently set as the default quickstart. If a quickstart has an asset ID associated with it, you can click on `Remove Asset ID` to delete the asset ID associated with a quickstart.

NOTE: Setting asset ID during bootstrapping not currently supported and will need an update in OTP image creation. The next paragraph explains the eventual usage.

A few notes about asset IDs. If an asset ID is not explicitly configured when a node is created, the Conductor will automatically generate a random UUID to use. When the OTP image is installed it will attempt to read the system's serial number from DMI and will configure this as the asset ID. If the quickstart provides an asset ID, this will override the value that was detected by the OTP image. In some cases you may prefer to use the serial number and update the conductor's configuration to match the serial number, in which case you would want to clear out any asset ID. Also, you would not want every node to use the same asset id, so only quickstarts that do not have an asset ID can be selected for a default quickstart. A default quickstart is useful if all systems for a deployment have a similar configuration with DHCP addressing, for example.
This menu allows you to view all quickstarts staged on the blaster for bootstrapping and manually upload individual quickstarts.
### Manage Nodes ###
When an ISO is staged, the blaster will add a step at the end of the kickstart that has the node send the blaster it's serial number. If you click on `List Nodes`, you will see the list of system serial numbers along with the name of the ISO that they were blasted with. If there is an assocication with a quickstart file, you will see the conductor name, router name, node name, and asset ID for the quickstart.

If you click the `Associate Nodes with Quickstarts` you will be presented with a list of all the quickstarts in the database in the format: `conductor_name:node_name.router_name` and a drop down box that lists all serial numbers that appear in the `List Nodes` page. If you select one quickstart and one serial number and press submit, the blaster will make an associate between the quickstart and node and offer that quickstart to the node during bootstrapping.
After a node has been blasted with an ISO, it will show up in this page allowing you to assign a quickstart file for bootstrapping.

0 comments on commit 57e68c3

Please sign in to comment.