Осуществить ответы на работу скрипта запущенного из скрипта bash?

Развернул openvpn сервер, автоматизировал процесс сборки конфига и зависимых ключей и сертификатов создаваемых для клиента с упаковкой в архив на сетевое хранилище для сертификатов(доступы к хранилищу имеют админы и бот). Возник такой вопрос, при создании сертификата и ключа клиента, запускаются скрипты easy-rsa, где нужно подтверждение "yes", запрос ввода названия(по факту заентерить можно) и финальное идёт запрос пароля от сервиса авторизации(ca.crt). Вопрос собственно в чем, как при запуске этих easy-rsa скриптов отправлять на них ответы в автоматическом режиме? Имя клиента заводится в созданную переменную. Пробовал использовать echo, но данные команды скрипт шлет уже после отработки easy-rsa скриптов. Может кто помочь? Буду признателен.

Сделал, как в ответе ниже, может кому поможет:
dir=/usr/share/easy-rsa/3
cd $dir
. ./vars
./easyrsa --batch gen-req $client nopass

expect << EOF
        spawn ./easyrsa --batch sign-req client $client
        expect "*ca.key:" {send "PASSWORD\r"}
        expect eof
EOF
  • Вопрос задан
  • 554 просмотра
Решения вопроса 2
@q2digger
никого не трогаю, починяю примус
сертификаты для openvpn можно генерить в полностью автоматическом режиме.
для этого надо в pkitool (это скрипт который их генерит) есть --batch , ну и если нужно чтобы сертификаты были закрыты паролем (а пароли надо генерить автоматически), придется немного допилить опцию --pass
openssl умеет принимать пароль из текстового файла.
примерно так в конфиге
-passout file:/etc/openvpn/easy-rsa/keys/password.txt
Ответ написан
@DimkaI
Системный адинистратор, разработчик ПО
Этот вопрос уже поднимался здесь.
И там даже есть решение
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AVKor
Безотносительно конкретной ситуации: автоматизировать ввод на запросы можно командой yes (см. тут), а также использовать expect (например, 1, 2).

Пригодится на будущее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы