2017-09-05 2 views
0

Je réapprends Chef (je l'ai fait pendant plus de 2 ans dans une vie antérieure), et pour aider, je suis en train d'installer une application LAMP sur une boîte Vagabond CentOS 7. Pour faire simple, tous mes livres de cuisine sont dans le même/path_to/répertoire des livres de cuisine, qui est,Comment exécuter Chefspec sur un livre de cuisine qui dépend d'un autre livre de cuisine?

/path_to/cookbooks/ 
------------------/my_mysql 
------------------/my_php 
------------------/my_apache 

Ils sont également dans le même référentiel chef-repo.git, encore une fois pour le garder simple. Autrement dit, lorsque je clone mon référentiel chef-repo.git, j'obtiens la structure de répertoire ci-dessus.

Le livre de cuisine de my_php dépend du livre de cuisine de my_apache, donc je cette ..

my_php:metadata.rb file 
depends 'my_apache' 

Pour que je puisse redémarrer le service httpd dans mon my_php: recette default.rb, comme celui-ci

file '/var/www/html/info.php' do 
    content " 
    <?php phpinfo(); 
    " 
    mode '0644' 
    owner 'root' 
    group 'root' 
    notifies :restart, 'service[httpd]', :immediately 
end 

Encore une fois, pour rester simple, je ne veux pas utiliser Berkshelf. Comment puis-je faire ce travail pour le livre de recettes my_php? C'est possible?

$ chef exec rspec --color spec/unit/recipes/default_spec.rb 

Si j'avais à faire cela avec Berkshelf, à quoi devrait ressembler mon Berksfile?

Répondre

0

Ok, je me souviens maintenant. En utilisant un Berksfile, je devais le faire. (Il revient lentement)

source 'https://supermarket.chef.io' 

cookbook 'cf_apache', '~> 0.1.0', github: "my_user/chef-repo", rel: 'cookbooks/cf_apache' 

Je suis maintenant capable de lancer mon chefpec, mais je vais devoir corriger les erreurs.