Comment configurer un système Chef 12 Configuration Management sur des serveurs Ubuntu 14.04

introduction

Au fur et à mesure que les besoins en infrastructure augmentent, la gestion manuelle de chaque serveur devient une tâche de plus en plus difficile. Cette difficulté est aggravée par l’exigence de reproductibilité, qui devient nécessaire en cas de défaillance d’un nœud ou si une mise à l’échelle horizontale est nécessaire.

Les solutions de gestion de la configuration sont conçues pour résoudre ces problèmes en transformant l’administration de votre infrastructure en une base de code. Au lieu d’effectuer des tâches individuelles sur un certain nombre de machines, ces outils vous permettent de valider vos exigences dans un emplacement central où chaque composant peut se connecter, décomposer leur configuration et l’appliquer.

Dans un guide précédent, nous avons parlé, sur un plan conceptuel, de la structure générale des composants Chef et la manière dont ils interagissent pour atteindre les objectifs de l’administrateur. Nous avons parlé de la terminologie pertinente et de la responsabilité de chaque article.

Dans ce guide, nous allons installer le logiciel actuel. Nous allons configurer un serveur Chef centralisé qui stockera et diffusera les instructions de configuration et les informations de profilage des nœuds. Nous allons également configurer un poste de travail sur lequel l’administrateur peut utiliser la base de code et modifier les caractéristiques de l’infrastructure. Nous suivrons cela en démarrant un nouveau noeud pour le placer sous la gestion de l’écosystème Chef.

Prérequis et objectifs

Nous allons installer la version 12 de Chef dans ce guide. La configuration peut différer considérablement d’une version à l’autre. Veillez donc à utiliser le même numéro de version principale que ce guide pour obtenir de meilleurs résultats.

La documentation Chef nous indique que votre serveur Chef doit disposer d’au moins 4 cœurs et de 4 Go de RAM. Il devrait également avoir un système d’exploitation 64-bit. Pour notre guide, nous utiliserons un droplet DigitalOcean 4 cœurs / 8 Go avec Ubuntu 14.04 64 bits.

Le poste de travail et les nœuds ont très peu d’exigences. Nous utiliserons Ubuntu 14.04 sur ceux-ci également pour des raisons de cohérence.

Lorsque nous aurons terminé, nous aurons un serveur Chef centralisé pour stocker et servir nos données de configuration. Notre poste de travail sera utilisé pour apporter des modifications, les télécharger sur le serveur et pour amorcer et gérer de nouveaux nœuds. Le nœud représente un serveur unique au sein de notre infrastructure.

Configurer le serveur Chef

Nous allons commencer par configurer le serveur Chef. N’oubliez pas que Chef recommande au moins 4 cœurs et 4 Go de RAM pour ce serveur. Planifiez en conséquence.

Assurez-vous que le serveur est accessible par nom d’hôte

Une fois que vous êtes connecté au serveur sur lequel vous prévoyez d’installer le serveur Chef, la première tâche à effectuer consiste à vérifier que le nom d’hôte du serveur est un nom de domaine complet ou une adresse IP pouvant être résolu. Vous pouvez vérifier cela en tapant:

hostname -f

Le résultat devrait être une adresse où le serveur peut être atteint. Si ce n’est pas le cas, vous pouvez définir un nom de domaine ou une adresse IP accessible au serveur en modifiant ce fichier:

sudo nano /etc/hosts

Le fichier ressemblera à ceci:

127.0.1.1
127.0.0.1 localhost

. . .

Modifiez la ligne supérieure pour refléter le nom de domaine complet ou l’adresse IP, suivi d’un espace et de tout alias que vous souhaitez utiliser pour votre hôte. Ajoutez une ligne bien, les deux lignes affichées contenant l’adresse IP publique de votre serveur dans la première colonne et les informations que vous avez modifiées à la fin de la ligne + 127.0.1.1 + jusqu’à la fin. Ça devrait ressembler a quelque chose comme ca:

127.0.1.1
127.0.0.1 localhost

Donc, si je n’ai pas un nom de domaine, mon adresse IP publique est «+ 123.123.123.123 +», et si je veux aussi que mon hôte soit accessible par le nom d’hôte «chef», je pourrais avoir un fichier qui ressemble à ceci:

127.0.1.1 123.123.123.123 chef
127.0.0.1 localhost
123.123.123.123 123.123.123.123 chef

Si, au contraire, ce serveur a le nom de domaine complet ` chef.example.com + `et une adresse IP de '+ 234.234.234.234 +, mon fichier pourrait ressembler à ceci:

127.0.1.1 chef.example.com chef
127.0.0.1 localhost
234.234.234.234 chef.example.com chef

Enregistrez et fermez le fichier lorsque vous avez terminé. Vous pouvez vérifier que la valeur a été correctement définie en tapant:

hostname -f

Le résultat devrait être une valeur que vous pouvez utiliser pour atteindre votre serveur Chef à partir de n’importe où dans votre infrastructure.

Téléchargez et installez le logiciel Chef 12 Server

Nous pouvons ensuite télécharger le logiciel serveur Chef 12. Vous pouvez trouver le paquet qui doit être installé en visitant le site Chef. En particulier, pour une installation Ubuntu, vous pouvez suivre this link.

Sous l’en-tête «Ubuntu Linux 14.04», cliquez avec le bouton droit sur le lien de téléchargement et copiez l’emplacement du lien:

image: https: //assets.digitalocean.com/articles/chef12_ubuntu1404/download_chef_server.png [téléchargement du serveur Chef]

De retour sur votre serveur, accédez à votre répertoire personnel. Collez le lien que vous avez copié et utilisez la commande + wget + pour télécharger le package. Le lien que vous avez copié peut être différent de celui ci-dessous s’il y a eu une mise à jour de version mineure depuis cette écriture:

cd ~
wget https://web-dl.packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core__amd64.deb

Une fois le téléchargement terminé, installez le paquet en tapant:

sudo dpkg -i chef-server-core_*.deb

Cela installera le système Chef 12 de base sur le serveur. Si vous avez sélectionné un serveur avec un matériel moins puissant que la quantité recommandée, cette étape peut échouer.

Une fois l’installation terminée, vous devez appeler la commande + reconfigure +, qui configure les composants qui composent le serveur pour qu’ils fonctionnent ensemble dans votre environnement spécifique:

sudo chef-server-ctl reconfigure

Créer un utilisateur administrateur et une organisation

Ensuite, nous devons créer un utilisateur administrateur. Ce sera le nom d’utilisateur qui aura accès pour apporter des modifications aux composants d’infrastructure de l’organisation que nous allons créer.

Nous pouvons le faire en utilisant la sous-commande + user-create + de la commande + chef-server-ctl +. La commande nécessite qu’un certain nombre de champs soient transmis au cours du processus de création. La syntaxe générale est la suivante:

chef-server-ctl user-create

Nous inclurons ces informations et ajouterons également le signe + -f + à la fin afin de spécifier un nom de fichier dans lequel générer la clé RSA privée de notre nouvel utilisateur. Nous en aurons besoin pour nous authentifier ultérieurement avec la commande de gestion + couteau +.

Pour notre exemple, nous allons créer un utilisateur avec les informations suivantes:

  • * Nom d’utilisateur *: admin

  • * Prénom *: admin

  • * Nom *: admin

  • * Email *: [email protected]

  • * Mot de passe *: examplepass

  • * Nom du fichier *: admin.pem

La commande nécessaire pour créer un utilisateur avec ces informations est (vous devez la modifier pour refléter vos informations, en particulier le mot de passe):

sudo chef-server-ctl user-create admin admin admin [email protected]  -f admin.pem

Vous devriez maintenant avoir une clé privée appelée + admin.pem + dans votre répertoire actuel.

Maintenant que vous avez un utilisateur, vous pouvez créer une organisation avec la sous-commande + org-create +. Une organisation est simplement un regroupement d’infrastructure et de configuration au sein de Chef. La commande a la syntaxe générale suivante:

chef-server-ctl org-create   --association_user

Le nom abrégé est le nom que vous utiliserez pour faire référence à l’organisation à partir de Chef. Le nom long est le nom réel de l’organisation. + - association_user + spécifie le nom d’utilisateur ayant accès à l’administration de l’organisation. De nouveau, nous allons ajouter l’indicateur + -f + afin de pouvoir spécifier le nom du fichier dans lequel placer la clé privée. La clé qui sera créée est utilisée pour valider les nouveaux clients au sein de l’organisation jusqu’à ce qu’ils puissent obtenir leur propre clé client unique.

Nous allons créer une organisation avec les qualités suivantes:

  • * Nom abrégé *: digitalocean

  • * Nom complet *: DigitalOcean, Inc.

  • * Utilisateur de l’association *: admin

  • * Nom du fichier *: digitalocean-validator.pem

Pour créer une organisation avec les qualités ci-dessus, nous allons utiliser la commande suivante:

sudo chef-server-ctl org-create digitalocean "DigitalOcean, Inc." --association_user admin -f digitalocean-validator.pem

Ensuite, vous devriez avoir deux fichiers de clés + .pem + dans votre répertoire personnel. Dans notre cas, ils s’appelleront + admin.pem + et + digitalocean-validator.pem +. Nous devrons nous connecter à ce serveur et télécharger ces clés sur notre poste de travail momentanément. Pour l’instant cependant, l’installation de notre serveur Chef est terminée.

Configurer un poste de travail Chef

Maintenant que notre serveur Chef est opérationnel, notre prochaine action consiste à configurer un poste de travail. La coordination et la configuration réelles de l’infrastructure n’ont pas lieu sur le serveur Chef. Ce travail est effectué sur un poste de travail qui télécharge ensuite les données sur le serveur pour influencer l’environnement Chef.

Cloner le chef repo

La configuration de Chef pour votre infrastructure est gérée dans une structure de fichier hiérarchique appelée collectivement Chef. La structure générale de celui-ci se trouve dans un référentiel GitHub fourni par l’équipe du Chef. Nous allons utiliser + git + pour cloner ce référentiel sur notre station de travail afin de servir de base au référentiel Chef de notre infrastructure.

Premièrement, nous devons installer + git + via les outils de packaging + apt +. Mettez à jour votre index de packaging et installez l’outil en tapant:

sudo apt-get update
sudo apt-get install git

Une fois que vous avez installé + git, vous pouvez cloner le référentiel Chef sur votre machine. Pour ce guide, nous allons simplement le cloner dans notre répertoire personnel:

cd ~
git clone https://github.com/chef/chef-repo.git

Cela va dérouler la structure de base du référentiel Chef dans un répertoire appelé + chef-repo + dans votre répertoire personnel.

Mettre votre chef Repo sous contrôle de version

Les configurations créées dans le référentiel Chef lui-même sont mieux gérées dans un système de contrôle de version de la même manière que vous gérieriez le code. Depuis que nous avons cloné le référentiel ci-dessus, un référentiel + git + a déjà été initialisé.

Pour configurer votre poste de travail pour de nouveaux commits, vous devez effectuer quelques opérations.

Commencez par définir le nom et l’email que + git + utilisera pour baliser les commits que vous faites. Ceci est une condition requise pour + git + pour accepter les commits. Nous définissons cela globalement de sorte que tout référentiel + git + que nous créons utilise ces valeurs:

git config --global user.name ""
git config --global user.email "@"

Ensuite, nous dirons à + ​​git d’ignorer toute information contenue dans le répertoire` + ~ / chef-repo / .chef`. Nous allons créer ce répertoire dans quelques minutes pour stocker des informations sensibles. Pour l’instant, nous pouvons ajouter cet emplacement à votre fichier + .gitignore pour que` + git + `ne stocke pas les données qui ne devraient pas être exposées à d’autres personnes:

echo ".chef" >> ~/chef-repo/.gitignore

Depuis que nous avons modifié le fichier + .gitignore +, nous pouvons continuer et effectuer notre premier nouveau commit dans le système de contrôle de version. Tout d’abord, ajoutez tous les fichiers modifiés à la zone de transfert actuelle:

cd ~/chef-repo
git add .

Maintenant, validez les modifications. Nous utiliserons l’indicateur + -m + pour spécifier un message de validation en ligne décrivant les modifications apportées:

git commit -m "Excluding the ./.chef directory from version control"

Notre dépôt Chef est maintenant sous contrôle de version. Lorsque nous créons des configurations pour notre infrastructure, nous pouvons utiliser les deux commandes ci-dessus pour maintenir notre référentiel + git + à jour.

Téléchargez et installez le kit de développement Chef

Ensuite, nous devons installer le kit de développement Chef, une suite logicielle conçue pour les postes de travail Chef. Cela inclut de nombreux utilitaires qui vous seront utiles lors de la conception de configurations pour votre infrastructure. L’outil qui nous intéresse à ce stade est la commande + couteau + intégrée, qui peut communiquer avec et contrôler à la fois le serveur Chef et tous les clients Chef.

Nous pouvons trouver le kit de développement Chef 12 sur le site Web de Chef. Puisque nous utilisons Ubuntu 14.04 comme poste de travail, la page here contiendra le dernier lien de téléchargement. Notez qu’au moment de la rédaction de ce document, le lien de téléchargement ne fait référence qu’à Ubuntu 12.04 et Ubuntu 13.10, mais il devrait quand même s’installer sans problème sous Ubuntu 14.04.

Cliquez avec le bouton droit de la souris sur le bouton de téléchargement sous «Ubuntu Linux» et copiez l’emplacement du lien:

image: https: //assets.digitalocean.com/articles/chef12_ubuntu1404/download_chef_dev_kit.png [Kit de développement Ubuntu Chef]

De retour sur votre poste de travail, accédez à votre répertoire personnel. Collez le lien que vous avez copié et utilisez la commande + wget + pour télécharger le package. Le lien que vous avez copié peut être différent de celui ci-dessous si une version plus récente du kit de développement a été publiée:

cd ~
wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk__amd64.deb

Une fois le paquet + .deb + téléchargé, vous pouvez l’installer en tapant:

sudo dpkg -i chefdk_*.deb

Après l’installation, vous pouvez vérifier que tous les composants sont disponibles à l’emplacement prévu par le biais de la nouvelle commande + chef +:

chef verify

Si votre poste de travail sera principalement utilisé pour gérer Chef pour votre infrastructure, vous voudrez probablement utiliser par défaut la version de Ruby installée avec Chef. Vous pouvez le faire en modifiant votre + .bash_profile + afin que Chef’s Ruby soit prioritaire:

echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile

Ensuite, vous pouvez utiliser votre fichier + .bash_profile + pour définir les variables d’environnement correctes pour la session en cours:

source ~/.bash_profile

Si vous souhaitez gérer vos versions de Ruby de manière indépendante, vous pouvez ignorer les étapes ci-dessus.

Télécharger les clés d’authentification sur le poste de travail

À ce stade, votre station de travail dispose de tous les logiciels nécessaires pour interagir avec un serveur Chef et composer des configurations d’infrastructure. Cependant, il n’est pas encore configuré pour interagir avec votre serveur Chef et votre environnement. Dans cette section, nous allons télécharger les informations d’identification créées sur le serveur Chef.

Nous allons utiliser l’utilitaire + scp + pour télécharger la clé d’utilisateur et la clé de validation d’organisation que nous avons créées sur le serveur Chef. Avant de le faire, nous allons créer le répertoire caché où nous allons stocker ces fichiers:

mkdir ~/chef-repo/.chef

La méthode que vous utilisez pour vous connecter au serveur Chef déterminera comment nous allons exactement télécharger les clés. Suivez la méthode ci-dessous qui correspond à votre configuration:

Comment télécharger des clés lors de la connexion à un serveur Chef avec des mots de passe

Si vous vous connectez à votre serveur Chef via SSH à l’aide d’une authentification basée sur un mot de passe, la commande + scp + fonctionnera sans modification importante.

Sur votre poste de travail, spécifiez le nom d’utilisateur et le nom de domaine ou l’adresse IP utilisés pour se connecter au serveur Chef. Suivez-le immédiatement avec deux points (:) et le chemin du fichier que vous souhaitez télécharger. Après avoir ajouté un espace, indiquez le répertoire sur l’ordinateur local où vous souhaitez que les fichiers téléchargés soient placés (+ ~ / chef-repo / .chef + dans notre cas).

Si vous vous connectez au serveur Chef à l’aide du compte d’utilisateur + root +, vos commandes ressembleront à ceci. N’oubliez pas de modifier à la fois le nom de domaine ou l’adresse IP et le nom des fichiers de clé que vous essayez de télécharger pour qu’ils correspondent à votre environnement:

scp root@:/root/ ~/chef-repo/.chef
scp root@:/root/ ~/chef-repo/.chef

Si vous vous connectez à votre serveur Chef à l’aide d’un utilisateur non root, les commandes ressembleront davantage à ceci:

scp @:/home// ~/chef-repo/.chef
scp @:/home// ~/chef-repo/.chef
Comment télécharger des clés lors de la connexion à un serveur Chef à l’aide de clés SSH

Si, au contraire, vous vous connectez à votre serveur Chef à l’aide de clés SSH (recommandé), vous devrez effectuer certaines étapes supplémentaires.

Tout d’abord, laissez votre session SSH avec le poste de travail. Nous devrons nous reconnecter momentanément avec un nouveau paramètre:

exit

Une fois que vous êtes de retour sur votre ordinateur local, vous devrez ajouter les clés SSH que vous utilisez pour vous connecter au serveur Chef à un agent SSH. OpenSSH, la suite standard SSH, comprend un agent SSH qui peut être démarré en tapant:

eval $(ssh-agent)

Vous devriez voir un résultat ressemblant à ceci (le nombre sera probablement différent):

Agent pid 13881

Une fois l’agent démarré, vous pouvez y ajouter votre clé SSH:

ssh-add
Identity added: /home//.ssh/id_rsa (rsa w/o comment)

Cela gardera votre clé SSH stockée dans la mémoire. Maintenant, vous pouvez forward la clé stockée sur votre poste de travail lorsque vous vous connectez en utilisant l’option + -A + avec + ssh +. Cela vous permettra de vous connecter à n’importe quel ordinateur depuis votre poste de travail comme si vous vous connectiez depuis votre ordinateur local:

ssh -A @

Désormais, vous pouvez vous connecter à votre serveur Chef sans avoir besoin d’un mot de passe à l’aide des informations d’identification SSH transférées. Si les clés de votre serveur Chef étaient disponibles via l’utilisateur root, les commandes dont vous aurez besoin ressembleront à celles-ci. N’oubliez pas de changer le nom de domaine ou l’adresse IP du serveur Chef, ainsi que les noms de clé, si nécessaire:

scp root@:/root/ ~/chef-repo/.chef
scp root@:/root/ ~/chef-repo/.chef

Si la clé SSH configurée pour le serveur Chef est utilisée à la place pour vous authentifier auprès d’un compte d’utilisateur normal, vos commandes ressembleront à ceci:

scp @:/home// ~/chef-repo/.chef
scp @:/home// ~/chef-repo/.chef

Configuration de Knife pour gérer votre environnement Chef

Maintenant que vos informations d’identification Chef sont disponibles sur votre poste de travail, nous pouvons configurer la commande + couteau + avec les informations nécessaires pour se connecter à et contrôler votre infrastructure Chef. Cela se fait via un fichier + couteau.rb + que nous placerons dans le répertoire + ~ / chef-repo / .chef + avec nos clés.

Ouvrez un fichier nommé + couteau.rb + dans ce répertoire dans votre éditeur de texte:

nano ~/chef-repo/.chef/knife.rb

Dans ce fichier, collez les informations suivantes:

current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                ""
client_key               "#{current_dir}/"
validation_client_name   ""
validation_key           "#{current_dir}/"
chef_server_url          "https:///organizations/"
syntax_check_cache_path  "#{ENV['HOME']}/.chef/syntaxcache"
cookbook_path            ["#{current_dir}/../cookbooks"]

Les éléments suivants doivent être adaptés à votre infrastructure:

  • * + node_name + *: Ceci spécifie le nom que + couteau + utilisera pour se connecter à votre serveur Chef. Cela devrait correspondre à votre nom d’utilisateur.

  • * + client_key + *: il doit s’agir du nom et du chemin d’accès à la clé d’utilisateur que vous avez copiée à partir du serveur Chef. Nous pouvons utiliser l’extrait + # {current_dir} + pour renseigner le chemin si la clé se trouve dans le même répertoire que le fichier + couteau.rb +.

  • * + validation_client_name + *: C’est le nom du client de validation que + couteau + utilisera pour amorcer de nouveaux noeuds. Cela prendra la forme du nom abrégé de votre organisation, suivi de + -validator +.

  • * + validation_key + *: comme le + client_key +, cela inclut le nom et le chemin d’accès à la clé de validation que vous avez copiée à partir du serveur Chef. De nouveau, vous pouvez utiliser le fragment + # {current_dir} + Ruby pour spécifier le répertoire en cours si la clé de validation se trouve dans le même répertoire que le fichier + couteau.rb +.

  • * + chef_server_url + *: Il s’agit de l’URL permettant d’accéder au serveur Chef. Il devrait commencer par + https: // +, suivi du nom de domaine ou de l’adresse IP de votre serveur Chef. Ensuite, vous devez spécifier le chemin de votre organisation en ajoutant + / organisations / +.

Pour notre guide, le fichier + couteau.rb + ressemblera à ceci. Vous devez toujours ajuster le nom de domaine ou l’adresse IP du serveur si vous suivez:

current_dir = File.dirname(__FILE__)
log_level                :info
log_location             STDOUT
node_name                "admin"
client_key               "#{current_dir}/admin.pem"
validation_client_name   "digitalocean-validator"
validation_key           "#{current_dir}/digitalocean-validator.pem"
chef_server_url          "https:///organizations/digitalocean"
syntax_check_cache_path  "#{ENV['HOME']}/.chef/syntaxcache"
cookbook_path            ["#{current_dir}/../cookbooks"]

Lorsque vous avez terminé, sauvegardez et fermez le fichier + knife.rb +.

Nous allons maintenant tester le fichier de configuration en essayant une simple commande + couteau +. Nous devons être dans notre répertoire + ~ / / chef-repo in pour que votre fichier de configuration soit lu correctement:

cd ~/chef-repo
knife client list

Cette première tentative devrait échouer avec une erreur ressemblant à ceci:

ERROR: SSL Validation failure connecting to host: server_domain_or_IP - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
ERROR: Could not establish a secure connection to the server.
Use `knife ssl check` to troubleshoot your SSL configuration.
If your Chef Server uses a self-signed certificate, you can use
`knife ssl fetch` to make knife trust the server's certificates.

Original Exception: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

Cela est dû au fait que le certificat SSL de notre serveur Chef n’est pas installé sur notre poste de travail. Nous pouvons acquérir ceci en tapant:

knife ssl fetch

Cela devrait ajouter le fichier de certificat du serveur Chef à une liste de notre répertoire + ~ / chef-repo / .chef +:

WARNING: Certificates from server_domain_or_IP will be fetched and placed in your trusted_cert
directory (/home/demo/chef-repo/.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 server_domain_or_IP in /home/demo/chef-repo/.chef/trusted_certs/server_domain_or_IP.crt

Une fois le certificat SSL récupéré, la commande précédente devrait maintenant fonctionner:

knife client list
digitalocean-validator

Si la commande ci-dessus revient correctement, votre poste de travail est maintenant configuré pour contrôler votre environnement Chef.

Amorcer un nouveau nœud avec un couteau

Avec notre serveur Chef et notre station de travail configurés, nous pouvons commencer à utiliser Chef pour configurer de nouveaux serveurs au sein de notre infrastructure.

Cela se produit par le biais d’un processus appelé «amorçage» dans lequel l’exécutable du client Chef est installé sur le nouvel ordinateur et la clé du validateur d’organisation est également transmise. Le nouveau nœud contacte ensuite le serveur Chef avec la clé de validation et, en retour, reçoit sa propre clé client unique ainsi que toute configuration qui lui a été affectée. Ce processus remet le nouveau serveur dans son état initial et le configure pour toute gestion future.

Pour vous connecter au nouveau serveur, nous aurons besoin de quelques informations sur le nouveau noeud:

  • Le nom de domaine ou l’adresse IP où il peut être atteint

  • Le nom d’utilisateur utilisé pour effectuer les actions administratives. Cela peut être soit + root +, soit un utilisateur configuré avec les privilèges + sudo +.

  • Une méthode de connexion en tant qu’utilisateur ci-dessus. Cela peut être soit le mot de passe, soit la possibilité d’utiliser une clé SSH.

  • Une méthode pour effectuer des tâches administratives. Pour les utilisateurs + root +, c’est inutile. Pour les utilisateurs utilisant les privilèges + sudo +, un mot de passe est généralement nécessaire.

La syntaxe générale de la commande sera la suivante:

knife bootstrap  [options]

Voici quelques options courantes que vous pourriez utiliser:

  • * + -x + *: Utilisé pour spécifier le nom d’utilisateur avec lequel s’authentifier via SSH. Ceci est généralement requis.

  • * + -N + *: nouveau nom du noeud, tel qu’il est affiché dans Chef. Si vous laissez cela de côté, le nom d’hôte sera généralement utilisé pour le nom du noeud Chef.

  • * + -P + *: Utilisé pour spécifier le mot de passe du nom d’utilisateur sur le serveur distant. Ceci est nécessaire si * soit * la session SSH nécessite une authentification par mot de passe *, soit * si le nom d’utilisateur nécessite un mot de passe pour les commandes + sudo +.

  • * + - sudo + *: Si le nom d’utilisateur sur le serveur distant doit utiliser + sudo + pour effectuer des actions administratives, cet indicateur est nécessaire. Par défaut, il vous demandera le mot de passe + sudo +.

  • * + - use-sudo-password + *: Si vous fournissez déjà le mot de passe de l’utilisateur avec l’indicateur + -P +, utilisez cet indicateur * en plus * de l’indicateur + - sudo + utilisé le mot de passe + -P + sans invite.

  • * + -A + *: cette option permet de transférer les clés SSH à l’hôte distant plutôt que d’utiliser l’authentification par mot de passe.

Lorsque vous utilisez l’option + -A +, vous devez démarrer un agent SSH sur votre ordinateur local, ajouter la clé SSH pouvant être utilisée pour se connecter au nouveau nœud et transmettre ces informations à votre poste de travail en vous connectant avec le signe `+ - Un drapeau + `initialement. Pour plus d’informations sur cette opération, reportez-vous à la section relative à la configuration des postes de travail concernant le téléchargement des clés à partir du serveur Chef.

En utilisant les informations ci-dessus, il est possible de construire les commandes d’amorçage correctes pour diverses situations.

Par exemple, pour amorcer un nœud avec le nom "testing", en utilisant le nom d’utilisateur + demo +, configuré avec les privilèges + sudo +, et qui nécessite un mot de passe pour SSH et la validation + sudo +, vous pouvez taper :

knife bootstrap  -N testing -x demo -P  --sudo --use-sudo-password

Si nous voulons amorcer à l’aide de l’utilisateur + root, avec l’authentification par clé SSH à l’aide des clés disponibles sur le poste de travail, et si nous souhaitons conserver le nom d’hôte du nœud en tant que nom du nœud Chef, nous pouvons taper:

knife bootstrap  -x root -A

Si nous voulons utiliser des clés SSH pour s’authentifier auprès d’un utilisateur + sudo +, nous devrons tout de même fournir un mot de passe à l’aide de l’indicateur + -P +, de l’indicateur + - sudo + et de l’utilisation de + + - -sudo-password + `flag pour éviter les invites:

knife bootstrap  -x  -A -P  --sudo --use-sudo-password -N

Si vous êtes dans le scénario ci-dessus, mais que le mot de passe + sudo vous est demandé, vous pouvez simplement taper ceci:

knife bootstrap  -x  -A --sudo -N

Une fois votre nouveau nœud démarré, vous devriez avoir un nouveau client:

knife client list
digitalocean-validator

Vous devriez également avoir un nouveau noeud du même nom:

knife node list

Vous pouvez utiliser la procédure ci-dessus pour configurer facilement de nouveaux clients Chef sur un nombre quelconque de nouveaux serveurs.

Si vous souhaitez savoir comment ajouter automatiquement vos nouvelles gouttelettes DigitalOcean à votre infrastructure Chef existante sans avoir à les amorcer, https://www.digitalocean.com/community/tutorials/how-to-automatically-add-new- droplets-to-your-configuration-managment-system [consultez ce tutoriel].

Conclusion

Après avoir suivi ce guide, vous devez avoir un serveur Chef entièrement fonctionnel configuré pour votre infrastructure. Nous avons également mis en place une station de travail qui peut être utilisée pour gérer et gérer les configurations que Chef appliquera à votre infrastructure. Nous avons montré comment utiliser la commande + couteau + pour amorcer les serveurs qui seront configurés par Chef.

Dans le suivant guide, nous allons montrer comment concevoir des configurations pour vos nœuds en utilisant certaines constructions Chef. Nous allons passer en revue les principes de base des recettes et des livres de cuisine de Chef afin de contrôler votre infrastructure à l’aide de configurations déclaratives.

Related