Настройка базы данных MySQL с пользователем с Vagrant и chef-solo

Я пытаюсь автоматизировать настройку разработчика в проекте, чтобы новый разработчик мог просто выполнить vagrant up, чтобы получить виртуальную машину с MySQL и Tomcat с развернутым и работающим настраиваемым военным файлом. Развернутая война предполагает, что конкретная база данных и пользователь присутствуют в экземпляре MySQL.

Теперь я использую chef-solo, и все загружается и устанавливается правильно. Однако я не могу понять, как написать кулинарную книгу для настройки базы данных и пользователя. Я просмотрел поваренную книгу database, но, похоже, она не подходит для моего варианта использования с chef-solo. Мне не удалось найти в Интернете пример настройки, которая настраивает базу данных для экземпляра chef-solo, но, может быть, я ищу неправильные термины?

Я мог бы написать сценарий bash для настройки базы данных и пользователя (при условии, что они не существуют), но это, похоже, не вписывается в философию поваренной книги. Как бы вы решили эту проблему?


person Thomas    schedule 21.06.2012    source источник


Ответы (2)


Для соло шеф-повара вам нужно будет выполнить некоторые настройки. Вы уже это сделали? Конфигурации, о которых я говорю, находятся здесь. На той же странице также представлена ​​небольшая демонстрация как настроить и запустить поваренную книгу, после чего вы сможете:

Поваренная книга для MySQL находится здесь Поваренная книга для Tomcat находится здесь

Другие кулинарные книги можно найти здесь

Это самое близкое, что я могу получить на основе предоставленных вами данных. После того, как вы настроите это и настроите материал, если вы столкнетесь с ошибками, опубликуйте их. И, надеюсь, я был полезен :)

Я бы сначала настроил Chef Solo, а затем поместил Cookbooks в один из настроенных каталогов.

person Vishal Biyani    schedule 22.06.2012
comment
У меня уже есть полная установка chef-solo, которая устанавливает tomcat, копирует мою войну, устанавливает MySQL и т. д. В настоящее время я сделал собственную кулинарную книгу, которая просто использует bash для создания базы данных, но я не решаюсь использовать bash для настройки пользовательский пользователь и т. д. Вот текущий рецепт, который я написал для создания базы данных: bash Попытка создать базу данных 'foo' do code ‹‹-EOM mysql -uroot -e 'создать базу данных, если не существует foo' EOM - person Thomas; 24.06.2012
comment
Да, но если вы загрузите рецепты с веб-сайта Chef, они будут рубиновыми скриптами. Или вы ищете что-то другое? - person Vishal Biyani; 24.06.2012
comment
У меня есть все рецепты, которые мне нужны для настройки образа с помощью MySQL и друзей. Моя проблема заключается в настройке MySQL после этого. Мне нужно добавить пользователя и базу данных на сервер. Я знаю, как написать свой собственный рецепт для этого, взломав bash, но это не кажется идиоматическим способом сделать это. Я пытаюсь выяснить, можно ли использовать рецепт database для повара-соло для решения моего варианта использования. Боюсь, мой первоначальный вопрос был недостаточно ясен. Имеет ли это смысл? - person Thomas; 24.06.2012
comment
Теперь понял абсолютно! Итак, создание пользователя БД в вашей БД MySQL — это то, чего вы хотите достичь? Пока ваш скрипт идемпотентный, они должны быть в порядке. Я немного осмотрелся и не уверен, что нашел то, что вам нужно: gist.github.com/769365 но я бы предложил написать рубиновый или, в крайнем случае, сценарий оболочки, который является идемпотентным при создании БД и пользователей внутри нее. - person Vishal Biyani; 24.06.2012
comment
Да! Это было что-то вроде этого, которое я искал, хотя я надеялся, что смогу использовать для этого database поваренную книгу. Это неплохое решение, хотя было бы еще лучше, если бы кто-нибудь поместил его в настоящую поваренную книгу. Ну, вы не можете иметь все это. - person Thomas; 26.06.2012
comment
Может быть, вы можете создать хорошую ‹код›поваренную книгу‹/код› и зафиксировать в репозитории, и стать знаменитым за одну ночь (последняя часть — шутка :) - person Vishal Biyani; 27.06.2012

Да, вы можете сделать это как шеф-повар с database поваренной книгой:

include_recipe "database::mysql"

# create a mysql database
mysql_database 'sonar' do
  connection ({:host => "localhost", :username => 'root', :password => node['mysql']['server_root_password']})
  action :create
end

больше об этой кулинарной книге можно найти здесь: http://community.opscode.com/cookbooks/database

person Matthias B    schedule 13.12.2012