RackHD
Docs
1. RackHD Overview
1.1. Vision
1.2. Goals
1.3. The RackHD Project
1.4. What RackHD Does Well
1.5. What RackHD Doesn’t Do
1.6. Comparison with Other Projects
1.7. Related Projects
2. System Architecture
2.1. Theory of Operations
2.2. Major Components
2.2.1. ISC DHCP
2.2.2. on-dhcp-proxy
2.2.3. on-tftp
2.2.4. on-http
2.2.5. on-syslog
2.2.6. on-taskgraph
3. Features
3.1. Bare Metal Server Automation with PXE
3.2. Discovery and Geneaology
3.3. Telemetry, Events and Alerting
3.4. Additional Workflows
4. Contributing to RackHD
4.1. Communicating with Other Users
4.2. Submitting Contributions
4.2.1. Core Committer Team
4.3. Issues and Bugs
4.4. Security Issues
4.5. Understanding the Repositories
4.6. Submitting Design Proposals
4.7. Coding Guidelines
4.8. Contributing to the Documentation
4.9. Community Guidelines
5. RackHD Development Guide
5.1. Repositories
5.1.1. Applications
5.1.2. Libraries
5.1.3. Supplemental Code
5.1.4. Documentation
5.1.5. Repositories Status
5.2. Contributing Changes to RackHD
5.2.1. Guidelines for merging pull requests
5.2.2. Getting commit privileges
5.2.3. Quality gates for the pull requests
5.3. Naming Conventions
5.3.1. Workflows
5.3.2. Microkernel docker image
5.4. API Versioning Conventions
5.4.1. Referencing API Versions in URIs
5.4.2. Versioning Resources
5.4.3. API Version Guidelines
5.5. AMQP Message Bus Conventions
5.5.1. Configuration
5.5.2. Events
5.5.3. HTTP
5.5.4. DHCP
5.5.5. TFTP
5.5.6. Logging
5.5.7.
task-graph-runner
5.5.8. Scheduler
5.5.9. Task
5.6. Messenger design notes
5.6.1. Publish (Exchange, Topic, Data) -> Promise (Success)
5.6.2. Subscribe (Exchange, Topic, Callback) -> Promise (Subscription)
5.6.3. Request (Exchange, Topic, Data) -> Promise (Response)
5.6.4. Object Marshaling
5.6.5. Object Validation
5.6.6. Additional Information
5.7. Logging in RacKHD
5.7.1. Log Levels
5.7.2. Setting up and using Logging
5.7.3. Deprecation
5.8. RackHD Debugging Guide
5.8.1. Discovery with a Default Workflow
5.8.2. Default discovery workflow
5.8.3. Footprint Benchmark Test
5.8.3.1. How It Works
5.8.3.2. Prerequisites
5.8.3.3. How to Run
5.8.4. Logged warnings FAQ
6. RackHD Users Guide
6.1. Deployment Environment
6.1.1. Security Constraints
6.1.2. Hardware Controls
6.1.3. IP Address Management
6.1.4. RackHD Network Access Requirements
6.1.5. Possible Configurations
6.2. Installation
6.2.1. Source Installation on Ubuntu
6.2.1.1. NICs
6.2.1.1.1. Start RackHD
6.2.1.1.2. How to update to the latest code
6.2.1.1.3. How to Reset the Database
6.2.2. Package Installation on Ubuntu
6.2.2.1. Prerequisites
6.2.2.1.1. NICs
6.2.2.1.2. NodeJS 4.x
6.2.2.2. Install & Configure RackHD
6.2.2.2.1. Install/Configure with Ansible Playbook
6.2.2.2.2. Install/Configure with Step by Step Guide
6.2.2.3. How to Erase the Database to Restart Everything
6.2.3. NPM Installation
6.2.3.1. Ubuntu
6.2.3.1.1. Prerequisites
6.2.3.1.2. Install & Configure RackHD
6.2.3.1.3. How to Erase the Database to Restart Everything
6.2.3.2. CentOS 7
6.2.3.2.1. Prerequisites
6.2.3.2.2. Install & Configure RackHD
6.2.3.2.3. How to Erase the Database to Restart Everything
6.3. Configuration
6.3.1. Configuration Parameters
6.3.2. HTTPS/TLS Configuration
6.3.3. BMC Username and Password Configuration
6.3.4. Certificates
6.3.4.1. Generating Self-Signed Certificates
6.3.4.2. Installing Certificates
6.3.5. Setup HTTP/HTTPS endpoint
6.3.6. Setup Taskgraph Endpoint
6.3.7. Raid Configuration
6.3.7.1. Setting up the docker image
6.3.7.2. Posting the Workflow
6.3.7.3. Payload Definition
6.3.7.4. Results
6.4. Security
6.4.1. Authentication
6.4.1.1. Enable Authentication
6.4.1.2. Setup the First User with Localhost Exception
6.4.1.3. Setup the Token
6.4.1.4. Login to Get a Token
6.4.1.5. Accessing API Using the Token
6.4.1.6. Invalidating all Tokens
6.4.1.7. Creating a Redfish Session
6.4.1.8. Deleting a Redfish Session
6.4.2. Authorization
6.4.2.1. Privileges
6.4.2.1.1. Built-in Privileges
6.4.2.2. Roles
6.4.2.2.1. Built-in Roles
6.4.2.2.2. API Commands for Roles
6.5. RackHD API
6.5.1. Starting and Stopping the API Server
6.5.2. Generating API Documentation
6.5.3. RackHD Client Libraries
6.5.4. Examples using the python client library
6.5.5. Using Pagination
6.6. Event Notification
6.6.1. Events Payloads
6.6.2. Events via AMQP
6.6.2.1. AMQP Exchange and Routing Key
6.6.2.2. AMQP Routing Key Filter
6.6.3. Events via Hook
6.6.3.1. Register Web Hooks
6.6.3.2. Event Filter Rules
6.6.3.3. Web Hook APIs
6.6.4. Redfish Alert Notification
6.6.4.1. Description
6.6.4.2. Configuring the Redfish endpoint
6.6.4.3. Alert message
6.6.4.4. AMQP
6.7. Nodes and Catalogs
6.7.1. Defining Nodes
6.7.2. Defining Catalogs
6.7.3. API Commands for Nodes
6.7.4. Out of Band Management Settings
6.7.5. In Band Management Settings
6.7.6. Node Tags
6.7.7. Node Relations
6.8. Workflows
6.8.1. Workflow Graphs
6.8.1.1. Defining Graphs
6.8.1.2. Graph definition attributes
6.8.1.3. API Commands for Graphs
6.8.2. Workflow Examples
6.8.2.1. Creating a Custom Zerotouch Graph for Arista
6.8.2.2. Creating a Linux Commands Graph
6.8.3. Workflow Progress Notification
6.8.3.1. Workflow Progress Events
6.8.3.2. Progress Message Payload
6.8.3.3. Workflow Progress Measurement
6.8.3.3.1. Workflow level progress measurement
6.8.3.3.2. Task level progress measurement
6.8.3.4. Progress Message Retrieve Channels
6.9. Workflow Tasks
6.9.1. Task Definitions
6.9.2. Base Task Definitions
6.9.3. Options Schema
6.9.4. Task Jobs
6.9.5. Task Templates
6.9.6. Task Rendering Features
6.9.7. Task Timeouts
6.9.8. API Commands for Tasks
6.9.9. Task Annotation
6.10. Pollers
6.10.1. IPMI
6.10.2. SNMP
6.10.3. Metric Pollers
6.10.4. API commands
6.10.5. IPMI Poller Alerts
6.10.6. Chassis Power State Alert
6.10.7. Poller JSON Format
6.10.8. ARP Cache Poller
6.11. SKUs
6.11.1. Package Support (skupack)
6.11.2. API commands
6.11.3. SKU JSON format
6.11.4. SKU Pack tar.gz format
6.11.5. SKU Pack config.json format
6.12. Tags
6.12.1. API commands
6.12.2. Tag JSON format
6.13. Built-in Workflows
6.13.1. Discovery
6.13.1.1. Passive Hardware Discovery
6.13.1.1.1. Automatic Discovery
6.13.1.1.2. Discover an existing device node
6.13.1.2. Discovering/Configuring Network Switches
6.13.1.2.1. Active Discovery
6.13.1.2.2. Extending the Active Discovery Workflow
6.13.1.3. Refresh Node Discovery
6.13.1.3.1. Immediate Refresh Node Discovery
6.13.1.3.2. Delayed Refresh Node Discovery
6.13.2. OS Installation
6.13.2.1. Setting up RackHD OS repository with image service
6.13.2.2. Configuring RackHD OS Mirrors
6.13.2.3. Making the Mirrors
6.13.2.4. Supported OS Installation Workflows
6.13.2.5. OS Installation Workflow APIs
6.13.2.6. Non-Windows OS Installation Workflow Payload
6.13.2.7. Windows OS Installation Workflow Payload
6.13.3. RAID Configuration
6.13.3.1. Create docker image with Storcli/Perccli
6.13.3.2. Create RAID
6.13.3.3. Delete RAID
6.13.4. Disk Secure Erase
6.13.4.1. Disk Secure Erase Workflow API
6.13.4.2. Disk Secure Erase Workflow Payload
6.13.4.3. Supported Disk Secure Erase Tools
6.13.4.4. Supported Disk Secure Erase Arguments
6.13.4.5. Disk Secure Erase Workflow Notes
6.13.5. Firmware Update
6.13.5.1. Firmware update Example using SKU Pack
6.14. Southbound Notification API
6.14.1. How does it work
6.14.2. API commands
6.14.3. Use notification API in OS installation
6.15. MicroKernel image
6.15.1. Requirements
6.15.2. Bootstrap Process
6.15.3. Building Images
6.15.4. How To Login Microkernel
6.16. Service Setup
6.16.1. TFTP and DHCP Service Setup
6.16.1.1. TFTP and DHCP from the RackHD Server
6.16.1.1.1. TFTP Service Configuration in the RackHD Server
6.16.1.1.2. DHCP Service Configuration in the RackHD Server
6.16.1.2. TFTP and DHCP from a Separate Server
6.16.1.2.1. RackHD Main Services Configuration in the RackHD Server
6.16.1.2.2. TFTP Service Configuration in the Separate Server
6.16.1.2.3. DHCP Service Configuration in the Separate Server
6.16.2. Static File Service Setup
6.16.2.1. Files That can be Moved into a Separate Server
6.16.2.2. Diagrams for Different Working Modes
6.16.2.3. Setup a Static File Server
6.16.2.4. Notes
6.17. RackHD Web UI
6.17.1. How to Configure API Endpoint Settings
6.18. Customize Default iPXE Boot Setting
6.18.1. Default iPXE Boot Customized OS Into RAM
6.18.2. Customize iPXE Boot Profile
6.19. SSDP/UPnP
6.19.1. Northbound M-SEARCH Queries
6.19.2. Southbound M-SEARCH Queries
6.19.3. Southbound Advertisement Handler
6.19.4. Configuration Options
6.20. UCS-Service
6.20.1. UCS-Service Setup
6.20.2. UCS-Service API
6.20.3. UCS-Service Workflows
6.20.3.1. Discover Nodes
6.20.3.2. Catalog Nodes
7. Tutorials
7.1. Overview
7.2. RackHD: Local Docker Based Environment Set-up
7.2.1. Prerequisites
7.2.2. What We’re Setting up
7.2.3. Set up RackHD in Docker using Docker Compose
7.3. Automatic Discovery and Catalog Server Nodes
7.3.1. Discovery
7.3.2. NodeId
7.3.3. Retrieve Catalogs
7.3.4. Retrieve Pollers
7.3.4.1. What’s Poller
7.3.4.2. Examples of Telemetry
7.3.4.3. Retrieve Pollers
7.4. Interfacing with The RESTful API
7.4.1. Overview
7.4.2. Restful API ( v2.0 )
7.4.3. Swagger UI
7.5. Workflow Editor
7.5.1. Step 1: Configure on-web-ui
7.5.2. Step 2: Try on-web-ui
7.5.3. Step 3: Create A New Workflow
7.5.3.1. Add A New Workflow
7.5.3.2. Customize A Shell Command Task
7.5.3.3. Set The Task Relationship
7.5.3.4. Save The Workflow
7.5.4. Step 4: Run The New Workflow
7.6. Perform an Unattended OS Install
7.6.1. Overview
7.6.1.1. Prerequisite
7.6.1.2. Set Up OS Mirror
7.6.1.3. Install OS with RackHD API
7.6.1.4. Installation Progress
7.7. Conclusion
7.8. RackHD Workflow Engine
7.8.1. Prerequisites
7.8.2. Set up Workflow Engine Service
7.8.3. Posting a OS Install Workflow
Previous
Next
GitHub
6.2. Installation
¶
6.2.1. Source Installation on Ubuntu
6.2.1.1. NICs
6.2.1.1.1. Start RackHD
6.2.1.1.2. How to update to the latest code
6.2.1.1.3. How to Reset the Database
6.2.2. Package Installation on Ubuntu
6.2.2.1. Prerequisites
6.2.2.1.1. NICs
6.2.2.1.2. NodeJS 4.x
6.2.2.2. Install & Configure RackHD
6.2.2.2.1. Install/Configure with Ansible Playbook
6.2.2.2.2. Install/Configure with Step by Step Guide
6.2.2.3. How to Erase the Database to Restart Everything
6.2.3. NPM Installation
6.2.3.1. Ubuntu
6.2.3.1.1. Prerequisites
6.2.3.1.2. Install & Configure RackHD
6.2.3.1.3. How to Erase the Database to Restart Everything
6.2.3.2. CentOS 7
6.2.3.2.1. Prerequisites
6.2.3.2.2. Install & Configure RackHD
6.2.3.2.3. How to Erase the Database to Restart Everything