J'essaye d'amorcer un noeud seul et d'exécuter la recette getting-started
au premier démarrage. Tout semble bien fonctionner sauf que la recette actuelle n'est jamais exécutée."chef-client -j" ne fonctionne pas comme prévu
Voici mon script qui est déclenché par rc.local
:
#!/bin/bash
wget http://<some_IP_Address>/chef-11.6.0-1.el6.x86_64.rpm -P /var/tmp/
rpm -ivh /var/tmp/chef-11.6.0-1.el6.x86_64.rpm
mkdir -p /etc/chef
cd /etc/chef
wget http://<some_IP_Address>/chef-validator.pem
mv chef-validator.pem validation.pem
cat > client.rb << EOL
log_level :auto
log_location STDOUT
chef_server_url "MY_CHEF_SERVER_FQDN"
validation_client_name "chef-validator"
EOL
cat > /etc/chef/firstboot.json << EOL
{"run_list": ["recipe[getting-started]"]}
EOL
chef-client -j /etc/chef/firstboot.json
Une fois que le nœud est démarré, je vois que le nœud s'inscrit sur le serveur chef mais la recette getting-started
qui a été spécifié dans firstboot.json
avec chef-client -j
sur la dernière ligne de mon script ne se déclenche pas.
Il agit comme seul chef-client
est déclenchée et non chef-client -j /etc/chef/firstboot.json
Si je regarde mon poste de travail, je vois que cette recette est ajoutée aussi bien, juste qu'il est pas encore exécuté le run_list du nœud.
est ici la sortie de commande de mon poste de travail de chef pour le noeud qui a été bootstrapped:
$ knife node show node_name.domain.com --run-list
node_name.domain.com:
run_list: recipe[getting-started]
QUESTION: Pourriez-vous me dire ce que je pourrais être absent ici? pourquoi chef-client ne peut pas exécuter tout ce qui est mentionné dans firstboot.json
.
MISE À JOUR: Si je lance chef-client -j /etc/chef/firstboot.json
manuellement, il fait le travail. Il semble donc que quelque chose ne va pas avec l'appel rc.local
. Il fonctionne seulement chef-client
même si j'ai mentionné chef-client -j /etc/chef/firstboot.json
Merci.
A-t-il les autorisations suffisantes pour effectuer les opérations indiquées dans _getting-started_ recipe? –
Je le pense. Si je cours manuellement le même script, la recette est bien exécutée. Dois-je chercher une autorisation spécifique pour la faire fonctionner via 'rc.local'? En outre, je pense utiliser 'cloudinit' comme alternative. Mais ce problème ne devrait pas être si difficile à casser. Je suppose qu'il me manque quelque chose d'évident. Merci pour votre temps. – slayedbylucifer