Merge "Added Vagrant VM for development purposes."
This commit is contained in:
commit
8f10f872cc
1
.gitignore
vendored
1
.gitignore
vendored
@ -57,6 +57,7 @@ ChangeLog
|
||||
|
||||
# Local settings
|
||||
etc/storyboard.conf
|
||||
.vagrant
|
||||
|
||||
# IDE settings
|
||||
.idea
|
||||
|
22
Vagrantfile
vendored
Normal file
22
Vagrantfile
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
VAGRANTFILE_API_VERSION = "2"
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
config.vm.box = "trusty64"
|
||||
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
|
||||
|
||||
config.vm.network :forwarded_port, host_ip: '127.0.0.1', guest: 3306, host: 3306
|
||||
config.vm.network :forwarded_port, host_ip: '127.0.0.1', guest: 15672, host: 15672
|
||||
config.vm.network :forwarded_port, host_ip: '127.0.0.1', guest: 5672, host: 5672
|
||||
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.name = "storyboard_dev"
|
||||
end
|
||||
|
||||
config.vm.provision "shell", path: "vagrant/bootstrap.sh"
|
||||
|
||||
config.vm.provision :puppet do |puppet|
|
||||
puppet.manifests_path = "vagrant/puppet/manifests"
|
||||
puppet.manifest_file = "site.pp"
|
||||
puppet.options="--verbose --debug"
|
||||
end
|
||||
end
|
@ -5,6 +5,42 @@
|
||||
Storyboard has two components: this API server, and the
|
||||
Javascript-based web client.
|
||||
|
||||
Launching the development VM
|
||||
============================
|
||||
|
||||
StoryBoard has certain server dependencies which are often complicated to
|
||||
install on any development environment. To simplify this,
|
||||
we've provided a vagrantfile which includes all required services.
|
||||
|
||||
1. Install [vagrant](https://www.vagrantup.com/)
|
||||
2. Install [VirtualBox](https://www.virtualbox.org/)
|
||||
3. Run `vagrant up` in the storyboard root directory.
|
||||
|
||||
If you choose to go this route, the appropriate configuration values in
|
||||
`storyboard.conf` will be as follows::
|
||||
|
||||
...
|
||||
|
||||
[notifications]
|
||||
rabbit_host=127.0.0.1
|
||||
rabbit_login_method = AMQPLAIN
|
||||
rabbit_userid = storyboard
|
||||
rabbit_password = storyboard
|
||||
rabbit_port = 5672
|
||||
rabbit_virtual_host = /
|
||||
|
||||
...
|
||||
|
||||
[database]
|
||||
connection = mysql://storyboard:storyboard@127.0.0.1:3306/storyboard
|
||||
|
||||
...
|
||||
|
||||
Note that the VM will attempt to bind to local ports 3306, 5672,
|
||||
and 15672. If those ports are already in use, you will have to modify the
|
||||
vagrant file and your configuration to accommodate.
|
||||
|
||||
This VM has also been set up for unit tests.
|
||||
|
||||
Installing the API server
|
||||
=========================
|
||||
@ -22,7 +58,7 @@ Installing the API server
|
||||
cd storyboard
|
||||
|
||||
|
||||
3. Add MySQL user and create database::
|
||||
3. Add MySQL user and create database (not necessary if using VM)::
|
||||
|
||||
mysql -u $DB_USER -p$DB_PASSWORD -e 'DROP DATABASE IF EXISTS storyboard;'
|
||||
mysql -u $DB_USER -p$DB_PASSWORD -e 'CREATE DATABASE storyboard;'
|
||||
|
17
vagrant/bootstrap.sh
Normal file
17
vagrant/bootstrap.sh
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
apt-get update
|
||||
apt-get install puppet
|
||||
|
||||
if [ ! -d "/etc/puppet/modules/mysql" ]; then
|
||||
puppet module install puppetlabs-mysql --version 0.6.1
|
||||
fi
|
||||
|
||||
if [ ! -d "/etc/puppet/modules/rabbitmq" ]; then
|
||||
puppet module install puppetlabs-rabbitmq --version 4.1.0
|
||||
fi
|
||||
|
||||
if [ ! -d "/etc/puppet/modules/erlang" ]; then
|
||||
puppet module install garethr-erlang --version 0.3.0
|
||||
fi
|
||||
|
63
vagrant/puppet/manifests/site.pp
Normal file
63
vagrant/puppet/manifests/site.pp
Normal file
@ -0,0 +1,63 @@
|
||||
node default {
|
||||
$dev_user = 'storyboard'
|
||||
$dev_password = 'storyboard'
|
||||
|
||||
include 'erlang'
|
||||
package { 'erlang-base':
|
||||
ensure => 'latest',
|
||||
before => Class['rabbitmq']
|
||||
}
|
||||
|
||||
##########################################################
|
||||
##
|
||||
## RabbitMQ
|
||||
##
|
||||
class { 'rabbitmq':
|
||||
service_manage => true,
|
||||
manage_repos => false,
|
||||
delete_guest_user => true,
|
||||
default_user => $dev_user,
|
||||
default_pass => $dev_password,
|
||||
}
|
||||
|
||||
rabbitmq_user { $dev_user:
|
||||
ensure => present,
|
||||
admin => true,
|
||||
password => $dev_password,
|
||||
require => Class['rabbitmq']
|
||||
}
|
||||
|
||||
rabbitmq_user_permissions { "${dev_user}@/":
|
||||
configure_permission => '.*',
|
||||
read_permission => '.*',
|
||||
write_permission => '.*',
|
||||
require => Rabbitmq_user[$dev_user],
|
||||
}
|
||||
|
||||
##########################################################
|
||||
##
|
||||
## MySQL
|
||||
##
|
||||
class {'mysql::server':
|
||||
config_hash => {
|
||||
bind_address => '0.0.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
mysql::db { 'storyboard':
|
||||
user => $dev_user,
|
||||
password => $dev_password,
|
||||
host => '%',
|
||||
}
|
||||
|
||||
database_user{ 'openstack_citest@%':
|
||||
ensure => present,
|
||||
password_hash => mysql_password('openstack_citest'),
|
||||
require => Class['mysql::server'],
|
||||
}
|
||||
|
||||
database_grant{ 'openstack_citest@%/storyboard\_test\_db\_%':
|
||||
privileges => ['ALL'],
|
||||
require => Database_user['openstack_citest@%']
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user