Я использую Rundeck для запуска определенного скрипта bash, который клонирует данные сайта из одной среды в другую.Сам сценарий полагается на одну основную функцию для выполнения большинства каждого из этапов задачи.
В настоящее время скрипт переносит неполные данные и оставляет пользовательский интерфейс неработоспособным.Во время процесса дампа и восстановления SQL не устанавливается соединение SSH, необходимое для завершения процесса с одного хоста на другой:
ssh: подключение к порту хоста ctl001.remote.server.com8022: Тайм-аут соединения
Я попробовал все основы.Наша инфраструктура построена с использованием экземпляров AWS и использует их, поэтому я убедился, что соответствующие IP-адреса были внесены в белый список в соответствующих группах безопасности (брандмауэры серверного программного обеспечения не используются).Я убедился, что синтаксис правильный, а ошибочные опечатки были устранены.
На этом этапе я хотел бы использовать scp или rsync для передачи данных, вместо того, чтобы продолжать пытаться заставить его работать с открытым SSH-соединением.После этого мне нужно убедиться, что дамп SQL восстанавливается в целевой БД.Если это не лучший путь вперед, пожалуйста, дайте мне знать.Я полностью открыт для любых предложений и идей.
Часть функции «изменения», используемая сценарием для извлечения и передачи информации с одного хоста на другой, как указано выше, такова, какследует (я добавил первые два блока для контекста):
if [[ "${SOURCE_ENVIRONMENT}" == "${TARGET_ENVIRONMENT}" ]]
then
# Copy database directly
run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
"mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 envname_${SOURCE_CLIENT} | \
mysql -hdbm${TARGET_CLUSTER_NUM}01 envname_${TARGET_CLIENT}"
run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
"mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 api_${SOURCE_CLIENT} | \
mysql -hdbm${TARGET_CLUSTER_NUM}01 api_${TARGET_CLIENT}"
else
# Copy database over SSH
run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
"ssh ctl001.${SOURCE_ENVIRONMENT}.server.com -- \
'mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 envname_${SOURCE_CLIENT}' | \
mysql -hdbm${TARGET_CLUSTER_NUM}01 envname_${TARGET_CLIENT}"
run_remote_command "ctl001.${TARGET_ENVIRONMENT}.server.com" \
"ssh ctl001.${SOURCE_ENVIRONMENT}.server.com -- \
'mysqldump -hdbm${SOURCE_CLUSTER_NUM}01 api_${SOURCE_CLIENT}' | \
mysql -hdbm${TARGET_CLUSTER_NUM}01 api_${TARGET_CLIENT}"
fi
Результаты должны быть гладким, однозначным прямым зеркалом сайта, с которого были скопированы данные и статические визуальные элементы..