Сервисный модуль Ansible возвращает статус службы как остановленной, когда служба фактически запущена

#cassandra #ansible #datastax-enterprise

#cassandra #ansible #datastax-enterprise

Вопрос:

Попытка остановить службу (dse datastax enterprise) с помощью ansible 2.7

    - name: Stop service dse, if started
 service:
  name: dse
  state: stopped
  

Я думаю, что ansible говорит, что я ничего не делаю, потому что эта служба уже остановлена. Часть подробного вывода:

 ok: [myhostname.domain.com] => {
"changed": false,
"invocation": {
    "module_args": {
        "daemon_reload": false,
        "enabled": null,
        "force": null,
        "masked": null,
        "name": "dse",
        "no_block": false,
        "scope": null,
        "state": "stopped",
        "user": null
    }
},
"name": "dse",
"state": "stopped",
  

Когда я проверяю службу на удаленном хосте, я вижу вот что

 [user@remotehost ~]$ service dse status
dse is running
  

Итак, чего мне здесь не хватает?
К вашему сведению sudo service dse stop , для этой службы рекомендуется выполнять a, я не знаю, будет ли отсутствие sudo иметь такое значение.

Комментарии:

1. Вы не сможете управлять системными службами, если вы не работаете как root . Попробуйте добавить become: true к этой задаче (или воспроизведению) и посмотреть, правильно ли она работает.

Ответ №1:

Я понимаю это так, поскольку у меня нет неограниченного sudo, и у меня нет возможности выполнить в /bin / sh, поэтому он терпит неудачу.

Та же команда работает при непосредственном запуске на сервере, и это потому, что

Ansible отправляет код Python для выполнения на целевых серверах. Поскольку Ansible запускает код Python и, как правило, не выполняет системные команды напрямую, вы не можете ограничивать системные команды с помощью sudo и ожидать, что они будут работать с Ansible. Подробнее: https://gist.github.com/nanobeep/3b3d614a709086ff832a

Не уверен, что у всех есть такая роскошь, но в моем случае изменение файла sudoers

От

TheGroupNameImPartOf ALL= ALL, !SU, !SHELLS

Для

TheGroupNameImPartOf ALL= ALL

Сотворил волшебство!