<commit_before>## Tyr

Tyr is a Python library used internally at Hudl to automate the task of spinning
up individual servers as well as different types of clusters.

To do this, it interacts with [Amazon Web Servers](https://aws.amazon.com) and
[Chef Server](https://www.chef.io/).

## Installation

```
$ git clone <EMAIL>@github.com:hudl/Tyr.git
$ cd Tyr
$ python setup.py install
```

__Following best practices, this should be performed inside a
[virtualenv](https://github.com/pypa/virtualenv).__

## Dependencies

At this point, the only dependencies are

- [boto](https://github.com/boto/boto)
- [PyChef](https://github.com/coderanger/pychef)
- [paramiko](http://www.paramiko.org/)
- [click](http://click.pocoo.org)
- [requests](http://docs.python-requests.org/en/latest/)
- [PyYAML](http://pyyaml.org)

These are specified in the `setup.py` file and will automatically be installed.

## Usage

Ideally, the usage of each server and cluster type should be documented.
However, here's a quick sample. We're going to spin up a MongoDB data node.

``` python
from tyr.servers.mongo import MongoDataNode
node = MongoDataNode(cluster='monolith-mongo')
node.autorun()
```<commit_msg>Changed cluster to group in the code sample<commit_after>## Tyr

Tyr is a Python library used internally at Hudl to automate the task of spinning
up individual servers as well as different types of clusters.

To do this, it interacts with [Amazon Web Servers](https://aws.amazon.com) and
[Chef Server](https://www.chef.io/).

## Installation

```
$ git clone <EMAIL>:hudl/Tyr.git
$ cd Tyr
$ python setup.py install
```

__Following best practices, this should be performed inside a
[virtualenv](https://github.com/pypa/virtualenv).__

## Dependencies

At this point, the only dependencies are

- [boto](https://github.com/boto/boto)
- [PyChef](https://github.com/coderanger/pychef)
- [paramiko](http://www.paramiko.org/)
- [click](http://click.pocoo.org)
- [requests](http://docs.python-requests.org/en/latest/)
- [PyYAML](http://pyyaml.org)

These are specified in the `setup.py` file and will automatically be installed.

## Usage

Ideally, the usage of each server and cluster type should be documented.
However, here's a quick sample. We're going to spin up a MongoDB data node.

``` python
from tyr.servers.mongo import MongoDataNode
node = MongoDataNode(group='monolith')
node.autorun()
```
{'fraction_non_alphanumeric': 0.13145737085258294, 'fraction_numerical': 0.0, 'mean_word_length': 4.513888888888889, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 10, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6659039', 'n_tokens_mistral': 789, 'n_tokens_neox': 753, 'n_words': 245}