У меня есть несколько централизованных сценариев, которые устанавливают определенные части промежуточного программного обеспечения (например, JBoss-AS, JBoss-EWS и т.д.). Идея состоит в том, чтобы использовать ожидаемый написать сценарий, который запускает сценарий (который может содержать несколько команд и, если ..., то еще, а также структуры цикла) на другом сервере, под другим пользователем.
Что мне нужно, это сценарий ожидаемого, который выполняет что-то вроде этого:
central $ ssh <user>@<remote> "sudo local-script"
Я пытался передать вещи, как cat local-script | ssh -t <user>@<remote> sudo
, но sudo этого не допустит. Когда я получаю вышеуказанную последовательность, то есть запускаю sudo local-script
через канал ssh, тогда я могу использовать autoexpect для генерации ожидаемого файла, который работает (также такие вещи, как ssh -t <user>@<remote> sudo < cat local-script
не работает
Я знаю, что вы можете использовать это для запуска команд, которые находятся на удаленном сервере, так что это не мой вопрос.
Поскольку большинству сценариев установки, которые мы используем, нужны права root, а поскольку вы не используете NOPASSWD для root по понятным причинам, возможно ли это и как?