марионетка больше не может управлять службами в ubuntu 18

Я пытался настроить новый сервер через нашего марионеточного мастера. Это должно было быть быстрым делом, все там работало довольно надежно и до сих пор работает на старых серверах.

Просто новый сервер - первый, на котором запущена Ubuntu 18, и марионетка, похоже, не может запустить Сервисы. Вот пример ошибки, которую я получаю при попытке убедиться в том, что служба запущена:

Ошибка: / Stage [main] / Influxdb / Service [Influxdb] / sure: изменение с остановленного на запущенное не удалось: не удалось найти init сценарий для 'infxdb'

В отладочных данных я вижу следующее:

Executing: '/usr/sbin/service influxdb status'
Service[influxdb](provider=debian): Could not find influxdb in /etc/init.d
Service[influxdb](provider=debian): Could not find influxdb.sh in /etc/init.d

Фактически нет файла, относящегося к службе в /etc/init.d, но он никогда не требовался раньше. Если я запустил sudo / usr / sbin / service infxdb status из консоли, команда заработает. Так почему же марионеточный агент не может точно управлять службой?

Обратите внимание, что я не уверен на 100%, что проблема связана с ubuntu 18. Это единственное существенное изменение, о котором я могу думать, и, по-видимому, были некоторые изменения с systemd в Ubuntu 18, хотя я еще не совсем понимаю, что они из себя представляют. Я хотел бы получить решение, которое не требует от меня переписывать все мои служебные файлы и иметь марионеточную настройку, которая работает на серверах, на которых все еще работает старая ОС, а также на серверах с новой. Может ли кто-нибудь помочь мне в этом?

1
задан 25 February 2019 в 17:54
2 ответа

Таким образом, причиной этого является использование слишком старой версии Puppet на более новой ОС. Puppet 4.10.12 (который использует OP)не знает об Ubuntu 18.04 и о том, что он использует systemd в качестве выбранной системы инициализации. Эвристика в этой версии Puppet в основном знает, что systemd используется в версиях Ubuntu с 15.04 по 17.10 включительно. В версии Puppet 5.3.6, в которой официально добавлена ​​поддержка Ubuntu 18.04, эта версия добавлена ​​в список известных версий, использующих systemd. В более поздних версиях Puppet логика изменилась так, что systemd используется во всех версиях Ubuntu , за исключением версий с 10.04 по 14.10, что должно упростить задачу, когда выйдет следующий выпуск Ubuntu.

2
ответ дан 3 December 2019 в 17:32

Если бы я столкнулся с этой проблемой, я бы предпринял следующие шаги:

  1. Я бы взял сценарий infxdb init.sh, который по умолчанию можно найти на вашем сервере Infxdb в путь /usr/lib/influxdb/scripts/init.sh и скопируйте его в /etc/init.d/influxdb .

  2. Сделайте скрипт исполняемым: chmod u + x /etc/init.d/influxdb

  3. Повторно запустите Puppet.

Если вы не можете найти этот сценарий инициализации, то я загрузил его на pastebin.com, вот ссылка ( Я взял его со своего сервера, на котором установлена ​​версия 1.6.4): https://pastebin.com/fkHRGfZH

Если вы хотите, чтобы служба запускалась во время загрузки, запустите:

update-rc.d influxdb defaults

И он скопирует файл, который вы создали в /etc/init.d/ Influxdb на каждый указанный вами уровень выполнения.

2
ответ дан 3 December 2019 в 17:32

Теги

Похожие вопросы