ClusterInformationAggregationTool (CIAT)

This page is for a staff meeting presentation. Usage instructions can be found on the project repository.

Problem

  • ~140 nodes of the tembo cluster need to be added to inventory
    • Nodes are not all identical, minor subtleties
  • Helpful if barcode were written into BMC

Tech Stack

  • Python chosen as scripting language
    • I am familiar with it
    • High level features available ex. JSON Parsing
  • Salt Stack
    • Used to run script to collect information from all nodes (Salt selector "*")
    • Can be optionally used to associate barcodes with hostnames
  • lshw, lscpu
    • Simple tools to get system specs with JSON output
    • Available though most package managers
  • Input and output as CSV files
    • Easy to work with in python
    • Compatible with CSCF inventory
  • IPMI tool
    • Only option for writing barcodes into BMC FRU
    • In the form of a binary packaged with CIAT

Usage Overview

Full details in repo Readme

Download into a shared directory accessible by all nodes:

git clone https://git.uwaterloo.ca/qhyun/CIAT.git

Fill out example_data.csv and make accessible to the head node. Give the command:

./ciat.py --output /share/output master /share/example_data.csv

You get out:

tem99.tembo-domain.cs.uwaterloo.ca:
    2019-10-18 13:08:49 INFO     Running as slave
    2019-10-18 13:08:49 INFO     Running lshw
    2019-10-18 13:08:49 INFO     Verifying lshw exists
    2019-10-18 13:09:00 INFO     lshw installed, running now
    2019-10-18 13:09:01 INFO     Determining simple lshw fields
    2019-10-18 13:09:01 INFO     Determining total amount of ram
    2019-10-18 13:09:01 INFO     Determining network info
    2019-10-18 13:09:01 WARNING  Could not load ip of network eno2 / MAC 0c:c4:7a:d9:0c:e9. This network is most likely useless / internal.
    2019-10-18 13:09:01 INFO     Network IDs    : eno1, enp4s0
    2019-10-18 13:09:01 INFO     Network MACs   : 0c:c4:7a:d9:0c:e8, 24:8a:07:79:7f:a0
    2019-10-18 13:09:01 INFO     Network IPs    : 192.168.152.199, 192.168.252.199
    2019-10-18 13:09:01 INFO     Network Speeds : 1Gbit/s, 10Gbit/s
    2019-10-18 13:09:01 INFO     lshw completed and parsed
    2019-10-18 13:09:01 INFO     Running lscpu
    2019-10-18 13:09:01 WARNING  Could not load lscpu as JSON data. Please upgrade lscpu to a version which supports --json. Now trying to fetch data though regex
    2019-10-18 13:09:01 INFO     lscpu completed and parsed
    2019-10-18 13:09:01 INFO     Running salt stack to determine barcode
    2019-10-18 13:09:03 INFO     Running IPMICFG to burn barcode CS010574
    2019-10-18 13:09:04 INFO     Successfully wrote data to file /share/tools/invadd/./output/tem99
    2019-10-18 13:09:04 INFO     Information collection complete
tem54.tembo-domain.cs.uwaterloo.ca:
    Minion did not return. [Not connected]
tem74.tembo-domain.cs.uwaterloo.ca:
    Minion did not return. [No response]

You can find the output file at ./your_output_path/aggregate.csv

If you see this I forgot to put the file here

CSCF Inventory should now happily consume it.

Links

Git Repo

RT

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatcsv example_data.csv r1 manage 57.2 K 2019-10-24 - 13:20 HaoYun  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 2019-10-24 - HaoYun
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback