Я новичок в Rundeck и полностью удивлен этим, и я пытаюсь выполнить работу, и мой сценарий подробно описан ниже:

  • В Rundeck настроена проверка подлинности без пароля по ssh для главного пользователя между узлом Server (сервер rundeck) и узлом Target (удаленный хост Solaris) для пользователя "master".
  • В узле Target я хочу выполнить скрипт /app/acme/stopApp.sh с пользователем appmanager
  • Обычно и вручную, когда мне нужно запустить скрипт выше, я продолжаю с

    ssh master@server 
    sudo su - appmanager
    

    или просто

    ssh -t master@server 'sudo su - appmanager'
    

    работает без пароля и наконец запускается (как appmanager)

    /app/acme/stopApp.sh
    

Но я не уверен, как я могу воспроизвести эти шаги, используя Rundeck. В некоторых предыдущих сообщениях я читал, что для каждой рабочей строки rundeck использует новое ssh-соединение, поэтому приведенный ниже рабочий процесс всегда дает сбой для меня с сообщениями:

sudo: no tty present and no askpass program specified
Remote command failed with exit status 1

Пожалуйста, кто-то может помочь мне с некоторой информацией, чтобы решить эту проблему.

Без этой функциональности я не смог бы представить немного DevOps в моем отделе.

Я прочитал руководство пользователя и руководство администратора, но не смог найти ни простого примера на этом форуме.

2 ответа2

0

Проблема может заключаться в том, что /etc /sudoers имеет "requiretty" ... что означает, что вам нужен tty для запуска команды sudo. Одним из исправлений является удаление этого требования для конкретного пользователя, добавив его в /etc /sudoers на машинах:

Defaults:someuser !requiretty

0

Поскольку я ничего не знаю о rundeck, прислушайтесь к моему совету с большим количеством соли, но если вы получаете сообщение no tty present от sudo, скорее всего, sudo'ing на этот аккаунт, с которого когда-либо приходил аккаунт , не допускается с директивой NOPASSWORD в файле sudoers, и он ожидает, что вы введете пароль. И так как вы устанавливаете соединение без подключения (т.е. notty), оно не может быть найдено после того, как не найдено место для чтения этого пароля.

Сканируйте файл sudoers и посмотрите, сможете ли вы найти соответствующую строку относительно этой комбинации sudo/login и поиграть с ней.

В менее вероятном сценарии rundeck может каким-то образом переопределить sudo, но я не слишком на это рассчитываю.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .