Ошибка chef-client: Errno::ENOENT: нет такого файла или каталога @ rb_sysopen - /etc/chef/chef_guid
Мы используем тестовую кухню, чтобы проверить наши поваренные книги.
При запуске chef-client внутри кухонного контейнера я вижу такую ошибку:
[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-client в режиме уровня журнала трассировки, поскольку на кухне сходится журнал трассировки. кухня сходится поддерживает только уровень отладки.
Версии:
Test Kitchen version 2.3.3 (on host) with dokken driver
Chef: 14.2.0 (in kitchen vm)
1 ответ
У меня есть хакерский способ запустить chef-client в режиме трассировки на клиентском узле кухни.
Пока работает kitchen converge, сделайте резервную копию файлов в / 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