LINUX.ORG.RU
решено ФорумAdmin

Скрипт удаленного перезапуска служб

 , ,


0

2

Добрый день. Нужна помощь: Есть в сети несколько серверов. Надо производить stop|start|status|restart служб с одного сервера на всех остальных. Написал скрипт:

#!/bin/bash

stat=$1
user='USER1'
passwd='PASSWD'

APP=('192.168.1.3' '192.168.1.4' '192.168.1.5' '192.168.1.6')

if [ -z "$stat" ]
  then
    stat='status'
fi

quest="echo 'PASSWORD' | sudo -S systemctl "$stat" wildfly"

for i in ${APP[@]}
  do
     sshpass -p $passwd ssh -l $user $i  $quest 
     echo "server "$i" "$stat 
  done

проблема в том что на серверах включен запрос пароля для sudo, и выключать это не хочу, сервера смотрят в интернет. Собственно скрипт работает при запросе статуса, а вот при отправке команд stop|start приходит ответ введите пароль. Ткните где я не так что сделал или может направите на «готовый» похожий скрипт. Ну или подскажите какое другое решение.

спасибо.

ОС CentOS.



Последнее исправление: Evreitor (всего исправлений: 1)

А вариант выполнения конкретных команд без пароля не подходит?

anc ★★★★★
()

а еще можно написать простенький плейбук для ansible в буквально один таск, а пароль задавать при запуске переменной, типа -e «ansible_become_pass=your_password»

George
()

1) не надо sudo, оно плохое

2) хоть sudo и плохое, но не до такой степени, чтобы принимать пароль с stdin-конвеера

3) если делаешь «echo password» то можешь сразу отключать спрашивание пароля sudo, хуже уже не будет

4) не надо sshpass, ssh делали не идиоты, пароль с конвеера он тоже не примет, но кто-то сделал вредный костыль (sshpass) для нейтрализации этого защитного механизма; если хочешь автоматический логин по ssh - используй ключи

5) ключ назначай сразу руту, потому что сделать по-другому хоть и можно, но ты всё равно не осилишь

firkax ★★★★★
()

пропиши в sudoers пользователю, из-под которого работаешь, запуск этой конкретной команды из-под рута без пароля. (только аккуратно с редактированием sudoers)
ssh-доступ сделай на основе ключа. распихай открытый ключ машины с которой подключаешься на все подчиненные. будешь заходить в ssh без пароля (и с большей защищенностью :) )

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)

ну так а что мешает сделать отдельную учетную запись для этих дел и ssh по ключу и для нее отменить пароль в судо?

AVL2 ★★★★★
()

systemctl умеет под капотом сам ходить по ssh (systemctl -H host), поэтому можно упростить

zolden ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.