Après, vous devriez avoir les cookbooks comme ca:
Créer Virtual Box pour chef
Nous allons créer une machine virtuelle. Créez un dossier pour le machine virtuelle et Vagrant. Et exécutez ces commandes dans l'invite de commandes. (Pas dans Powershell)
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant init bento/centos-7.3
vagrant init bento/centos-7.3
Changez le fichier "Vagrantfile" et utiliser le "private network".
Et démarrez la machine virtuelle.
vagrant up
S'assurer qu'il y a un dossier .ssh dans C:\Users\John. Si il n'y en a pas, créez le dossier comme ça:
cd C:\Users\John
mkdir .ssh
mkdir .ssh
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant ssh-config --host CentOsChef >> %USERPROFILE%/.ssh/config
"CentOsChef" est le nom de votre machine virtuelle. "ssh-config" commande est pour créer un fichier de configuration et pouvoir connecter la machine virtuelle facilement.vagrant ssh-config --host CentOsChef >> %USERPROFILE%/.ssh/config
Ensuite, dans Powershell, créez cookbooks:
cd C:\Users\John\Documents\chef
chef generate cookbook cookbooks/app_httpd
chef generate cookbook cookbooks/app_mysql_server
chef generate cookbook cookbooks/app_php71u
chef generate cookbook cookbooks/app_php71u_mysqlnd
chef generate cookbook cookbooks/app_httpd
chef generate cookbook cookbooks/app_mysql_server
chef generate cookbook cookbooks/app_php71u
chef generate cookbook cookbooks/app_php71u_mysqlnd
Créer un cookbook pour laravel
Ouvrez Powershell (ChefDK) et aller au dossier de Chef:
cd C:\Users\John\Documents\chef
Créez un cookbook pour laravel environment.
chef generate cookbook cookbooks/proj_laravel
Mettre la machine virtuelle à jour
Créez un cookbook pour mettre la machine virtuelle à jour:
chef generate cookbook cookbooks/vagrant_update
Ajoutez depends 'yum-ius' dans chef\cookbooks\vagrant_update\metadata.rb.
Ajoutez cookbook 'yum-ius' dans chef\cookbooks\vagrant_update\Berksfile.
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\vagrant_update\recipes\default.rb:
include_recipe 'yum-ius'
package ['kernel-devel', 'kernel-headers', 'dkms', 'gcc', 'gcc-c++'] do
action :install
end
package 'kernel' do
action :upgrade
end
package ['kernel-devel', 'kernel-headers', 'dkms', 'gcc', 'gcc-c++'] do
action :install
end
package 'kernel' do
action :upgrade
end
Mettre le cookbook de laravel à jour
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\Berksfile
apps_path = 'C:/Users/Shu/Documents/chef/cookbooks/'
cookbook 'vagrant_update', path: apps_path + 'vagrant_update'
cookbook 'app_httpd', path: apps_path + 'app_httpd'
cookbook 'app_mysql_server', path: apps_path + 'app_mysql_server'
cookbook 'app_php71u', path: apps_path + 'app_php71u'
cookbook 'app_php71u_mysqlnd', path: apps_path + 'app_php71u_mysqlnd'
cookbook 'vagrant_update', path: apps_path + 'vagrant_update'
cookbook 'app_httpd', path: apps_path + 'app_httpd'
cookbook 'app_mysql_server', path: apps_path + 'app_mysql_server'
cookbook 'app_php71u', path: apps_path + 'app_php71u'
cookbook 'app_php71u_mysqlnd', path: apps_path + 'app_php71u_mysqlnd'
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\metadata.rb
depends 'vagrant_update'
depends 'app_httpd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'
depends 'app_httpd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\proj_laravel\recipes\default.rb
include_recipe 'vagrant_update'
include_recipe 'app_httpd'
include_recipe 'app_mysql_server'
include_recipe 'app_php71u'
include_recipe 'app_php71u_mysqlnd'
service 'httpd' do
action :restart
end
service 'mysqld' do
action :restart
end
bash 'install_composer' do
code <<-EOH
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
EOH
end
bash 'laravel_install' do
code <<-EOH
cd /vagrant
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer create-project --prefer-dist laravel/laravel laravel
EOH
end
bash 'set_permission' do
code <<-EOH
chmod -R 777 /vagrant/laravel/storage
EOH
end
ruby_block "httpd conf replace to make allowOverride all" do
block do
fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
fe.search_file_replace(/\<Directory \"\/var\/www\/html\"\>[\s\S\n]*?\<\/Directory\>/,
"<Directory \"/var/www/html\" />Options FollowSymLinks\nAllowOverride All\nRequire all granted\n</Directory>")
fe.write_file
end
end
ruby_block "httpd conf replace to change document root" do
block do
fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
fe.search_file_replace(/DocumentRoot \"\/var\/www\/html\"/,
"DocumentRoot \"/var/www/html/laravel/public\"")
fe.write_file
end
end
service 'httpd' do
action :restart
end
service 'mysqld' do
action :restart
end
include_recipe 'app_httpd'
include_recipe 'app_mysql_server'
include_recipe 'app_php71u'
include_recipe 'app_php71u_mysqlnd'
service 'httpd' do
action :restart
end
service 'mysqld' do
action :restart
end
bash 'install_composer' do
code <<-EOH
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
EOH
end
bash 'laravel_install' do
code <<-EOH
cd /vagrant
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer create-project --prefer-dist laravel/laravel laravel
EOH
end
bash 'set_permission' do
code <<-EOH
chmod -R 777 /vagrant/laravel/storage
EOH
end
ruby_block "httpd conf replace to make allowOverride all" do
block do
fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
fe.search_file_replace(/\<Directory \"\/var\/www\/html\"\>[\s\S\n]*?\<\/Directory\>/,
"<Directory \"/var/www/html\" />Options FollowSymLinks\nAllowOverride All\nRequire all granted\n</Directory>")
fe.write_file
end
end
ruby_block "httpd conf replace to change document root" do
block do
fe = Chef::Util::FileEdit.new("/etc/httpd/conf/httpd.conf")
fe.search_file_replace(/DocumentRoot \"\/var\/www\/html\"/,
"DocumentRoot \"/var/www/html/laravel/public\"")
fe.write_file
end
end
service 'httpd' do
action :restart
end
service 'mysqld' do
action :restart
end
Mettez les fichiers de Chef dans Powershell (ChefDK).
berks vendor -b cookbooks/proj_cake3/Berksfile --delete
Exécutez la commande ci-dessous et créer Laravel environment.
knife zero bootstrap CentOsChef -N chef_laravel -z -r 'recipe[proj_laravel]' --sudo
Attendez jusqu'à vous voyez le résultat dans Powershell (ChefDK)....
Après, vous pouvez aller à http://192.168.33.10/ et voir la page de laravel.
Aucun commentaire:
Enregistrer un commentaire