|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Architect Api||48||5 years ago||4||March 02, 2018||1||Python|
|Architect API is server-side of service modeling, management and visualization platform. Supports SaltStack, Ansible, Puppet, Chef, Terraform, AWS, OpeStack and Kubernetes.|
|Salt Minion Inventory||33||11 days ago||6||gpl-3.0||PHP|
|Salt Minion Inventory provides a web based interface to your SaltStack minions to view their state.|
|Hotomata||5||5 years ago||May 29, 2021||Go|
|[abandonned][wip] Lightweight configuration management tool written in Go (yaml+ssh)|
|Spacewalk Saltstack||2||8 years ago||3||mit||Python|
|stand-alone reactor for Hackweek prototype of Spacewalk-Saltstack integration|
Provides a web based interface to your SaltStack minions to view their state, hardware, software and package information.
Bootstrap, Datatables.net and jQuery are used to create the user interface.
Data about the minions are stored in a MySQL database.
SaltStack events, reactors and a runner are used to keep the data up to date.
Minions only report their state, packages etc. if they have changed. Minions will cache their data's md5sum value to
If you have are using SaltStack's Onedir installation option, you will need to perform the following steps:
sudo dnf install mariadb-devel
sudo salt-pip install configparser sudo salt-pip install mysqlclient
Create a database, e.g.
salt_minion to store the minion information like so:
mysql -u root < database.sql
Create a user for the database:
GRANT USAGE ON *.* TO 'salt_minion'@'%' IDENTIFIED BY PASSWORD 'salt_minion_password'; GRANT ALL PRIVILEGES ON `salt\_minion`.* TO 'salt_minion'@'%' WITH GRANT OPTION;
Copy the contents of
/srv directory to the
/srv directory on your SaltStack master. You may want to exclude the
top.sls files from the
salt directories as these are just examples that show how to include the required files.
Create a directory to store the runner on the SaltMaster:
mkdir -p /var/lib/salt/runners
runners/inventory.ini into the directory. Note: change the MySQL variables to match the credentials that you used when creating the database above in
/etc/salt/master to enable the runner, presence events and reactors for responding to events:
extension_modules: /var/lib/salt presence_events: True reactor: - 'salt/presence/present': - /srv/reactor/inventory/present.sls - 'inventory/audit': - /srv/reactor/inventory/audit.sls
By default minions will run audit themselves once every six hours. This can be changed by editing
Now restart the SaltMaster:
systemctl restart salt-master
Copy the contents of the
html directory to a directory on your web server that is being served, e.g.
Create a file in the
common folder called dbcreds.php with the following contents (adjusted to match your MySQL database settings):
<?php define("DB_HOST", "localhost"); define("DB_NAME", "salt_minion"); define("DB_PASS", "salt_minion_password"); define("DB_USER", "salt_minion"); ?>
To force a minion to run an audit, run the following command:
salt minion01 inventory.audit force=True
If you experience problems then check the following files:
Check the events that are being triggered and the results by watching for events on the Salt master:
salt-run state.event pretty=True
inventory.audit function in debug mode:
salt -l debug '*' inventory.audit force=True
To test which minions have been detected by presence events:
A Docker compose configuration is provided for testing purposes. See tests for further details.
The following people have contributed code to the project: