4.1 Importers

We've implemented a handful of importers to import data from sources like GitHub, Chef server and LDAP servers (e.g., Active Directory) into Seiso. We typically invoke these from scheduled jobs (cron, Jenkins, Bamboo, etc.), though we have (currently unreleased) real-time syncs as well.

Seiso sync processes
Figure 4.1. Seiso sync processes use importers to create either batch or real-time data syncs.

Over time we expect to expand the number of importers available, and we certainly welcome contributions.

4.1.1 seiso-import-master

The master importer allows you to import "master files" into Seiso. This is nice when you want to version control your data, which for coarse-grained data (services, service instances, environments and so on) we recommend that you do. Put your master files into GitHub (or whatever) and tell your CI tool to run the import when somebody checks in a change.

We support both JSON and YAML formats for the master files. The default is JSON.

Here's how to use seiso-import-master.

Step 1. Install the seiso-import_master gem:

$ gem install seiso-import_master

Step 2. Create a ~/.seiso-importers directory, and add an appropriate seiso.yml configuration file based on the sample here.

Step 3. Import your master file like this if you're using the JSON format:

$ seiso-import-master ./service-instances.json

Alternatively, if you're using YAML, do this:

$ seiso-import-master -f yaml ./service-instances.yml

Note that you can also import multiple master files at once:

$ seiso-import-master *.json

4.1.2 seiso-import-chef

The Chef importer grabs Chef nodes from a Chef server instance and then pushes them into Seiso as machine data.

What Chef calls nodes and Amazon calls instances, Seiso calls machines. There's no single standard terminology here, so we tried to pick something intuitive.

Typically you would run seiso-import-chef as a scheduled job, though there might be a nice way to run it (or something similar) in an event-driven fashion instead.

Here's how to set it up.

Step 1. Install the seiso-import_chef gem:

$ gem install seiso-import_chef

Step 2. Create a ~/.seiso-importers directory, and add appropriate chef.yml and seiso.yml configuration files based on the samples here.

Step 3. Run the importer:

$ seiso-import-chef

This will kick off the import process. Depending on how many nodes your Chef server has, this may take a while. (We'll probably parallelize this importer in the future.)

4.1.3 seiso-import-ldap

Forthcoming. Stay tuned.

4.1.4 seiso-import-netscaler

Forthcoming. Stay tuned.