Table of Contents
CHEF: Mise en oeuvre de Chef Workstation sur centos
Table of Contents
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 :
- Développer et tester des livres de recettes et des recettes
- Test du code du chef
- Garder le référentiel Chef synchronisé avec le contrôle de la source de la version
- Configuration de la stratégie organisationnelle, y compris la définition des rôles et des environnements, et vérification de la conservation des données critiques dans des sacs de données
- Interagir avec les nœuds, selon les besoins (tels que l'exécution d'une opération d'amorçage)
- Installer chef en fonction de la destination du noeud
Installation de l'hyperviseur
Appliquer le cookbook d'installation de l'hyperviseur KVM
Installation de ruby
Appliquer le cookbook d'installation de ruby
Installation de vagrant
Appliquer le cookbook d'installation de vagrant
Installation et configuration de chef-workstation
Installations des paquets
Chef-Workstation installe tout qui est nécessaire pour utiliser Chef.
Télécharger et installer chef-workstation
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
Installer les modules complémentaires
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.
Configuration du poste de travail
Vérifier l'installation à l'aide du chef verify.
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.
Obtenir le kit de démarrage.
Aller au chef-serveur> Onglet Administration> Sélectionner une organisation> Cliquer sur Kit de démarrage dans le volet de gauche.
- Onglet Admin
- Sélectionnez le kit de démarrage
- Réinitialiser les clés et télécharger
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
Configuration de Knife
Initialiser knife
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
Ajuster le fichier knife.rb
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ée de l'utilisateur
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
Récupérer la clé SSL du chef-serveur.
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
Vérifier la configuration de knife
Lister les clients actuellement disponibles. Actuellement, nous ne voyons que le poste de travail.
knife client list dgfip-validator
Gestion des nodes.
Bootstrapping du noeud
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
Gestion des cookbooks
Uploader un cookbook sur le serveur.
knife upload cookbooks/nom_cookbook Created cookbooks/starter
Assigner le cookbook
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