diff --git a/init-server.sh b/init-server.sh index f5d2644..777eda5 100644 --- a/init-server.sh +++ b/init-server.sh @@ -13,14 +13,18 @@ set -e export DEBIAN_FRONTEND=noninteractive +# Prepare app environment: apt update -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 echo "Timezone changed:" timedatectl +# add new sudo user: if id "$USERNAME" &>/dev/null; then echo "User $USERNAME already exists" else diff --git a/secrets-export.sh b/secrets-export.sh deleted file mode 100644 index 084d3b1..0000000 --- a/secrets-export.sh +++ /dev/null @@ -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 \ No newline at end of file diff --git a/secrets-import.sh b/secrets-import.sh deleted file mode 100644 index 4bbe123..0000000 --- a/secrets-import.sh +++ /dev/null @@ -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." \ No newline at end of file diff --git a/ssh-copy-origin.sh b/ssh-copy-origin.sh new file mode 100644 index 0000000..b460b87 --- /dev/null +++ b/ssh-copy-origin.sh @@ -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" \ No newline at end of file