https://downloads.chef.io/chefdk
Vous pouvez télécharger Chef pour Windows sur le site web:
Apres le téléchargement, démarrez Chef:
Et vous verrez Powershell de Windows:
Exécutez cette commande et appuyez sur la touche y du clavier:
Set-ExecutionPolicy RemoteSigned
Fermez ChefDK et le réouvrir.Créez un dossier pour Chef. Par exemple, C:\Users\John\Documents\chef.
Allez au dossier dans Powershell.
cd C:\Users\John\Documents\chef
Installez knife-zero:
gem install knife-zero
Créez un projet de Chef:
chef generate repo .
Les dossiers sont crées ainsi:
Supprimez le dossier d'exemple. Et créez "config.rb" un fichier de configuration.
rm -d -force -r cookbooks/example
rm -d -force -r data_bags/example
rm -force -r environments/example.json
rm -force -r roles/example.json
touch config.rb
rm -d -force -r data_bags/example
rm -force -r environments/example.json
rm -force -r roles/example.json
touch config.rb
Ajoutez "berks-cookbooks" dans le fichier ".gitignore". (n'importe où dans le fichier)
Ajoutez "cookbook_path ['berks-cookbooks']" dans le fichier "config.rb".
Créez un projet.
chef generate cookbook cookbooks/proj_lamp
Ensuite, on va créer un serveur virtuel. Créez un dossier d'un serveur virtuel et démarrer le serveur avec vagrant dans l'invite de commandes. (Pas Powershell maintenant)
(Si vous ne savez pas comment utiliser Vagrant)
cd C:\Users\John\Documents\vagrant\CentOsChef
vagrant init bento/centos-7.3
vagrant init bento/centos-7.3
Changez le fichier de Vagrantfile et utiliser private network.
Et démarrez le serveur virtuel.
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. La commande "ssh-config" est pour créer un fichier de configuration et pouvoir connecter la machine virtuelle facilement.vagrant ssh-config --host CentOsChef >> %USERPROFILE%/.ssh/config
Maintenant, 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
Installer httpd
Allez au dossier de cookbooks/app_httpd et ajouter cookbook 'yum-ius' dans chef/cookbook/app_httpd/Berksfile:
Ajoutez depends 'yum-ius' dans chef/cookbook/app_httpd/metadata.rb:
Ajoutez les lignes de codes ci-dessous dans chef/cookbook/app_httpd/recipes/default.rb
include_recipe 'yum-ius'
package 'httpd' do
action :install
end
bash 'link_html' do
code <<-EOH
sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html
EOH
end
service 'httpd' do
action [:enable, :start]
end
package 'httpd' do
action :install
end
bash 'link_html' do
code <<-EOH
sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html
EOH
end
service 'httpd' do
action [:enable, :start]
end
Installer MySQL
Maintenant, il faut ajouter cookbook 'yum-ius' dans chef\cookbooks\app_mysql_server\Berksfile.
Ajoutez depends 'yum-ius' dans chef\cookbooks\app_mysql_server\metadata.rb.
Ajoutez les lignes de code ci-dessous dans chef\cookbooks\app_mysql_server\default.rb :
include_recipe 'yum-ius'
package ['mariadb-server', 'mariadb-libs'] do
action :remove
end
bash 'wget_mysql' do
code <<-EOH
cd /vagrant
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
EOH
end
bash 'rpm_mysql57' do
code <<-EOH
cd /vagrant
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
EOH
end
package 'mysql-server' do
action :install
end
service 'mysqld' do
action [:enable, :start]
end
package ['mariadb-server', 'mariadb-libs'] do
action :remove
end
bash 'wget_mysql' do
code <<-EOH
cd /vagrant
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
EOH
end
bash 'rpm_mysql57' do
code <<-EOH
cd /vagrant
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
EOH
end
package 'mysql-server' do
action :install
end
service 'mysqld' do
action [:enable, :start]
end
Installer PHP
Maintenant, ajoutez cookbook 'yum-ius' dans chef\cookbooks\app_php71u\Berksfile.Ajoutez depends 'yum-ius' dans chef\cookbooks\app_php71u\metadata.rb.
Ajoutez les lignes de codes ci-dessous dans chef\cookbooks\app_php71u\recipes\default.rb.
include_recipe 'yum-ius'
package ['php', 'mod_php', 'php-common', 'php-cli', 'php-intl', 'php-json', 'php-mbstring', 'php-xml'] do
action :remove
end
# for any framework
package 'php71u'
package 'php71u-cli'
package 'php71u-intl'
package 'php71u-json'
package 'php71u-mbstring'
package 'php71u-xml'
package ['php', 'mod_php', 'php-common', 'php-cli', 'php-intl', 'php-json', 'php-mbstring', 'php-xml'] do
action :remove
end
# for any framework
package 'php71u'
package 'php71u-cli'
package 'php71u-intl'
package 'php71u-json'
package 'php71u-mbstring'
package 'php71u-xml'
Ajoutez cookbook 'yum-ius' dans chef\cookbooks\app_php71u_mysqlnd\Berksfile.
Ajoutez depends 'yum-ius' dans chef\cookbooks\app_php71u_mysqlnd\metadata.rb.
Ajoutez ci-dessous dans chef\cookbooks\app_php71u_mysqlnd\recipes\default.rb.
include_recipe 'yum-ius'
# libmysql is windows only
package ['php-mysql', 'php-mysqli', 'php-pdo', 'php-mysqlnd'] do
action :remove
end
# for any framework
package 'php71u-mysqlnd'
package 'php71u-pdo'
# libmysql is windows only
package ['php-mysql', 'php-mysqli', 'php-pdo', 'php-mysqlnd'] do
action :remove
end
# for any framework
package 'php71u-mysqlnd'
package 'php71u-pdo'
Mettre le projet à jour
Ajoutez les lignes de codes ci-dessous dans chef/cookbooks/proj_lamp/Berksfile
apps_path = 'C:/Users/John/Documents/chef/cookbooks/'
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 '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 le lignes de code ci-dessous dans chef/cookbooks/proj_lamp/metadata.rb
depends 'app_httpd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'
depends 'app_mysql_server'
depends 'app_php71u'
depends 'app_php71u_mysqlnd'
Ajoutez les lignes de code ci-dessous dans chef/cookbooks/proj_lamp/recipes/default.rb
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
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
Exécutez ces commandes et mettre le projet à jour:
berks update -b cookbooks/proj_lamp/Berksfile
berks vendor -b cookbooks/proj_lamp/Berksfile --delete
berks vendor -b cookbooks/proj_lamp/Berksfile --delete
Creez l'environment de PHP:
knife zero bootstrap CentOsChef -N chef_lamp -z -r 'recipe[proj_lamp]' --sudo
Et un serveur de PHP est créé automatiquement dans votre machine virtuelle.Si vous voulez exécuter knife zero bootstrap.... une nouvelle fois, s'assurer qu'il n'y a pas chef_lamp.json dans ces dossiers chef\clients et chef\nodes. S'il y a chef_lamp.json, knife zero bootstrap.... ça ne fonctionnera pas.
Aucun commentaire:
Enregistrer un commentaire