Comment convertir les commandes shell suivantes dans une recette de chef?
-
28-10-2019 - |
Question
Comment puis-je convertir les commandes shell suivantes dans une recette de chef?
<₹Install
sudo easy_install pygments
sudo echo 'export RAILS_ENV=production' >> ~/.bash_profile
sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git
ssh-keygen -t rsa
sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
echo "gem: --no-rdoc --no-ri" > ~/.gemrc
rvmsudo gem install passenger
rvmsudo passenger-install-nginx-module
Création d'un fichier Upstart pour nginx
sudo vim /etc/init/nginx.conf
description "Nginx HTTP Server"
start on filesystem
stop on runlevel [!2345]
respawn
exec /opt/nginx/sbin/nginx -g "daemon off;"
Redémarrez la VM
sudo shutdown -r now
Vérifier l'exécution de nginx
sudo initctl list | grep nginx
La solution
Ce n'est pas forcément la manière parfaite de le faire, mais cela devrait fonctionner (note que je n'ai pas testé).
Dans les métadonnées de votre livre de recettes, assurez-vous d'abord que vous avez ceci:
depends "python"
alors votre recette peut ressembler à ceci:
pip_package "pygments"
execute "echo 'export RAILS_ENV=production' >> ~/.bash_profile" do
not_if "grep RAILS_ENV ~/.bash_profile"
end
user "git" do
system True
end
execute "ssh-keygen -N '' -f ~/.ssh/id_rsa"
user "git"
not_if "test -f /home/git/.ssh/id_rsa"
end
execute "gitosis-init < ~/.ssh/id_rsa.pub && chmod 755 ~/repositories/gitosis-admin.git/hooks/postupdate"
#not sure how do check if this has been run, maybe this is right:
not_if "test -f /home/git/repositories/gitosis-admin.git/hooks/post-update"
end
gem_package "passenger" do
action :install
end
#Instead of creating your own upstart service, why not use the stock nginx config.
include_recipe "nginx"
execute "passenger-install-nginx-module" do
#I'm not familiar with this, so I don't know how to check if it's already been run.
notifies :restart, "service[nginx]"
end
la plupart de ces informations devraient être assez accessibles à partir de la documentation du chef, btw.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow