Ошибка SystemD при попытке добавить контейнер Docker - PullRequest
0 голосов
/ 04 января 2019

У меня тестовый модуль puppetlabs .

Я добавил следующий код для моего мастера кукол в качестве теста:

  docker::run { 'helloworld':
    image   => 'base',
    command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"',
  } 

на моих марионеточных клиентах я использую Amazon Linux AMI.При выполнении кукольного запуска я получаю следующую ошибку:

Ошибка: / Stage [main] / Base / Docker :: Run [helloworld] / Service [docker-helloworld]: поставщик systemd isне работает на этом хосте

Что имеет смысл, в Amazon Linux нет Systemd.Как правильно решить эту проблему?Есть ли способ заставить модуль Docker работать без systemd?

1 Ответ

0 голосов
/ 04 января 2019

Не похоже, что используемый вами модуль Docker на самом деле поддерживает Amazon Linux, если вы посмотрите на код здесь .

В Amazon Linux 1,

# facter osfamily 
RedHat

Итак, есть предположение, что все семейство ОС Redhat linux использует Systemd.

Согласно этому ответу , вы можете фактически включить Systemd в Amazon Linux.Другой вариант - использовать Amazon Linux 2.

Если это не удастся, вам понадобится установить явную поддержку Amazon Linux 1 в модуле Docker.Это, наверное, не сложно сделать.Вы можете обнаружить, что можете внести незначительные изменения в этот файл params.pp и отправить его в PR-апстрим, или разветвить его локально, если хотите.

...