ошибка клиента-шеф-повара: Errno :: ENOENT: нет такого файла или каталога @ rb_sysopen - / etc / chef / chef_guid - PullRequest
0 голосов
/ 21 марта 2020

Мы используем тестовую кухню для тестирования наших поваренных кулинарных книг.

При запуске клиента-шеф-повара внутри кухонного контейнера я вижу эту ошибку:

[2020-03-21T07:22:21+00:00] WARN: *****************************************
[2020-03-21T07:22:21+00:00] WARN: Did not find config file: /etc/chef/client.rb, using command line options.
[2020-03-21T07:22:21+00:00] WARN: *****************************************
Starting Chef Client, version 14.2.0

Running handlers:
[2020-03-21T07:22:23+00:00] ERROR: Running exception handlers
Running handlers complete
[2020-03-21T07:22:23+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 01 seconds
[2020-03-21T07:22:23+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2020-03-21T07:22:23+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2020-03-21T07:22:23+00:00] FATAL: Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/chef/chef_guid

Я уже запустил

$ kitchen create
$ kitchen converge

на хосте.

На виртуальной машине для кухни каталог / etc / chef не существует.

[root@kitchen-test ~]# ls /etc/chef
ls: cannot access /etc/chef: No such file or directory

Я пытаюсь запустить chef- клиент в режиме уровня журнала трассировки, поскольку кухонные конвергенции не имеют регистрации трассировки. Кухня сходится только поддерживает уровень отладки.

Версии:

Test Kitchen version 2.3.3 (on host) with dokken driver
Chef: 14.2.0 (in kitchen vm)

1 Ответ

0 голосов
/ 22 марта 2020

У меня есть хакерский способ запустить chef-client в режиме трассировки на клиентском узле кухни.

Во время работы кухонной конвергенции сделайте резервную копию файлов в / opt / kitchen где-нибудь в безопасности. Я выбрал / tmp

rync -av /opt/kitchen /tmp/

Убить кухню, выполнив ^ C, или дайте ей завершиться.

Структура / opt / kitchen должна выглядеть примерно так:

[root@node kitchen]# ls -a /tmp/kitchen/
.  ..  cache  chef_guid  client.pem  client.rb  clients  cookbooks  data_bags  dna.json  encrypted_data_bag_secret  environments  nodes  ohai  validation.pem

Теперь запустите chef-zero

# /opt/chef/embedded/bin/ruby /opt/chef/embedded/lib/ruby/gems/2.5.0/gems/chef-zero-14.0.6/bin/chef-zero &
(# /opt/chef/embedded/bin/chef-zero & might work too)

Загрузить все на сервер chef-zero

# cd /opt/kitchen
# /opt/chef/embedded/bin/knife upload . --chef-zero-host localhost --chef-zero-port 1 -c client.rb -V

Теперь запустите chef-client в режиме трассировки

# /opt/chef/embedded/bin/chef-client -z -l trace -F doc -c /opt/kitchen/client.rb -j /opt/kitchen/dna.json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...