Я пытаюсь самостоятельно загрузить узел и запустить рецепт getting-started
при первой загрузке. Кажется, все работает отлично, за исключением того, что рецепт никогда не запускается.«chef-client -j» не работает, как ожидалось
Вот мой скрипт, который запускается 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
После того, как узел загружается, я вижу, что узел регистрируется с сервером шефа однако getting-started
рецепта, который был указан в firstboot.json
вместе с chef-client -j
на последней строке моего скрипта не запускается.
Он действует как только chef-client
в настоящее время срабатывает и не chef-client -j /etc/chef/firstboot.json
Если я смотрю на свою рабочую станцию, я вижу, что этот рецепт добавляется run_list узла, а также, только, что это еще не выполнена.
Вот вывод команды из моего шефа рабочей станции для узла, который был бутстрапированная:
$ knife node show node_name.domain.com --run-list
node_name.domain.com:
run_list: recipe[getting-started]
ВОПРОС: Не могли бы вы сказать мне, что я мог бы быть здесь не хватает? почему шеф-клиент не может запускать все, что упоминалось в firstboot.json
.
UPDATE: Если я бегу chef-client -j /etc/chef/firstboot.json
вручную, то он делает работу. Так что, похоже, что-то не так с вызовом rc.local
. Он работает только chef-client
, даже если я упомянул chef-client -j /etc/chef/firstboot.json
Спасибо.
Имеет ли он достаточное количество разрешений для выполнения вещей, указанных в рецепте _getting-started_? –
Я так думаю. Если я запускаю один и тот же сценарий вручную, рецепт выполняется нормально. Должен ли я искать какое-либо конкретное разрешение в отношении запуска его через 'rc.local'? Кроме того, я думаю об использовании 'cloudinit' в качестве альтернативы. Но эту проблему не так сложно взломать. Наверное, мне не хватает чего-то очевидного. Спасибо за ваше время. – slayedbylucifer