diff --git a/digitalocean/createblockstorage.sh b/digitalocean/createblockstorage.sh new file mode 100644 index 00000000..09931b84 --- /dev/null +++ b/digitalocean/createblockstorage.sh @@ -0,0 +1,80 @@ +#!/bin/bash +set -e + +if [ $# -eq 0 ] + then + echo "usage: bash createblockstorage.sh [droplet-name]" && exit 1 +fi + +DROPLET_NAME=$1 + +#Install doctl + +echo "Installing doctl..." + +sudo snap install doctl + +#Create config folder as suggested in doctl documentation + +sudo mkdir -p ~/.config + +#Access doctl account + +echo "Accessing digital ocean account..." +doctl auth init --context data-migration +doctl auth switch --context data-migration + +#Get droplet region and id +echo "Fetching droplet information..." + +DROPLET_INFO=$(doctl compute droplet get $DROPLET_NAME --format "ID, Region") +DROPLET_ID=$(echo $DROPLET_INFO | awk '{ print $3; }') +REGION=$(echo $DROPLET_INFO | awk '{ print $4; }') + +#Create a new volume and attach it to the droplet +echo "Creating a new volume..." +VOLUME_ID=$(doctl compute volume create --region $REGION --size 10GiB lamassu-data --format "ID" | sed -n 2p) + +echo "Attaching to the droplet..." +doctl compute volume-action attach $VOLUME_ID $DROPLET_ID + +#Create partition and format +echo +echo "Creating a new partition..." +echo + + +sudo apt-get update +yes | sudo apt-get install parted + +sudo parted /dev/disk/by-id/scsi-0DO_Volume_lamassu-data mklabel gpt +sudo parted -a opt /dev/disk/by-id/scsi-0DO_Volume_lamassu-data mkpart primary ext4 0% 100% + +echo +echo "Formatting the new volume..." +echo + +sleep 4 +sudo mkfs.ext4 -L lamassudata /dev/disk/by-id/scsi-0DO_Volume_lamassu-data-part1 + +#Mounting the new volume +echo +echo "Mounting the new volume..." +echo + +sudo mkdir -p /mnt/lamassu-data +sudo mount -o defaults,nofail,discard,noatime /dev/disk/by-id/scsi-0DO_Volume_lamassu-data-part1 /mnt/lamassu-data + +#Persistent mounting +echo "/dev/disk/by-id/scsi-0DO_Volume_lamassu-data-part1 /mnt/lamassu-data ext4 defaults,nofail,discard,noatime 0 2" | sudo tee -a /etc/fstab + +echo +echo "New block storage volume successfully installed!" +echo "Can be accessed at: /mnt/lamassu-data" +echo + + + + + + diff --git a/digitalocean/migratedata.sh b/digitalocean/migratedata.sh new file mode 100644 index 00000000..b484e614 --- /dev/null +++ b/digitalocean/migratedata.sh @@ -0,0 +1,134 @@ +#!/bin/bash +set -e + +echo +echo "Initializing data migration to the new block storage volume..." +echo + +NEW_VOLUME_MOUNTING_POINT=/mnt/lamassu-data + +CERT_DIR=/etc/ssl/certs +KEY_DIR=/etc/ssl/private +CONFIG_DIR=/etc/lamassu + +LAMASSU_CA_PATH=$CERT_DIR/Lamassu_CA.pem +CA_KEY_PATH=$KEY_DIR/Lamassu_OP_Root_CA.key +CA_PATH=$CERT_DIR/Lamassu_OP_Root_CA.pem +SERVER_KEY_PATH=$KEY_DIR/Lamassu_OP.key +SERVER_CERT_PATH=$CERT_DIR/Lamassu_OP.pem +MNEMONIC_DIR=$CONFIG_DIR/mnemonics +MNEMONIC_FILE=$MNEMONIC_DIR/mnemonic.txt +BACKUP_DIR=/var/backups/postgresql +BLOCKCHAIN_DIR=/mnt/blockchains +OFAC_DATA_DIR=/var/lamassu/ofac +ID_PHOTO_CARD_DIR=/opt/lamassu-server/idphotocard +FRONTCAMERA_DIR=/opt/lamassu-server/frontcamera + +mkdir -p $NEW_VOLUME_MOUNTING_POINT$CERT_DIR +mkdir -p $NEW_VOLUME_MOUNTING_POINT$KEY_DIR +mkdir -p $NEW_VOLUME_MOUNTING_POINT$MNEMONIC_DIR +mkdir -p $NEW_VOLUME_MOUNTING_POINT/var/backups +mkdir -p $NEW_VOLUME_MOUNTING_POINT/mnt +mkdir -p $NEW_VOLUME_MOUNTING_POINT/var/lamassu +mkdir -p $NEW_VOLUME_MOUNTING_POINT/opt/lamassu-server + +if [ -f $LAMASSU_CA_PATH ]; +then + cp $LAMASSU_CA_PATH $NEW_VOLUME_MOUNTING_POINT$CERT_DIR + echo "Successfully migrated $LAMASSU_CA_PATH" +else + echo "Failed to migrate $LAMASSU_CA_PATH, file doesn't exist!" +fi + +if [ -f $CA_KEY_PATH ]; +then + cp $CA_KEY_PATH $NEW_VOLUME_MOUNTING_POINT$KEY_DIR + echo "Successfully migrated $CA_KEY_PATH" +else + echo "Failed to migrate $CA_KEY_PATH, file doesn't exist!" +fi + +if [ -f $CA_PATH ]; +then + cp $CA_PATH $NEW_VOLUME_MOUNTING_POINT$CERT_DIR + echo "Successfully migrated $CA_PATH" +else + echo "Failed to migrate $CA_PATH, file doesn't exist!" +fi + +if [ -f $SERVER_KEY_PATH ]; +then + cp $SERVER_KEY_PATH $NEW_VOLUME_MOUNTING_POINT$KEY_DIR + echo "Successfully migrated $SERVER_KEY_PATH" +else + echo "Failed to migrate $SERVER_KEY_PATH, file doesn't exist!" +fi + +if [ -f $SERVER_CERT_PATH ]; +then + cp $SERVER_CERT_PATH $NEW_VOLUME_MOUNTING_POINT$CERT_DIR + echo "Successfully migrated $SERVER_CERT_PATH" +else + echo "Failed to migrate $SERVER_CERT_PATH, file doesn't exist!" +fi + +if [ -f $MNEMONIC_FILE ]; +then + cp $MNEMONIC_FILE $NEW_VOLUME_MOUNTING_POINT$MNEMONIC_DIR + echo "Successfully migrated $MNEMONIC_FILE" +else + echo "Failed to migrate $MNEMONIC_FILE, file doesn't exist!" +fi + +if [ -d $BACKUP_DIR ]; +then + cp -r $BACKUP_DIR $NEW_VOLUME_MOUNTING_POINT/var/backups + echo "Successfully migrated $BACKUP_DIR" +else + echo "Failed to migrate $BACKUP_DIR, directory doesn't exist!" +fi + +if [ -d $BLOCKCHAIN_DIR ]; +then + cp -r $BLOCKCHAIN_DIR $NEW_VOLUME_MOUNTING_POINT/mnt + echo "Successfully migrated $BLOCKCHAIN_DIR" +else + echo "Failed to migrate $BLOCKCHAIN_DIR, directory doesn't exist!" +fi + +if [ -d $OFAC_DATA_DIR ]; +then + cp -r $OFAC_DATA_DIR $NEW_VOLUME_MOUNTING_POINT/var/lamassu + echo "Successfully migrated $OFAC_DATA_DIR" +else + echo "Failed to migrate $OFAC_DATA_DIR, directory doesn't exist!" +fi + +if [ -d $ID_PHOTO_CARD_DIR ]; +then + cp -r $ID_PHOTO_CARD_DIR $NEW_VOLUME_MOUNTING_POINT/opt/lamassu-server + echo "Successfully migrated $ID_PHOTO_CARD_DIR" +else + echo "Failed to migrate $ID_PHOTO_CARD_DIR, directory doesn't exist!" +fi + +if [ -d $FRONTCAMERA_DIR ]; +then + cp -r $FRONTCAMERA_DIR $NEW_VOLUME_MOUNTING_POINT/opt/lamassu-server + echo "Successfully migrated $FRONTCAMERA_DIR" +else + echo "Failed to migrate $FRONTCAMERA_DIR, directory doesn't exist!" +fi + + +echo "Migration completed!" + + + + + + + + + +