Setup a database server that runs multiple MySQL and PostgreSQL databases.
To install with Berkshelf, add this into Berksfile
:
cookbook 'cookbook_databox'
Add cookbook_databox::default
recipe into run list, or include the recipe in your code:
include_recipe "cookbook_databox::default"
And overwrite attributes to customize the cookbook.
See also teohm/kitchen-sample for cookbook_databox
usage example with chef-solo.
You should set the database root password:
node["cookbook_databox"]["db_root_password"]
(default:nil
) - password string.- for MySQL, it overwrites the following passwords in
mysql
cookbook:node.set["mysql"]["server_root_password"]
node.set["mysql"]["server_repl_password"]
node.set["mysql"]["server_debian_password"]
- for PostgreSQL, it overwrites
postgres
user password inpostgresql
cookbook:node.set["postgresql"]["password"]["postgres"]
- for MySQL, it overwrites the following passwords in
To install MySQL, provide a list of database entries:
-
node["cookbook_databox"]["databases"]["mysql"]
(default:[]
)# Example: node.set["cookbook_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
database
cookbook:database_user
resource parameters:- username
- password
- database_name
- connection
- privileges
- host
- table
database
resource parameters needed by MySQL:- collation
- encoding
To install PostgreSQL, provide a list of database entries:
-
node["cookbook_databox"]["databases"]["postgresql"]
(default:[]
)# Example: node.set["cookbook_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
database
cookbook:database_user
resource parameters:- username
- password
- database_name
- connection
- privileges
- host
- table
database
resource parameters:- template
- collation
- encoding
- tablespace
- connection_limit
- owner
cookbook_databox::default
- run all recipes.cookbook_databox::mysql
- install MySQL and create MySQL databases.cookbook_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:: Huiming Teo teohuiming@gmail.com
Copyright 2013, Huiming Teo
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.