Как подтвердить lets-encrypt — пробный запуск теста в bash через пользовательские данные aws

#bash #aws-sdk #lets-encrypt #user-data

#bash #aws-sdk #позволяет зашифровать #пользовательские данные

Вопрос:

Я написал сценарий запуска с использованием php и aws sdk, он вызывает соответствующий userdata.sh скрипт для настройки экземпляра aws. Часть функции скриптов заключается в настройке ssl-сертификата через lets encrypt, после установки lets-encrypt и внесения изменений для ip и т.д., Которые в конечном итоге вызываются:

echo $(/opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/html/$host.com/$environment.$domain.com -d $environment.$domain.com -d www.$environment.$domain.com -c /opt/letsencrypt/config.ini --agree-tos -n --dry-run)

Приведенное выше возвращает:

Запрос на повторный запуск / opt / letsencrypt / certbot-auto с правами root… Сохранение журнала отладки в /var/log /letsencrypt / letsencrypt.log Выбранные плагины: Authenticator webroot, Installer None Сертификат не подлежит обновлению, но имитирует обновление для пробного запуска Обновление существующего сертификата, выполняющего следующие задачи: http-01 вызов для environment.domain.com http-01 запрос для www.environment.domain.com Используя путь к веб-корню /var/www / html /host.com/environment.domain.com для всех несопоставимых доменов. Ожидание подтверждения… Проблемы с очисткой

ВАЖНЫЕ ПРИМЕЧАНИЯ: — Пробный запуск прошел успешно.

Я хочу убедиться, что тест прошел успешно, прежде чем пытаться запустить ту же команду снова без --dry-run флага. Как я могу это сделать?

Ответ №1:

Надеюсь, это поможет кому-то еще в будущем:

$testval = /opt/letsencrypt/certbot-auto certonly --webroot -w /var/www/html/$host.com/$environment.$domain.com -d $environment.$domain.com -d www.$environment.$domain.com -c /opt/letsencrypt/config.ini --agree-tos -n --dry-run

if [[ $($testval) == *" - The dry run was successful."* ]]; then
echo "true";
else
echo "false";
fi