Jump to: navigation, search

Difference between revisions of "Satori"

(Satori Resources)
m (Getting Started)
 
(11 intermediate revisions by 5 users not shown)
Line 4: Line 4:
  
 
__TOC__
 
__TOC__
 +
 +
== Quick overview ==
 +
* Source code https://github.com/stackforge/satori
 +
* Feature tracker https://blueprints.launchpad.net/satori
 +
* Bug tracker https://bugs.launchpad.net/satori/
 +
* Developer doc http://satori.readthedocs.org/en/latest/
  
 
== Use Cases ==
 
== Use Cases ==
Line 20: Line 26:
 
The project will begin with a simple command-line tool so that new users can discover a configuration without needing to setup additional infrastructure. A mockup for the output is listed below:
 
The project will begin with a simple command-line tool so that new users can discover a configuration without needing to setup additional infrastructure. A mockup for the output is listed below:
  
  $ satori discover www.foo.com
+
  $ satori www.foo.com
 +
 
 +
Address:
 +
    www.foo.com resolves to IPv4 address 4.4.4.4
 
  Domain: foo.com
 
  Domain: foo.com
 
     Registered at TUCOWS DOMAINS INC.
 
     Registered at TUCOWS DOMAINS INC.
Line 26: Line 35:
 
     Name servers:
 
     Name servers:
 
         DNS1.STABLETRANSIT.COM
 
         DNS1.STABLETRANSIT.COM
         DNS2.STABLETRANSIT.COM  
+
         DNS2.STABLETRANSIT.COM
Address:
 
    www.foo.com resolves to IPv4 address 4.4.4.4
 
 
  Host:
 
  Host:
 
     4.4.4.4 (www.foo.com) is hosted on a Nova Instance
 
     4.4.4.4 (www.foo.com) is hosted on a Nova Instance
Line 75: Line 82:
 
* [https://launchpad.net/satori Satori on LaunchPad] (Blueprints, and bugs)
 
* [https://launchpad.net/satori Satori on LaunchPad] (Blueprints, and bugs)
 
* [https://launchpad.net/~satori-drivers The Team (Join us!)]
 
* [https://launchpad.net/~satori-drivers The Team (Join us!)]
* [https://github.com/rackerlabs/satori Source Code] (to be moved to Stackforge soon)
+
* [https://github.com/stackforge/satori Source Code]
* IRC: <code>#satori</code> on [http://freenode.net/ Freenode] for development discussion.
+
* [https://wiki.openstack.org/wiki/Satori/glossary Glossary]
 +
* IRC: <code>#openstack-satori</code> on [http://freenode.net/ Freenode] for development discussion.
 +
* [[Meetings/Satori|Weekly meeting schedule]], [[Satori/MeetingLogs|Previous meetings]]

Latest revision as of 15:25, 18 March 2014

OpenStack Configuration Discovery

The charter for the project is focused narrowly on discovering pre-existing infrastructure and installed or running software. For example, given a URL and some credentials, discover which server(s) the URL is hosted on, the topology of the infrastructure and what software is running on each server, as well as, pertinent settings for commonly encountered software like apache, varnish, and mysql.

Quick overview

Use Cases

We expect that the output of a configuration discovery tool could be used for:

  • Troubleshooting unfamiliar environments
  • Configuration analysis (compare the discovered state vs a library of best practices)
  • System State Verification
  • Detecting configuration changes over time
  • Heat Template generation
  • Solum Application creation/import
  • Creation of Chef recipes/cookbooks, Puppet modules, Ansible playbooks, setup scripts, etc.

Getting Started

The project will begin with a simple command-line tool so that new users can discover a configuration without needing to setup additional infrastructure. A mockup for the output is listed below:

$ satori www.foo.com
Address:
   www.foo.com resolves to IPv4 address 4.4.4.4
Domain: foo.com
   Registered at TUCOWS DOMAINS INC.
   Expires in 475 days.
   Name servers:
       DNS1.STABLETRANSIT.COM
       DNS2.STABLETRANSIT.COM
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-f767-414
            1-95a4-d4dbf452363a
       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
   System Information:
       Ubuntu 12.04 installed
       Server was rebooted 11 days, 22 hours ago
       /dev/xvda1 is using 9% of its inodes.
   Running Services:
       httpd on 127.0.0.1:8080
       varnishd on 0.0.0.0:80
       sshd on 0.0.0.0:22
   httpd:
       Using 7 of 100 MaxClients

Initial Design Ideas

Though not yet proposed in Blueprints, these are some of the initial thoughts for the project to help guide discussion:

  • A pluggable implementation to allow discovering:
    • OpenStack infrastructure (instances, networks, et al.)
    • Non-OpenStack Infrastructure (APIs for other clouds, nodes in a Chef server, vendor management interfaces)
    • External infrastructure: DNS ownership and configuration, SSL Certificate validity, etc.
    • Operating system and application configuration (See: Related Work)
    • Runtime information such as active processes and connections between systems.
  • An API service for tenants to make discovery requests.
  • A backend datastore to record the results of discoveries.

Related Work

  1. Ohai
  2. Facter
  3. Ansible facts.d/setup
  4. Devstructure Blueprint

Satori Resources