RACKSDB(1)
π
RACKSDB(1) β the racksdb page, but make it make sense
okay so. bestie. listen. racksdb is the little CLI that lets you explore a YAML database of datacenter infrastructures β¨ like, all the racks and nodes and rooms and tags, all up in there, and you get to poke at it. no cap. she's giving infrastructure main character energy π
πΈ SYNOPSIS πΈ
racksdb [GENERAL OPTIONS] COMMAND [COMMAND OPTIONS]
literally that's the whole shape of it: general options, then a command, then whatever options belong to that command. periodt.
β¨ GENERAL OPTIONS β¨
these are the global girlies β they work no matter which command you're running π«Ά
-h,--helpβ show this help message and exit. classic, iconic, always there for you.-v,--versionβ show the RacksDB version number and exit. a little "hi, this is me" moment π--debugβ enable debug mode, which means more messages in the output. like she's texting you her every thought. good for when something's acting sus.-b,--db=DBβ path to the database. both files and directories paths are accepted β yes, both, she's flexible π if the path is a directory, all YAML files in this directory are loaded, recursively. if the path does not exist, an error is reported. default value is the/var/lib/racksdb/directory or the environment variableRACKSDB_DBif that's set.-s,--schema=SCHEMAβ path to the RacksDB schema YAML file. if the file does not exist, an error is reported (she will not be quiet about it). default value is/usr/share/racksdb/schemas/racksdb.ymlor the environment variableRACKSDB_SCHEMAif set.-e,--ext=EXTβ path to optional RacksDB schema extensions. and here's the vibe difference: if the file does not exist, it is silently ignored by RacksDB. no drama, no error, she just moves on. default value is/etc/racksdb/extensions.ymlor the environment variableRACKSDB_EXTENSIONSif set.
π¦ COMMANDS π¦
every single command accepts -h, --help so you can get the tea on the options for that particular command, e.g. racksdb nodes --help. the commands are grouped by functional purpose, and inside each group they're listed in lexicographical order (alphabetical, bestie, she's organised β¨).
π Analysis commands
dumpβ dump raw data loaded from the database on standard output. and the generated output can be reloaded by RackDB. round-trip queen π₯schemaβ dump the schema, including optional extensions, on standard output. the whole blueprint, no filter.
π Search commands
these commands are named after the entities you search for in the database. so like, nodes searches nodes. iykyk π
all search commands accept the following options:
--foldβ fold ranges of objects and names. by default ranges of objects and names are expanded; this option produces more concise results. short and cute instead of a whole wall of text π--format=FORMATβ select an alternative format for the command output. possible values areyamlandjson. the default value isyamlexcept when the-l,--listoption is enabled (see right below π).-l,--listβ list names of the selected entities, without detailed information. when this option is enabled, the default output format is the raw list of names, one name per line. an alternative format can be selected with the--formatoption (above), and the list can also be folded with--fold(also above). yes, they stack, she's generous π«Ά--with-objects-typesβ add object types names in detailed dumps. this option has no effect with-l,--list. just so you know, no surprises.
the search commands available are the following:
datacenters
dump information about datacenters. this command accepts the following options:
--name=NAMEβ name of the datacenter to search.--tags=TAG [TAG]β select the datacenters labelled with these tags. yep, multiple tags, she takes a list π
infrastructures
dump information about infrastructures. this command accepts the following options:
--name=NAMEβ name of the infrastructure to search.--tags=TAG [TAG]β select the infrastructures labelled with these tags.
nodes
dump information about nodes. this command accepts the following options:
--infrastructure=INFRASTRUCTUREβ select the nodes in this infrastructure.--name=NAMEβ name of the node to search.--tags=TAG [TAG]β select the nodes labelled with these tags.
racks
dump information about racks. this command accepts the following options:
--name=NAMEβ name of the rack to search.
tags
get associated to object in database. this command accepts the following options:
--node=NODEβ get tags associated to a specific node.--infrastructure=INFRASTRUCTUREβ get tags associated to a specific infrastructure. with--on-nodes, get the tags associated to nodes in this infrastructure.--datacenter=DATACENTERβ get tags associated to a specific datacenter. with--on-racks, get the tags associated to racks in this datacenter.--on-nodesβ with--infrastructure, get tags associated to nodes in an infrastructure.--on-racksβ with--datacenter, get tags associated to racks in a datacenter.
π¨ okay important: either--node,--infrastructureor--datacenterargument is required. she needs at least one of them, she's not doing the mind-reading thing today.
π Examples
$ racksdb datacenters
dump information about all the datacenters with their rooms and racks in YAML format.
$ racksdb datacenters --tags tier2 --format json
dump information about all the datacenters that have the tier2 tag in JSON format.
$ racksdb infrastructures
dump information about all the infrastructures with their parts and equipments.
$ racksdb infrastructures --tags hpc cluster
dump information about all the infrastructures that have both the hpc and cluster tags.
$ racksdb infrastructures --list
list names of all infrastructures in database.
$ racksdb nodes --name cn001
dump information node named cn001.
$ racksdb nodes --tags compute
dump information of all nodes that have the compute tag.
$ racksdb nodes --tags compute --list --fold
folded names of all nodes that have the compute tag.
$ racksdb nodes --infrastructure tiger --tags server --list --format json
list of names of all nodes in tiger infrastructure that also have the server tag in JSON format.
$ racksdb racks
dump information about all racks with their equipments.
$ racksdb racks --name R7-06 --fold
dump information about rack R7-A06 with folded node range.
$ racksdb tags --node cn001
get all tags associated to node cn001.
$ racksdb tags --infrastructure tiger
get all tags associated to infrastructure tiger.
$ racksdb tags --infrastructure tiger --on-nodes
get all tags associated to nodes in infrastructure tiger.
$ racksdb tags --datacenter paris
get all tags associated to datacenter paris.
$ racksdb tags --datacenter paris --on-racks
get all tags associated to racks in datacenter paris.
πΌοΈ Draw commands
the draw command is used to generate an image file with graphical representations of database entities. and it's used in combination with a sub-command to indicate the type of database entity β so it's draw + the thing you're drawing. duo energy π
β¨
this command accepts the following options:
--name=NAMEβ name of the entity to represent. this option is required. no name, no art, she will not guess π«--format=FORMATβ file format of the generated image file. possible values arepng,svgandpdf. default value ispng.--parameters=PARAMETERSβ path to a YAML drawing parameters file. with the special value-, drawing parameters are read on standard input. yes, the little dash is doing a lot of work here π--drawings-schema=DRAWINGS_SCHEMAβ path to the drawing parameters schema YAML file. default value is/usr/share/racksdb/drawings.yml.-c,--coordinates=COORDINATESβ dump pixel coordinates of equipment and racks in the graphical representations into an additional file. the value of the option is the path of the generated coordinates file. this value is optional β when this option is used without a value, coordinates are dumped into a file namedcoordinates.FORMATwhereFORMATis the coordinates format (ex:json).--coordinates-format=COORDINATES_FORMATβ format of coordinates files. possible values arejsonandyaml. default value isjson.
the following sub-commands are available:
infrastructure
draw the racks of an infrastructure, grouped by rows. the front side of the racks are represented with the equipments of the infrastructure. like a little portrait of your infra π
room
draw a datacenter room map with its racks. the room is represented from the top view, with rows and racks at their position in this room. birds-eye slay π¦
π Examples
$ racksdb draw room --name=atlas
generate the map of datacenter room atlas with all its racks in PNG image file atlas.png.
$ racksdb draw infrastructure --name=tiger --format=svg
generate SVG image file tiger.svg with racks and equipments used in tiger infrastructure.
$ racksdb draw infrastructure --name=tiger --format=pdf --parameters=custom.yaml
generate PDF image file tiger.pdf with racks and equipments used in tiger infrastructure with custom drawing parameters defined in custom.yaml.
$ racksdb draw room --name=noisy --parameters=- < custom.yaml
generate the map of datacenter room noisy with custom drawing parameters read on standard input fed with content of custom.yaml.
$ racksdb draw infrastructure --name=mercury --coordinates
generate a graphical representation of mercury infrastructure and dump coordinates of equipment in JSON format in a file named coordinates.json.
$ racksdb draw infrastructure --name=tiger --coordinates --coordinates-format yaml
generate a graphical representation of tiger infrastructure and dump coordinates of equipment in YAML format in a file named coordinates.yaml.
$ racksdb draw room --name=noisy --coordinates=noisy-coordinates.json
generate a graphical representation of noisy datacenter room and dump coordinates of racks in JSON format in a file named noisy-coordinates.json.
π§ ENVIRONMENT VARIABLES π§
when a command-line option above is omitted, racksdb uses the following environment variables if they are set to a non-empty value (empty means nope, she's not fooled π):
RACKSDB_SCHEMAβ path to the RacksDB schema YAML file.RACKSDB_EXTENSIONSβ path to optional schema extensions.RACKSDB_DBβ path to the database.
π and remember, bestie: command-line options always override environment variables. the CLI is the main character here, the env vars are the supporting cast. no cap.
β EXIT STATUS β
0βracksdbhas processed command with success. slay π1βracksdbencountered an error. π it happens to the best of us.
π RESOURCES π
RacksDB web site: https://github.com/rackslab/racksdb β go look, she's iconic π
π COPYING π
Copyright Β© 2022-2023 Rackslab: https://rackslab.io.
RacksDB is distributed under the terms of the GNU General Public License v3.0 or later (GPLv3+).
π AUTHOR π
Rackslab: https://rackslab.io
π ok that's the whole page!! this was RacksDB 0.7.0, dated 2026-08-20 β RACKSDB(1), the manual, the moment, the legend. mwah π go fold some ranges, bestie πβ¨ππ¦
π¦ where this page comes from
- alpine 3.24: racksdb-doc 0.7.0-r1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms