OpenStack Configuration Discovery¶
Satori is a configuration discovery tool for OpenStack and OpenStack tenant hosted applications.
Contributing¶
Satori’s code is hosted on GitHub. Our development process follows the OpenStack Gerrit workflow which is much different than most projects on Github.
If you find a problem, please file a bug. Feature additions and design discussions are taking place in blueprints. Reviewing code is an easy way to start contributing.
Release Notes¶
0.1.4 (20 Mar 2014)¶
- Data plane discovery (logs on to machines)
- Localhost discovery
- SSH module
- Templated output
- Bug fixes
0.1.3 (18 Feb 2014)¶
- Bug fixes
- DNS added among other things
0.1.0 (28 Jan 2014)¶
- Project setup
Terminology¶
Opinions¶
Opinions are being discussed at https://wiki.openstack.org/wiki/Satori/OpinionsProposal.
Control Plane Discovery¶
Control plane discovery is the process of making API calls to management systems like OpenStack or IT asset management systems. An external management system can show relationships between resources that can further improve the discovery process. For example, a data plane discovery of a single server will reveal that a server has a storage device attached to it. Control plane discovery using an OpenStack plugin can reveal the details of the Cinder volume.
Satori can load plugins that enable these systems to be queried.
Data Plane Discovery¶
Data plane discovery is the process of connecting to a resource and using native tools to extract information. For example, it can provide information about the user list, installed software and processes that are running.
Satori can load plugins that enable data plane discovery.
Schema¶
The following list of fields describes the data returned from Satori.
Target¶
Target contains the address suplplied to run the discovery.
Found¶
All data items discovered are returned under the found key. Keys to resources discovered are also added under found, but the actual resources are stored under the resources key.
Resources¶
All resources (servers, load balancers, DNS domains, etc...) are stored under the resources key.
Each resource contains the following keys:
- key: a globally unique identifier for the resource (could be a URI)
- id: the id in the system that hosts the resource
- type: the resource type using Heat or Heat-like resource types
- data: any additional fields for that resource
Get Satori¶
Satori is distributed as a Python package. The pip command will install the latest version.
$ pip install satori
If you want to install from the latest source code, these commands will fetch the code and install it.
$ git clone https://github.com/stackforge/satori.git
$ cd satori
$ pip install -r requirements.txt
$ sudo python setup.py install
Use Satori¶
$ satori www.foo.com
Domain: foo.com
Registered at TUCOWS DOMAINS INC.
Expires in 475 days.
Name servers:
DNS1.STABLETRANSIT.COM
DNS2.STABLETRANSIT.COM
Address:
www.foo.com resolves to IPv4 address 4.4.4.4
Host:
4.4.4.4 (www.foo.com) is hosted on a Nova Instance
Instance Information:
URI: https://nova.api.somecloud.com/v2/111222/servers/d9119040
Name: sampleserver01.foo.com
ID: d9119040-f767-4141-95a4-d4dbf452363a
ip-addresses:
public:
::ffff:404:404
4.4.4.4
private:
10.1.1.156
Listening Services:
0.0.0.0:6082 varnishd
127.0.0.1:8080 apache2
127.0.0.1:3306 mysqld
Talking to:
10.1.1.71 on 27017