A Bolt inventory generator for VMs on various providers including orbstack and vmpooler.
- Ruby (version 2.7 or later)
- nmap (required for VMPooler connectivity filtering). For example,
brew install nmap - floaty (required for VMPooler). For example,
gem install floaty. - bolt
This bolt_dynamic_inventory gem queries either VMPooler or Orbstack and generates a Bolt inventory. It can be used in 2 ways:
- as a gem. For more information see How to use as a gem.
- as a bolt dynamic inventory plugin. For more information see How to use as a bolt dynamic plugin.
This repository also explains How to create a basic dynamic inventory plugin.
For a complete listing of various how-to guides and design decisions, see the documentation. The following list is a good place to start.
Getting Started
- How to setup the environment
- How to use as a gem
- How to use as a bolt dynamic plugin
- How to use the
rolefact - How to create a basic dynamic inventory plugin
Provider Guides
- How to create and remove orbstack VMs from the command-line
- How to setup windows credentials for vmpooler
- How to Test VMPooler Inventory Features
- ADR-0001 - Extend this gem to be a bolt inventory dynamic plugin also
- ADR-0002 - Configure bolt inventory with native ssh to keep things simple
- ADR-0003 - Gather inventory metadata via the cli to keep things simple
- ADR-0004 - Create dynamic inventory groups based on hostname regex patterns
- ADR-0005 - Add 'role' fact that matches the group name making puppet switching easier
- ADR-0006 - Extend the plugin to handle not only orbstack but vmpooler as well
- ADR-0007 - Use nmap SSH port scan for VMPooler VM connectivity filtering
- ADR-0008 - Query both ABS and vmpooler services to find all active VMs
- ADR-0009 - Cache VM data with smart TTL-based invalidation
- ADR-0010 - Surface unavailable VMs in a dedicated group instead of silently dropping
- How to create a basic dynamic inventory plugin
- How to create and remove orbstack VMs from the command-line
- How to setup the environment
- How to setup windows credentials for vmpooler
- How to Test VMPooler Inventory Features
- How to use as a bolt dynamic plugin
- How to use as a gem
- How to use the
rolefact