Setup a database server that runs multiple MySQL and PostgreSQL databases.
To install with Berkshelf, add this into Berksfile:
cookbook 'databox'
Add databox::default recipe into run list, or include the recipe in your code:
include_recipe "databox::default"
And overwrite attributes to customize the cookbook.
See also teohm/kitchen-sample for databox usage example with chef-solo.
You should set the database root password:
node["databox"]["db_root_password"](default:nil) - password string.- for MySQL, it overwrites the following passwords in
mysqlcookbook:node.set["mysql"]["server_root_password"]node.set["mysql"]["server_repl_password"]node.set["mysql"]["server_debian_password"]
- for PostgreSQL, it overwrites
postgresuser password inpostgresqlcookbook:node.set["postgresql"]["password"]["postgres"]
- for MySQL, it overwrites the following passwords in
To install MySQL, provide a list of database entries:
-
node["databox"]["databases"]["mysql"](default:[])# Example: node.set["databox"]["databases"]["mysql"] = [ { "database_name" => "app1_production", "username" => "app1", "password" => "app1_pass" } { "database_name" => "app2_production", "username" => "app2", "password" => "app2_pass", "encoding" => "UTF8", "collation" => "utf8_unicode_ci" } ]Each database entry may contain resource parameters specified in
databasecookbook:database_userresource parameters:- username
- password
- database_name
- connection
- privileges
- host
- table
databaseresource parameters needed by MySQL:- collation
- encoding
To install PostgreSQL, provide a list of database entries:
-
node["databox"]["databases"]["postgresql"](default:[])# Example: node.set["databox"]["databases"]["postgresql"] = [ { "database_name" => "app1_production", "username" => "app1", "password" => "app1_pass" } { "database_name" => "app2_production", "username" => "app2", "password" => "app2_pass", "encoding" => "UTF8", "collation" => en_US.utf8" } ]Each database entry may contain resource parameters specified in
databasecookbook:database_userresource parameters:- username
- password
- database_name
- connection
- privileges
- host
- table
databaseresource parameters:- template
- collation
- encoding
- tablespace
- connection_limit
- owner
databox::default- run all recipes.databox::mysql- install MySQL and create MySQL databases.databox::postgresql- install PostgreSQL and create PostgreSQL databases.
ubuntu- tested on Ubuntu 12.10debian- should work
Pull requests, issue and test reports are welcomed to better support your platform.
- Depends on these cookbooks:
- mysql
- postgresql
- database
See CHANGELOG.
- Author:: Moshe Katz [email protected]
- Original Author:: Huiming Teo [email protected]
Copyright 2013, Huiming Teo Copyright 2015, Moshe Katz
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.