Chef-workstation est un ordinateur exécutant le kit Chef Development Kit (Chef DK) utilisé pour créer des livres de recettes, interagir avec le serveur Chef et interagir avec les nœuds.
Le poste de travail est l'endroit où les utilisateurs font la plupart de leur travail :
Appliquer le cookbook d'installation de l'hyperviseur KVM
Appliquer le cookbook d'installation de ruby
Appliquer le cookbook d'installation de vagrant
Chef-Workstation installe tout qui est nécessaire pour utiliser Chef.
wget http://packages.chef.io/files/stable/chef-workstation/0.1.120/el/6/chef-workstation-0.1.120-1.el6.x86_64.rpm rmp -ivh chef-workstation-0.1.120-1.el6.x86_64.rpm
L'installation doit se faire dans les contexte ruby embarqué dans la distribution
eval "$(chef shell-init bash)" gem install knife-kvm
Knife-kvm fournit une suite de plugin pour créer / bootstraper et détruire les vm invités kvm.
chef verify Running verification for component 'berkshelf' Running verification for component 'test-kitchen' Running verification for component 'tk-policyfile-provisioner' Running verification for component 'chef-client' Running verification for component 'chef-dk' Running verification for component 'chef-provisioning' Running verification for component 'chefspec' Running verification for component 'generated-cookbooks-pass-chefspec' Running verification for component 'rubocop' Running verification for component 'fauxhai' Running verification for component 'knife-spork' Running verification for component 'kitchen-vagrant' Running verification for component 'package installation' Running verification for component 'openssl' Running verification for component 'inspec' Running verification for component 'delivery-cli' Running verification for component 'git' Running verification for component 'opscode-pushy-client' Running verification for component 'chef-sugar' Running verification for component 'knife-supermarket' .............................................. --------------------------------------------- Verification of component 'fauxhai' succeeded. Verification of component 'kitchen-vagrant' succeeded. Verification of component 'openssl' succeeded. Verification of component 'delivery-cli' succeeded. Verification of component 'test-kitchen' succeeded. Verification of component 'rubocop' succeeded. Verification of component 'inspec' succeeded. Verification of component 'opscode-pushy-client' succeeded. Verification of component 'knife-supermarket' succeeded. Verification of component 'berkshelf' succeeded. Verification of component 'knife-spork' succeeded. Verification of component 'git' succeeded. Verification of component 'tk-policyfile-provisioner' succeeded. Verification of component 'chefspec' succeeded. Verification of component 'chef-sugar' succeeded. Verification of component 'chef-client' succeeded. Verification of component 'chef-dk' succeeded. Verification of component 'package installation' succeeded. Verification of component 'chef-provisioning' succeeded. Verification of component 'generated-cookbooks-pass-chefspec' succeeded.
Aller au chef-serveur> Onglet Administration> Sélectionner une organisation> Cliquer sur Kit de démarrage dans le volet de gauche.
Télécharger le kit de démarrage (chef-repo) à partir du serveur et le décompresser dans le répertoire personnel sur WORKSTATION NODE.
unzip chef-starter.zip tree chef-repo chef-repo ├── cookbooks │ ├── chefignore │ └── starter │ ├── attributes │ │ └── default.rb │ ├── files │ │ └── default │ │ └── sample.txt │ ├── metadata.rb │ ├── recipes │ │ └── default.rb │ └── templates │ └── default │ └── sample.erb ├── README.md └── roles └── starter.rb 9 directories, 8 files
knife configure Please enter the chef server URL: [https://M013E13P-1249185.dgfip/organizations/myorg] https://xx.xx.xxx.xxx:10443/organizations/dgfip/ Please enter an existing username or clientname for the API: [jacques.nougat] jacques Overwrite /home/user/jacques.nougat/.chef/credentials?? (Y/N) y ***** You must place your client key in: /home/user/jacques.nougat/.chef/jacques.pem Before running commands with Knife ***** Configuration file written to
vi ~/.chef/knife.rb # See https://docs.getchef.com/config_rb_knife.html for more information on knife configuration options current_dir = File.dirname(__FILE__) log_level :info log_location STDOUT node_name "jacques" client_key "/etc/chef/jacques.pem" chef_server_url "https://xx.xx.xxx.xxx:10443/organizations/dgfip" cookbook_path ["#{current_dir}/../cookbooks"] chef_repo_path "/path/to/chef-repo"
Charger la clef privé du compte utilisé pour la connexion au serveur chef dans le répertoire indiqué dans client_key
scp user@xx.xx.xxx.xxx:/chef-repo/.chef/jacques.pem ~/.chef/jacques.pem user@xx.xx.xxx.xxx's password: jacques.pem 100% 1678 1.6KB/s 00:00
export no_proxy='xx.xx.xxx.xxx' knife ssl fetch WARNING: Certificates from xx.xx.xxx.xxx will be fetched and placed in your trusted_cert directory (/home/user/jacques.nougat/.chef/trusted_certs). Knife has no means to verify these are the correct certificates. You should verify the authenticity of these certificates after downloading. Adding certificate for xx_xx_xxx_xxx in /home/user/jacques.nougat/.chef/trusted_certs/xx_xx_xxx_xxx.cr
Lister les clients actuellement disponibles. Actuellement, nous ne voyons que le poste de travail.
knife client list dgfip-validator
Le Bootstrapping consiste à configurer un Node de façon à ce que le Chef-server puisse le piloter.
Tout d’abord, vérifier l'accès ssh sur la machine, avec l’utilisateur root ou un utilisateur qui peut passer root avec sudo (vagrant par ex).
Ensuite lancer la commande suivante :
knife bootstrap [adresse-ip-du serveur] -x [usrename] -P [password]
ou s'il faut utiliser sudo : knife bootstrap [adresse-ip-du serveur] -x [utilisateur] -P [password] --sudo
knife bootstrap 192.168.121.139 -x root -P master -N dgfip-base
On doit avoir un retour similaire à ceci :
knife bootstrap 192.168.121.139 -x root -P master -N dgfip-base Creating new client for dgfip-base Creating new node for dgfip-base Connecting to 192.168.121.139 192.168.121.139 -----> Existing Chef installation detected 192.168.121.139 Starting the first Chef Client run... 192.168.121.139 Starting Chef Client, version 12.0.3 192.168.121.139 resolving cookbooks for run list: [] 192.168.121.139 Synchronizing Cookbooks: 192.168.121.139 Compiling Cookbooks... 192.168.121.139 [2018-05-17T14:23:36+02:00] WARN: Node dgfip-base has an empty run list. 192.168.121.139 Converging 0 resources 192.168.121.139 192.168.121.139 Running handlers: 192.168.121.139 Running handlers complete 192.168.121.139 Chef Client finished, 0/0 resources updated in 6.994744495 seconds
Vérifier le noeud en utilisant la commande ci-dessous.
knife client list dgfip-base dgfip-validator
knife upload cookbooks/nom_cookbook Created cookbooks/starter
Sélectionner le cookbook et ajouter-le à la liste des courses en cours
Synchroniser le client avec le serveur en utilisant la commande chef-client.
Une fois assignés, nous pouvons nous connecter au nœud et exécuter chef-client. Cela communiquera au chef-server et obtiendra le cookbook et synchronisera le serveur.
chef-client