This cookbook is for easy deployment of ganeti_webmgr. In particular it is aimed at deployment to Vagrant, but the end goal is to have a general cookbook that allows you to deploy GWM easily in any environment.
For testing you need the following gems:
test-kitchen
kitchen-vagrant
If you use berkshelf, you also will want to install the berkshelf
gem as well.
To install dependencies run 'bundle install' in the root of the directory.
Key | Type | Description | Default |
---|---|---|---|
['ganeti_webmgr']['path'] | String | Full path to the location you want GWM at | /var/lib/django/ganeti_webmgr |
['ganeti_webmgr']['owner'] | String | Owner of the project and its virtual environment | nil |
['ganeti_webmgr']['group'] | String | Group of the project and its virtualenv | nil |
['ganeti_webmgr']['repository'] | String | Git repository to clone GWM from | https://github.com/osuosl/ganeti_webmgr |
['ganeti_webmgr']['revision'] | String | What branch to checkout GWM on | develop |
['ganeti_webmgr']['packages'] | Array of strings | List of packages to install before setting up GWM | [] |
['ganeti_webmgr']['pip_packages'] | Array of strings | List of python packages to install before setting up GWM | [] |
['ganeti_webmgr']['virtualenv'] | String | Full path to where you want GWM to store its virtual environment | nil |
['ganeti_webmgr']['requirements'] | String | Relative path from ['ganeti_webmgr']['path'] to the requirements file containing pip packages to install GWM | nil |
['ganeti_webmgr']['debug'] | Boolean | Whether or not to set the Django debug mode on or off | false |
['ganeti_webmgr']['local_settings_file'] | String | Relative path from ['ganeti_webmgr']['path'] to Ganeti Web Managers settings file. | ganeti_webmgr/ganeti_web/settings/settings.py |
['ganeti_webmgr']['settings_template'] | String | Path to settings.py chef template. | settings.py.erb |
['ganeti_webmgr']['overwrite_settings'] | Boolean | Overwrite existing settings files if it exists when deploying | false |
['ganeti_webmgr']['migrate'] | Boolean | Whether or not to run database migrations | false |
['ganeti_webmgr']['settings'] | Hash | Additional settings to pass to ['ganeti_webmgr']['settings_template'] | {} |
['ganeti_webmgr']['manage_file'] | String | Relative path from ['ganeti_webmgr']['path'] to the GWM manage.py file | ganeti_webmgr/manage.py |
['ganeti_webmgr']['collectstatic_dir'] | String | Absolute path to where you want staticfiles to be collected to | ['ganeti_webmgr']['path']/collected_static |
['ganeti_webmgr']['database']['engine'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
['ganeti_webmgr']['database']['name'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
['ganeti_webmgr']['database']['user'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
['ganeti_webmgr']['database']['password'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
['ganeti_webmgr']['database']['host'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
['ganeti_webmgr']['database']['port'] | String | See https://docs.djangoproject.com/en/1.4/ref/settings/#databases | nil |
Key | Type | Description | Default |
---|---|---|---|
['ganeti_webmgr']['host'] | String | Host GWM is deployed on, for configuring http proxy | node['fqdn'] |
['ganeti_webmgr']['port'] | Integer | Port GWM is listening on, for configuring http proxy | 8000 |
['ganeti_webmgr']['http_proxy']['variant'] | String | Used to specify what to use as an http_proxy. Valid options are "nginx" | nil |
['ganeti_webmgr']['http_proxy']['host_name'] | String | Hostname of the http proxy | node['fqdn'] |
['ganeti_webmgr']['http_proxy']['host_aliases'] | List | List of hostname aliases | [] |
['ganeti_webmgr']['http_proxy']['listen_ports'] | List of integers | List of ports for the http proxy to listen on | [ 80 ] |
['ganeti_webmgr']['auth_proxy']['fqdn'] | String | Where the VNC Auth Proxy is running | node.fqdn |
['ganeti_webmgr']['auth_proxy']['port'] | int | Port VNC Auth Proxy is running on | 8888 |
['ganeti_webmgr']['admin_username'] | string | **Do not use in production.** Username of Django superuser to boostrap after deployment. | nil |
['ganeti_webmgr']['admin_password'] | string | **Do not use in production.** Password of Django superuser to boostrap after deployment. | nil |
['ganeti_webmgr']['admin_email'] | string | **Do not use in production.** Email of Django superuser to boostrap after deployment. | nil |
['ganeti_webmgr']['admin_email'] | string | **Do not use in production.** Email of Django superuser to boostrap after deployment. | nil |
['ganeti_webmgr']['hostsfile'] | Hash | A mapping of ips to hostnames to add to `/etc/hosts/` | {} |
Just include ganeti_webmgr
in your node's run_list
.
If you want to have it deploy with mysql and bootstrap a database for you use
ganeti_webmgr::mysql
:
{
"name":"my_node",
"run_list": [
"recipe[ganeti_webmgr]"
]
}
or
{
"name":"my_node",
"run_list": [
"recipe[ganeti_webmgr::mysql]"
]
}
Just include ganeti_webmgr::bootstrap_user
in addition to one of the previous
recipes in run_list
:
{
"name":"my_node",
"run_list": [
"recipe[ganeti_webmgr::default]"
"recipe[ganeti_webmgr::bootstrap_user]"
]
}
This recipe is used to add hostname aliases in /etc/hosts
. In the vagrant
environment, it defaults to adding hostnames to be used with [vagrant-
ganeti](https://github.com/osuosl /vagrant-ganeti).
Authors: Chance Zibolski [email protected]