This commit is contained in:
leo 2024-08-05 04:22:16 +05:00
parent 2aa19dc62a
commit bbbe044dac
4 changed files with 32 additions and 90 deletions

View File

@ -13,14 +13,18 @@ set -e
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
# Prepare app environment:
apt update -y apt update -y
apt upgrade -y apt upgrade -y
apt install -y mc vim zip pwgen apt install -y mc vim pwgen
# ... zip
# Set timezone:
timedatectl set-timezone Asia/Yekaterinburg timedatectl set-timezone Asia/Yekaterinburg
echo "Timezone changed:" echo "Timezone changed:"
timedatectl timedatectl
# add new sudo user:
if id "$USERNAME" &>/dev/null; then if id "$USERNAME" &>/dev/null; then
echo "User $USERNAME already exists" echo "User $USERNAME already exists"
else else

View File

@ -1,41 +0,0 @@
#!/bin/bash
# Переменные
SOURCE_DIR="/data/secrets"
ARCHIVE_NAME="secrets.tar.gz.enc"
REMOTE_USER="remote_user"
REMOTE_HOST="remote_host"
REMOTE_DIR="/secrets"
PASSWORD_FILE="$SOURCE_DIR/secrets.env"
# Путь к зашифрованному архиву
ARCHIVE_PATH="$SOURCE_DIR/$ARCHIVE_NAME"
# Чтение пароля из файла
if [ -f "$PASSWORD_FILE" ]; then
PASSWORD=$(cat "$PASSWORD_FILE")
else
echo "Файл с паролем не найден: $PASSWORD_FILE"
exit 1
fi
# Создание tar.gz архива и шифрование его
tar -czf - "$SOURCE_DIR" | openssl enc -aes-256-cbc -e -pass pass:"$PASSWORD" -out "$ARCHIVE_PATH"
if [ $? -ne 0 ]; then
echo "Не удалось создать и зашифровать архив"
exit 1
fi
# Отправка архива на удаленный сервер
rsync -avz "$ARCHIVE_PATH" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
if [ $? -ne 0 ]; then
echo "Не удалось отправить архив на удаленный сервер"
exit 1
fi
# Удаление архива после успешной отправки (опционально)
rm -f "$ARCHIVE_PATH"
echo "Успешно завершено!"
exit 0

View File

@ -1,48 +0,0 @@
#!/bin/bash
REMOTE_USER="remote_user"
REMOTE_HOST="remote_host"
REMOTE_DIR="/secrets"
REMOTE_FILE="secrets.env.tar.gz"
LOCAL_SECRETS_DIR="/data/secrets"
ARCHIVE_PATH="$LOCAL_SECRETS_DIR/$REMOTE_FILE"
PASSWORD_FILE="$LOCAL_SECRETS_DIR/secrets.env"
# Скачиваем файл с удаленного сервера
rsync -avz --progress $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/$REMOTE_FILE $LOCAL_SECRETS_DIR
# Проверяем успешность скачивания
if [ $? -ne 0 ]; then
echo "Ошибка: не удалось скачать файл $REMOTE_FILE."
exit 1
fi
# Проверяем, существует ли файл $PASSWORD_FILE
if [ ! -f "$PASSWORD_FILE" ]; then
echo "Ошибка: файл с паролем $PASSWORD_FILE не найден."
exit 1
fi
# Извлекаем пароль из файла
PASSWORD=$(cat "$PASSWORD_FILE")
# Проверяем, существует ли папка $LOCAL_SECRETS_DIR
if [ -d "$LOCAL_SECRETS_DIR" ]; then
# Переименовываем старую папку
mv "$LOCAL_SECRETS_DIR" "${LOCAL_SECRETS_DIR}_old"
fi
# Создаем новую папку
mkdir -p "$LOCAL_SECRETS_DIR"
# Распаковываем и расшифровываем файл в новую папку
cd "$LOCAL_SECRETS_DIR"
echo "$PASSWORD" | gpg --batch --yes --passphrase-fd 0 -d "$ARCHIVE_PATH" | tar -xz
# Проверяем успешность распаковки
if [ $? -ne 0 ]; then
echo "Ошибка: не удалось распаковать файл $REMOTE_FILE."
exit 1
fi
echo "Файл $REMOTE_FILE успешно скачан, расшифрован и распакован в $LOCAL_SECRETS_DIR."

27
ssh-copy-origin.sh Normal file
View File

@ -0,0 +1,27 @@
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo -e "\033[31mThis script requires superuser rights.\033[0m"
exit 0
fi
if [ -z "$1" ]; then
echo "Please provide SERVER_HOST as argument"
exit 1
fi
REMOTE_USER="root"
SERVER_HOST=$1
SECRETS_PATH=/data/secrets/$SERVER_HOST/$SERVER_HOST.env
source $SECRETS_PATH
trap 'echo -e "\033[31mremote.sh: Something went wrong\033[0m"; exit 1' ERR
set -e
export DEBIAN_FRONTEND=noninteractive
sshpass -p $SERVER_ORIGIN_PASSWORD ssh-copy-id -i ~/.ssh/id_ed25519.pub $REMOTE_USER@$SERVER_ORIGIN_DOMAIN
trap - ERR
echo "SSH public key for server host $SERVER_HOST complete installed on $SERVER_ORIGIN_DOMAIN"