Add ZFS filesystem creation and OS package installation
This commit is contained in:
parent
cd11eb8ac1
commit
fc92080d55
63
install
63
install
@ -1,4 +1,4 @@
|
|||||||
#!/usr/local/bin/zsh
|
#!/usr/bin/env zsh
|
||||||
set -e
|
set -e
|
||||||
echo -n "Initializing..."
|
echo -n "Initializing..."
|
||||||
|
|
||||||
@ -56,7 +56,7 @@ HOSTNAME=$(hostname)
|
|||||||
|
|
||||||
# get newest zpool if using zfs
|
# get newest zpool if using zfs
|
||||||
ZPOOL=""
|
ZPOOL=""
|
||||||
[ "${OS}" = FreeBSD ] && ZPOOL=$(zpool list -H|tail -1|cut -f 1)
|
[ "${OS}" = FreeBSD ] && ZPOOL=$(zpool list -H|head -1|cut -f 1)
|
||||||
|
|
||||||
MD5=md5sum
|
MD5=md5sum
|
||||||
[ "${OS}" = FreeBSD ] && MD5=md5
|
[ "${OS}" = FreeBSD ] && MD5=md5
|
||||||
@ -141,6 +141,11 @@ DEBIAN_SERVICE_HOME=/etc/systemd/system
|
|||||||
# where environment variables for services are set
|
# where environment variables for services are set
|
||||||
DEBIAN_ENV_HOME=/etc/default
|
DEBIAN_ENV_HOME=/etc/default
|
||||||
|
|
||||||
|
# mysql data folder and user/group
|
||||||
|
MYSQL_HOME=/mysql
|
||||||
|
MYSQL_USER=mysql
|
||||||
|
MYSQL_GROUP=mysql
|
||||||
|
|
||||||
# mempool data folder and user/group
|
# mempool data folder and user/group
|
||||||
MEMPOOL_HOME=/mempool
|
MEMPOOL_HOME=/mempool
|
||||||
MEMPOOL_USER=mempool
|
MEMPOOL_USER=mempool
|
||||||
@ -182,6 +187,8 @@ ELEMENTS_USER=elements
|
|||||||
ELEMENTS_GROUP=elements
|
ELEMENTS_GROUP=elements
|
||||||
# liquid home/data/blockchain folder, needs about 10GB
|
# liquid home/data/blockchain folder, needs about 10GB
|
||||||
ELEMENTS_HOME=/elements
|
ELEMENTS_HOME=/elements
|
||||||
|
# electrs db top-level
|
||||||
|
ELECTRS_HOME=/electrs
|
||||||
# elements electrs source/binaries
|
# elements electrs source/binaries
|
||||||
ELEMENTS_ELECTRS_HOME=${ELEMENTS_HOME}/electrs
|
ELEMENTS_ELECTRS_HOME=${ELEMENTS_HOME}/electrs
|
||||||
|
|
||||||
@ -229,12 +236,12 @@ ELEMENTS_REPO_BRANCH=master
|
|||||||
ELEMENTS_LATEST_RELEASE=master
|
ELEMENTS_LATEST_RELEASE=master
|
||||||
echo -n '.'
|
echo -n '.'
|
||||||
|
|
||||||
BITCOIN_ELECTRS_REPO_URL=https://github.com/mempool/electrs
|
BITCOIN_ELECTRS_REPO_URL=https://github.com/blockstream/electrs
|
||||||
BITCOIN_ELECTRS_REPO_NAME=electrs
|
BITCOIN_ELECTRS_REPO_NAME=electrs
|
||||||
BITCOIN_ELECTRS_REPO_BRANCH=new-index
|
BITCOIN_ELECTRS_REPO_BRANCH=new-index
|
||||||
BITCOIN_ELECTRS_LATEST_RELEASE=new-index
|
BITCOIN_ELECTRS_LATEST_RELEASE=new-index
|
||||||
|
|
||||||
ELEMENTS_ELECTRS_REPO_URL=https://github.com/mempool/electrs
|
ELEMENTS_ELECTRS_REPO_URL=https://github.com/blockstream/electrs
|
||||||
ELEMENTS_ELECTRS_REPO_NAME=electrs
|
ELEMENTS_ELECTRS_REPO_NAME=electrs
|
||||||
ELEMENTS_ELECTRS_REPO_BRANCH=new-index
|
ELEMENTS_ELECTRS_REPO_BRANCH=new-index
|
||||||
ELEMENTS_ELECTRS_LATEST_RELEASE=new-index
|
ELEMENTS_ELECTRS_LATEST_RELEASE=new-index
|
||||||
@ -244,7 +251,7 @@ ELEMENTS_ELECTRS_LATEST_RELEASE=new-index
|
|||||||
#######################
|
#######################
|
||||||
|
|
||||||
# package needed for just certbot test before full install
|
# package needed for just certbot test before full install
|
||||||
FREEBSD_CERTBOT_PKG=py37-certbot
|
FREEBSD_CERTBOT_PKG=py38-certbot
|
||||||
DEBIAN_CERTBOT_PKG=python-certbot
|
DEBIAN_CERTBOT_PKG=python-certbot
|
||||||
|
|
||||||
# packages needed for mempool ecosystem
|
# packages needed for mempool ecosystem
|
||||||
@ -258,10 +265,10 @@ DEBIAN_PKG+=(nodejs npm mariadb-server nginx-core python-certbot-nginx rsync ufw
|
|||||||
|
|
||||||
# packages needed for mempool ecosystem
|
# packages needed for mempool ecosystem
|
||||||
FREEBSD_PKG=()
|
FREEBSD_PKG=()
|
||||||
FREEBSD_PKG+=(zsh sudo git screen vim-console curl wget calc neovim)
|
FREEBSD_PKG+=(zsh sudo git screen curl wget calc neovim)
|
||||||
FREEBSD_PKG+=(openssh-portable open-vm-tools-nox11 py27-pip py37-pip)
|
FREEBSD_PKG+=(openssh-portable open-vm-tools-nox11 py38-pip)
|
||||||
FREEBSD_PKG+=(boost-libs autoconf automake gmake gcc libevent libtool pkgconf)
|
FREEBSD_PKG+=(boost-libs autoconf automake gmake gcc libevent libtool pkgconf)
|
||||||
FREEBSD_PKG+=(node npm nginx rsync py37-certbot-nginx mariadb-server)
|
FREEBSD_PKG+=(node npm nginx rsync py38-certbot-nginx )
|
||||||
|
|
||||||
#############################
|
#############################
|
||||||
##### utility functions #####
|
##### utility functions #####
|
||||||
@ -286,7 +293,7 @@ osPackageUpdate()
|
|||||||
echo "[*] Updating OS sources"
|
echo "[*] Updating OS sources"
|
||||||
case $OS in
|
case $OS in
|
||||||
FreeBSD)
|
FreeBSD)
|
||||||
osSudo "${ROOT_USER}" pkg update -y
|
pkg update
|
||||||
;;
|
;;
|
||||||
Debian)
|
Debian)
|
||||||
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get update -q
|
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get update -q
|
||||||
@ -299,7 +306,7 @@ osPackageUpgrade()
|
|||||||
echo "[*] Upgrading OS packages $*"
|
echo "[*] Upgrading OS packages $*"
|
||||||
case $OS in
|
case $OS in
|
||||||
FreeBSD)
|
FreeBSD)
|
||||||
osSudo "${ROOT_USER}" pkg upgrade -y $*
|
pkg upgrade -y $*
|
||||||
;;
|
;;
|
||||||
Debian)
|
Debian)
|
||||||
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get upgrade -qq -y $*
|
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get upgrade -qq -y $*
|
||||||
@ -312,7 +319,7 @@ osPackageInstall()
|
|||||||
echo "[*] Installing OS packages $*"
|
echo "[*] Installing OS packages $*"
|
||||||
case $OS in
|
case $OS in
|
||||||
FreeBSD)
|
FreeBSD)
|
||||||
osSudo "${ROOT_USER}" pkg install -y $*
|
pkg install -y $*
|
||||||
;;
|
;;
|
||||||
Debian)
|
Debian)
|
||||||
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get install -qq -y $*
|
osSudo "${ROOT_USER}" DEBIAN_FRONTEND=noninteractive apt-get install -qq -y $*
|
||||||
@ -365,22 +372,30 @@ zfsCreateFilesystems()
|
|||||||
zfs create -o "mountpoint=${ELEMENTS_HOME}" "${ZPOOL}/elements"
|
zfs create -o "mountpoint=${ELEMENTS_HOME}" "${ZPOOL}/elements"
|
||||||
zfs create -o "mountpoint=${BITCOIN_HOME}" "${ZPOOL}/bitcoin"
|
zfs create -o "mountpoint=${BITCOIN_HOME}" "${ZPOOL}/bitcoin"
|
||||||
zfs create -o "mountpoint=${ELECTRS_HOME}" "${ZPOOL}/electrs"
|
zfs create -o "mountpoint=${ELECTRS_HOME}" "${ZPOOL}/electrs"
|
||||||
|
zfs create -o "mountpoint=${MEMPOOL_HOME}" "${ZPOOL}/mempool"
|
||||||
|
zfs create -o "mountpoint=${MYSQL_HOME}" "${ZPOOL}/mysql"
|
||||||
|
|
||||||
|
zfs create -o "mountpoint=${BITCOIN_ELECTRS_HOME}" "${ZPOOL}/bitcoin/electrs"
|
||||||
|
|
||||||
zfs create -o "mountpoint=${ELEMENTS_HOME}/liquidv1" "${ZPOOL}/elements/liquidv1"
|
zfs create -o "mountpoint=${ELEMENTS_HOME}/liquidv1" "${ZPOOL}/elements/liquidv1"
|
||||||
zfs create -o "mountpoint=${ELEMENTS_ELECTRS_HOME}" "${ZPOOL}/elements/electrs"
|
zfs create -o "mountpoint=${ELEMENTS_ELECTRS_HOME}" "${ZPOOL}/elements/electrs"
|
||||||
|
|
||||||
# Bitcoin Mainnet
|
# Bitcoin Mainnet
|
||||||
zfs create -o "mountpoint=${BITCOIN_HOME}/chainstate" "${ZPOOL}/bitcoin/chainstate"
|
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
|
||||||
zfs create -o "mountpoint=${BITCOIN_HOME}/indexes" "${ZPOOL}/bitcoin/indexes"
|
for folder in chainstate indexes blocks
|
||||||
zfs create -o "mountpoint=${BITCOIN_HOME}/blocks" "${ZPOOL}/bitcoin/blocks"
|
do
|
||||||
|
zfs create -o "mountpoint=${BITCOIN_HOME}/${folder}" "${ZPOOL}/bitcoin/${folder}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Bitcoin Testnet
|
# Bitcoin Testnet
|
||||||
|
if [ "${BITCOIN_TESTNET_ENABLE}" = ON ];then
|
||||||
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}" "${ZPOOL}/bitcoin/testnet"
|
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}" "${ZPOOL}/bitcoin/testnet"
|
||||||
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}/blocks" "${ZPOOL}/bitcoin/testnet/blocks"
|
for folder in chainstate indexes blocks
|
||||||
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}/chainstate" "${ZPOOL}/bitcoin/testnet/chainstate"
|
do
|
||||||
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}/indexes" "${ZPOOL}/bitcoin/testnet/indexes"
|
zfs create -o "mountpoint=${BITCOIN_TESTNET_DATA}/${folder}" "${ZPOOL}/bitcoin/testnet/${folder}"
|
||||||
|
done
|
||||||
zfs create -o "mountpoint=${BITCOIN_ELECTRS_HOME}" "${ZPOOL}/bitcoin/electrs"
|
fi
|
||||||
|
|
||||||
# electrs mainnet data
|
# electrs mainnet data
|
||||||
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
|
if [ "${BITCOIN_MAINNET_ENABLE}" = ON ];then
|
||||||
@ -412,9 +427,6 @@ zfsCreateFilesystems()
|
|||||||
if [ "${BISQ_INSTALL}" = ON ];then
|
if [ "${BISQ_INSTALL}" = ON ];then
|
||||||
zfs create -o "mountpoint=${BISQ_HOME}" "${ZPOOL}/bisq"
|
zfs create -o "mountpoint=${BISQ_HOME}" "${ZPOOL}/bisq"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
zfs create -o "mountpoint=/mempool" "${ZPOOL}/mempool"
|
|
||||||
zfs create -o "mountpoint=/mysql" "${ZPOOL}/mysql"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
##### Perform sanity checks before trying anything
|
##### Perform sanity checks before trying anything
|
||||||
@ -659,6 +671,7 @@ $DIALOG --ok-label "Submit" \
|
|||||||
"HOSTNAME" 92 1 "${HOSTNAME}" 92 35 35 0 \
|
"HOSTNAME" 92 1 "${HOSTNAME}" 92 35 35 0 \
|
||||||
"TOR_INSTALL" 93 1 "${TOR_INSTALL}" 93 35 35 0 \
|
"TOR_INSTALL" 93 1 "${TOR_INSTALL}" 93 35 35 0 \
|
||||||
"CERTBOT_INSTALL" 94 1 "${CERTBOT_INSTALL}" 94 35 35 0 \
|
"CERTBOT_INSTALL" 94 1 "${CERTBOT_INSTALL}" 94 35 35 0 \
|
||||||
|
2> $tempfile
|
||||||
|
|
||||||
retval=$?
|
retval=$?
|
||||||
|
|
||||||
@ -674,12 +687,14 @@ fi
|
|||||||
date
|
date
|
||||||
echo "[*] Mempool installation script for ${OS}"
|
echo "[*] Mempool installation script for ${OS}"
|
||||||
|
|
||||||
exit 0
|
set -x
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# create filesystems if necessary #
|
# create filesystems if necessary #
|
||||||
###################################
|
###################################
|
||||||
|
|
||||||
|
#zfsCreateFilesystems
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
# Install all the OS packages #
|
# Install all the OS packages #
|
||||||
###############################
|
###############################
|
||||||
@ -688,6 +703,8 @@ osPackageUpdate
|
|||||||
osPackageUpgrade
|
osPackageUpgrade
|
||||||
osPackageInstallAll
|
osPackageInstallAll
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
# Mempool top-level repo #
|
# Mempool top-level repo #
|
||||||
##########################
|
##########################
|
||||||
|
Loading…
x
Reference in New Issue
Block a user