Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jjasghar/devstack-cookbook

A chef wrapper to install devstack
https://github.com/jjasghar/devstack-cookbook

Last synced: 26 days ago
JSON representation

A chef wrapper to install devstack

Awesome Lists containing this project

README

        

# devstack cookbook

A cookbook to install [devstack](http://docs.openstack.org/developer/devstack/)

## Requirements

### Cookbooks
- [apt](https://supermarket.chef.io/cookbooks/apt)
- [git](https://supermarket.chef.io/cookbooks/git)
- [sudo](https://supermarket.chef.io/cookbooks/sudo)

### Operating Systems
- Centos 7
- Ubuntu 14.04

## Attributes

`devstack::default`

| Key | Type | Description | Default |
|-------------------------------------|---------|--------------------------------------------|-----------------|
| `['devstack']['host-ip']` | String | The host/ip to bind the stack to | `198.101.10.10` |
| `['devstack']['database-password']` | String | The password for the DevStack database | `ostackdemo` |
| `['devstack']['rabbit-password']` | String | The password for tde rabbit service | `ostackdemo` |
| `['devstack']['service-token']` | String | The token for the DevStack service user | `token` |
| `['devstack']['service-password']` | String | The password for the DevStack service user | `ostackdemo` |
| `['devstack']['admin-password']` | String | The password for the DevStack admin user | `ostackdemo` |
| `['devstack']['dest']` | String | The directory to install DevStack | `/opt/stack` |
| `['devstack']['pip-timeout']` | Integer | The default time out for pip | `1000` |

## Usage

## Generic

Just include `devstack` in your node's `run_list`:

```json
{
"name":"my_node",
"run_list": [
"recipe[devstack]"
]
}
```

### Local Testing

There is also [test-kitchen](https://github.com/test-kitchen/test-kitchen) support for this cookbook. You can run:

```bash
$ chef exec kitchen verify
```

And it'll build it via vagrant on your local machine. There are [serverspec](http://serverspec.org) tests also attached to verify devstack
is built correctly. You'll notice that it stops outputting at `Recipe: devstack::stack`, it's running the `stack.sh` behind the scenes,
it averages 30ish mins on my MacBook Pro.

You can login to the devstack instance via:

```bash
$ chef exec kitchen login
vagrant@ $ cd /opt/stack/devstack/
vagrant@:/opt/stack/devstack/ $ source openrc
vagrant@:/opt/stack/devstack/ $ nova list
vagrant@:/opt/stack/devstack/ $ nova boot test --image cirros-0.3.4-x86_64-uec --flavor 1
```

If you haven't changed any variables and usernames/passwords, you can go to http://localhost:8080 and use `demo/devstack` and see
the dashboard.

## TODO

NOTE: Not in order of priority.

- travis testing
- Rakefile and rake commands
- chefspec for the different resources
- more serverspec tests
- [neutron](http://docs.openstack.org/developer/devstack/guides/neutron.html) support
- [multi-node lab](http://docs.openstack.org/developer/devstack/guides/multinode-lab.html) support

## Contributing

1. Fork the repository on Github
2. Create a named feature branch (like `add_component_x`)
3. Write your change
4. Write tests for your change (if applicable)
5. Run the tests, ensuring they all pass
6. Submit a Pull Request using Github

## License and Authors

Apache 2

Author: Cameron Lopez
Author: JJ Asghar ([email protected])