Installer gemme mysql Utiliser B. chef-client?

J'essaie de déployer l'application rails par chef, Pour Cookbook mysql Pour créer une base de données requise

mysql

Gemme. DANS

mysql

gem Installé dans le système à l'aide d'un package Ubuntu, mais il ne peut pas être utilisé

chef-client

qui court OT

/opt/chef/embedded

.

J'ai essayé de l'ajouter:

chef_gem 'mysql' do
action :nothing
end.run_action(:install)

Mais pour cela requis

libmysqlclient-dev

Paquet Ubuntu pour l'installation. Par conséquent, je l'ai également ajouté avant le précédent:

package 'libmysqlclient-dev' do
action :nothing
end.run_action(:install)

Mais cela se fait avant

apt

recipe Mise à jour des référentiels apt, Et donc l'installation

libmysqlclient-dev

Retomber.

Ces "hacks" ont l'air moche et je ne trouve pas un moyen de courir

apt-get update

au bon moment.

Quelqu'un peut-il m'aider à trouver le droit (Le plus similaire au cuisinier) Le moyen de résoudre mon problème (Problème réel consiste à créer une base de données en utilisant

application

livre de recettes)?

Rafraîchir

J'ai pu résoudre le problème avec cette recette comme un piratage laid ... Je cherche toujours la meilleure solution:

execute "apt-get update" do
ignore_failure true
action :nothing
end.run_action(:run)

node.set['build_essential']['compiletime'] = true
include_recipe "build-essential"

%w{build-essential mysql-client libmysqlclient-dev}.each do |p|
package p do
action :nothing
end.run_action(:install)
end

chef_gem 'mysql' do
action :nothing
end.run_action(:install)
Invité:

Catherine

Confirmation de:

DANS

mysql::ruby

La recette vous permet d'installer des packages à travers

node["mysql"]["client"]["packages"]

:

Par conséquent, activez-la à votre liste d'exécution:

run_list(
#...
"recipe[mysql::ruby]",
#...
)

Et spécifiez vos dépendances dans les attributs:

# this is needed for debian based systems
node["mysql"]["client"]["packages"] = ["build-essential","mysql-client","libmysqlclient-dev"]

Dominique

Confirmation de:

En fait, aucune connexion entre le système de gestion des packages Debian Et ourlet, donc la réponse est probablement comme ceci:

package "libmysqlclient-dev" do
action :install
end

gem_package "mysql" do
action :install
end

(The

chef_gem

La ressource définit vraiment un joyau, mais il est destiné uniquement à l'installation de pierres précieuses à utiliser dans la recette. Chef. Voir tous les détails sanglants sur
http://wiki.opscode.com/display/chef/Resources
).

Conserver sous contrôle, je recommande d'utiliser
https://github.com/opscode-cookbooks/apt
Et ajouter

recipe[apt]

Au sommet de la liste de lancement pour tous les nœuds.

Pour répondre aux questions, connectez-vous ou registre