Ceci est probablement une question ruby débutant. J'ai plusieurs bibliothèques et applications que j'ai besoin de déployer sur plusieurs hôtes différents. Toutes les applications et toutes les bibliothèques partagent des paramètres communs pour ces hôtes, par exemple. le nom d'hôte, base de données serveur/utilisateur/pass, etc.Capistrano: comment inclure les paramètres communs dans plusieurs fichiers deploy.rb de projet
Mon but est de faire quelque chose comme:
cap host1 stage deploy
cap host2 stage deploy
cap host1 prod deploy
# ...
Ma question est de savoir comment inclure ces paramètres communs dans tous vos fichiers deploy.rb? Plus précisément, je veux créer un fichier rb que je peux inclure qui a des paramètres communs et plusieurs définitions de tâches spécifiques d'accueil:
set :use_sudo, false
# set some other options
task :host1 do
role :app, "host1.example.com"
role :web, "host1.example.com"
role :db, "host1.example.com", :primary => true
set :rodb_host, "dbhost"
set :rodb_user, "user"
set :rodb_pass, "pass"
set :rodb_name, "db"
end
task :host2 do
#...
end
deploy.task :carsala do
transaction do
setup
update_code
symlink
end
end
Et puis « inclure » ce fichier dans tous mes fichiers deploy.rb où Je définis l'étape, prod, etc et écrase tous les paramètres de configuration "communs" si nécessaire. Toute suggestion serait appréciée. J'ai essayé quelques choses différentes, mais je reçois des erreurs de la part de tous.
Edit: J'ai essayé
require 'my_module'
Mais je reçois des erreurs qui se plaignent d'un objet de tâche non définie.
J'ai essayé ceci, mais je reçois des erreurs en me plaignant que l'objet de tâche n'est pas défini. Avez-vous besoin de quelque chose au sommet de 'my_extension'? – drsnyder