Шеф-клієнт не оновлює кулінарну книгу з сервера


9

У мене є кулінарна книга кухаря (для апаче2). Він не працює на одному вузлі. Тому я намагаюся налаштувати його та оновити, але, схоже, вузол не завантажує нову версію. Мені вдалося завантажити все на сервер шеф-кухаря з моєї локальної машини knife upload ., що успішно, і роздруковує, що він завантажив біт кухарської книги apache2, який я змінив.

Коли я вручну запускаю (як root) chef-clientна вузлі, я можу бачити, як він звертається до сервера, отримує список запуску тощо. Проте файли рецептів /var/cache/chef/cookbooks/apache2- це старі файли. І рецепт виходить з ладу (тому що він не має змін, які я внесла).

Як змусити клієнта-шеф-кухаря на вузлі використовувати нову оновлену версію кулінарної книги apache2? Чи потрібно нарікати номер версії у кулінарній книзі (я цього не робив)?

chef-client -l debug вихід:

[2015-01-30T10:51:31+01:00] DEBUG: Synchronizing cookbook apache2
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_ldap.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_xsendfile.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_auth_openid.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_setenvif.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_python.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_authz_host.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_proxy_ajp.rb, as the cache is up to date.
[2015-01-30T10:51:31+01:00] DEBUG: Not storing cookbooks/apache2/recipes/mod_expires.rb, as the cache is up to date.
(lots of this for all files)

Я новачок в шеф-кухарі, тому, можливо, я допустив помилку для початківців.


Перейдіть на веб-інтерфейс шеф-кухаря та перевірте, чи є зміни у кулінарній книзі.
Драко Атер

1
Переконайтесь, що ви побігли knife cookbook upload <cookbook_name>. Якщо це не вирішує проблему, спробуйте збільшити версію, а потім запустіть, knife cookbook list <cookbook_name>щоб переконатися, що ви дійсно завантажуєте її. Крім того, запустіть knife cookbook download(в іншому каталозі), щоб знищити те, що сервер вважає правильним кодом.
Теджай Кардон

Відповіді:


6

Я думаю, є кілька речей, які можуть вам допомогти.

  1. Переконайтеся, що версія кулінарної книги, яку ви завантажуєте, є останньою версією

    Поширена проблема з версією кулінарної книги полягає в тому, що ви можете змінювати кулінарну версію 1.0.0 локально та завантажувати, але сервер шеф-кухарів уже додав до неї кулінарну книгу версії 1.0.1. У такому випадку клієнти шеф-кухарів зазвичай отримують останню версію (якщо не сказано інше), і ваші зміни ніколи не синхронізуються з локальним кешем.

    Ви можете переглянути всі поточні версії кулінарної книги на Chef Server через: knife cookbook show apache2

    Одним із варіантів цього рішення є те, про яке ви згадали - збільшити номер своєї версії понад те, що існує на Chef Server, тобто 1.0.2 та завантажувати.

    Інший метод - видалити будь-які інші кулінарні книги apache2 з Chef Server і перезавантажити потрібну вам. Для цього не потрібні оновлення номерів версії, і кінцевим результатом є те, що Chef Server матиме єдину кулінарну книгу apache2.

  2. Перевірте, що ваші зміни справді вносять його до Chef Server

    Використовуючи knife cookbook show apache2 <cookbook version> recipes default.rb Замінити версію, шлях та ім'я файлу - наприклад, якщо ви хочете переглянути шаблон під назвою foo.erb:knife cookbook show apache2 0.1.0 templates foo.erb

    Ця команда запитає файл із сервера шеф-кухарів та відображатиме вихід у вашому терміналі. Це простий спосіб визначити, що внесені вами зміни завантажуються через knife cookbook upload.

Крім цього, якщо це не допоможе, додавання подробиць про knifeверсію, chef-serverверсію, chef-clientверсію, а також журнал налагодження knife cookbook upload apache2 -VVбуде корисним для подальшої налагодження.


1
Дякую тобі за цю відповідь ... Це призвело до того, що ми мали обмеження в кулінарній книзі у виробничому середовищі, а не в нашому середовищі / production.rb, але встановлені berkshelf! Я навіть не знав, що це може зробити. У будь-якому разі, після повторного завантаження нашого середовища production.rb, новий шеф-кухар підібрав нашу останню кулінарну книгу додатків.
Колін Кертін

2

Спочатку налагоджуйте всі версії кулінарних книг на сервері, а потім перевірте, яку версію кулінарної книги завантажує клієнт. якщо він старий, просто перевірте, чи є на сервері оновлена ​​версія. якщо це також так, будь ласка, перейдіть на інтерфейс шеф-кухаря сервера та перевірте наявність env. ви можете встановити поведінку, в якій вказано обмеження кулінарних книг. Оновіть версію там і вона почне працювати знову.


1

Іншою причиною цього може бути те, що не всі залежності кулінарної книги присутні на шеф-кухарі-сервері. Я наткнувся на це саме зараз, і з'явилася нова версія моєї кулінарної книги, knife cookbooks listале мій клієнт не використовував нову версію. Після деякої налагодження я виявив, що Berkshelf, ні ножем не завантажили нову залежність для моєї кулінарної книги. Після того як я завантажив це, клієнт почав використовувати новішу версію.


Переконайтесь, що ви запустили завантаження кулінарної книги з ножем <cookbook_name>
Net Runner
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.