Ansible logsta sh установка - PullRequest
       4

Ansible logsta sh установка

0 голосов
/ 27 февраля 2020

Я пытаюсь установить Logsta sh, используя Ansible на RHEL 7.
После установки я не могу запустить службу logsta sh. Я получаю service not found ошибку. Я искал в сети и нашел следующую команду.

/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

После чего запустилась служба logsta sh.

Я сделал то же самое в своей книге игр чуть выше команды systemd. Но это не идемпотент. Первая задача выполняется каждый раз. У меня есть два вопроса:
1. Есть ли способ достичь этого, кроме использования оболочки?
2. Какие условия when я могу поставить в этой задаче, чтобы сделать ее идемпотентной. Если я проверяю статус сервиса и помещаю статус в состояние «когда», то мне нужно написать его снова в конце, чтобы гарантировать статус (дублированные задачи). Или же мне просто нужно запустить эту команду только при первом запуске на этом сервере. Это возможно? Пожалуйста посоветуй.

    - name: generate logstash.service file for systemd
      shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd

    - name: Enable and restart logstash.service
      systemd:
       name: logstash.service
       enabled: yes
       state: restarted

1 Ответ

1 голос
/ 27 февраля 2020
  1. Если вы хотите выполнить какой-либо скрипт - вы можете использовать shell или command. В противном случае вы можете сгенерировать службу systemd самостоятельно

  2. Для этого вам не нужно использовать when, вы можете использовать ключевое слово creates в задаче оболочки.

Предполагая, что ваш файл модуля создан в /etc/systemd/system/logstash.service

Вы должны написать свою первую задачу как

 - name: generate logstash.service file for systemd
   shell: /usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd
   creates: /etc/systemd/system/logstash.service

Если ansible обнаруживает, что этот файл существует в следующий раз - он больше не будет запускать сценарий.

Другой метод заключается в том, чтобы шаблон /etc/logstash/startup.options и запустить задачу создания службы, только если ваш шаблон изменился.

...