use user and root ssh where appropriate

This commit is contained in:
Ray Elliott 2020-09-08 18:59:02 +01:00
parent e3186d9cc9
commit bbc106c018
21 changed files with 95 additions and 72 deletions

View File

@ -1,9 +1,18 @@
# local specific options
## export if using local development environment
export domain='test123.home'
export url='http://test123.home'
export domain='thecampsitebible.home'
export url='http://thecampsitebible.home'
# set to anything other than the empty string to set up a dev environment
export dev_env='true'
## user configuration
export user='ray'
export user_pass='ray'
export group='ray'
## ssh configuration
export ssh_root='root@thecampsitebible.home'
export ssh_user='ray@thecampsitebible.home'

View File

@ -1,5 +0,0 @@
## ssh configuration
## uncomment if connecting via ssh
export ssh='root@test123.home'

View File

@ -1,6 +0,0 @@
## user configuration
## uncomment to set user
export user='ray'
export user_pass='ray'
export group='ray'

View File

@ -1,6 +1,15 @@
# remote specific options
## export if using local development environment
#export domain='test123.example.com'
#export url='http://test123.example.com'
## user configuration
## uncomment to set user
# export user='ray'
# export user_pass='ray'
# export group='ray'
## ssh configuration
# export ssh_root='root@wordpress-453075-1468300.cloudwaysapps.com' # we do not have root access
export ssh_user='test123@wordpress-453075-1468300.cloudwaysapps.com'

View File

@ -1,5 +0,0 @@
## ssh configuration
## uncomment if connecting via ssh
# export ssh='root@test123.isnet.uk'

View File

@ -1,6 +0,0 @@
## user configuration
## uncomment to set user
# export user='ray'
# export user_pass='ray'
# export group='ray'

View File

@ -30,11 +30,11 @@ fi
echo "Using Scripts in: $_script_dir"
# check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
# update
echo "Updating .."
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
export DEBIAN_FRONTEND=noninteractive
apt-get -qq -y update && apt-get -qq -y upgrade
EOSSH

View File

@ -7,7 +7,10 @@ fi
. ./"$1"
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
ufw allow http && ufw allow https

View File

@ -16,7 +16,7 @@ for _file in ./config/$_target/* ; do
done
# check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then
. ./scripts/export-wp.sh

View File

@ -29,9 +29,6 @@ fi
echo "Using Scripts in: $_script_dir"
# check we have ssh access
[ -z "$ssh" ] && echo "Error: no ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then
# TODO - confirmation prompt
echo "IMPORTANT - we need a confirmation prompt here"

View File

@ -5,7 +5,10 @@ if [ "$apache2_version" != 'latest' ] ; then
exit 30
fi
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
echo "Installing Apache2"
export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .."

View File

@ -1,6 +1,9 @@
#!/bin/sh
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
ssh -T $ssh_root << EOSSH
sed -i '/PubkeyAuthentication/c\PubkeyAuthentication yes' /etc/ssh/sshd_config
sed -i '/PasswordAuthentication/c\PasswordAuthentication no' /etc/ssh/sshd_config

View File

@ -2,7 +2,10 @@
_home_dir="/home/$user"
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_user" ] || [ -z "$ssh_root" ] && echo "Error: user and root ssh configuration must be specified" && exit 5
ssh -T $ssh_root << EOSSH
echo "Installing packages .."
export DEBIAN_FRONTEND=noninteractive
@ -36,7 +39,7 @@ if command -v php ; then
fi
EOSSH
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
su "$user"
@ -46,16 +49,14 @@ echo 'export NVM_DIR="\$HOME/.nvm"' >> "$_home_dir/.profile"
echo '[ -s "\$NVM_DIR/nvm.sh" ] && \. "\$NVM_DIR/nvm.sh"' >> "$_home_dir/.profile"
EOSSH
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
su --login "$user"
. ./.profile
nvm install --lts --latest-npm
EOSSH
ssh -T $ssh << EOSSH
su --login "$user"
ssh -T $ssh_user << EOSSH
. ./.profile
echo "Configuring neovim ..."
npm install -g neovim

View File

@ -5,9 +5,12 @@ if [ "$mariadb_version" != 'latest' ] ; then
exit 30
fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_mysql_cmd="mysql -uroot -e "
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
if mysql --version ; then
echo "ERROR: unable to install MariaDb, 'mysql' already installed - aborting install"
exit 35

View File

@ -5,9 +5,12 @@ if [ "$mysql_version" != 'latest' ] ; then
exit 30
fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_mysql_cmd="mysql -uroot -e "
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
if mysql --version ; then
echo "ERROR: unable to install MySQL, 'mysql' already installed - aborting install"
exit 35

View File

@ -5,10 +5,13 @@ if [ "$php_version" != 'latest' ] ; then
exit 30
fi
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
if [ -n "$wp_user" ] ; then
echo 'Installing PHP for WordPress ...'
ssh -T $ssh << 'EOSSH'
ssh -T $ssh_root << 'EOSSH'
export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .."
apt-get install -qq -y php libapache2-mod-php php-fpm php-bcmath php-curl php-gd php-imagick php-mbstring \
@ -25,7 +28,7 @@ EOSSH
else
echo 'Installing default PHP ...'
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
export DEBIAN_FRONTEND=noninteractive
echo "Installing packages .."
apt-get install -qq -y php libapache2-mod-php php-mysql

View File

@ -1,8 +1,11 @@
#!/bin/sh
# check we have ssh access
[ -z "$ssh_root" ] && echo "Error: no root ssh configuration specified" && exit 5
_home_dir="/home/$user"
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
echo "Creating user .."
useradd -m -d "$_home_dir" "$user"
echo "$user:$user_pass" | chpasswd
@ -11,12 +14,12 @@ EOSSH
echo "Configuring ssh .."
ssh $ssh mkdir -v -p "$_home_dir/.ssh"
scp files/private/id_rsa "$ssh:$_home_dir/.ssh/"
scp files/id_rsa.pub "$ssh:$_home_dir/.ssh/"
scp files/known_hosts "$ssh:$_home_dir/.ssh/"
ssh $ssh_root mkdir -v -p "$_home_dir/.ssh"
scp files/private/id_rsa "$ssh_root:$_home_dir/.ssh/"
scp files/id_rsa.pub "$ssh_root:$_home_dir/.ssh/"
scp files/known_hosts "$ssh_root:$_home_dir/.ssh/"
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
cp -v /root/.ssh/authorized_keys "$_home_dir/.ssh/authorized_keys"
chown -v -R "$user:$group" "$_home_dir/.ssh"
@ -61,7 +64,7 @@ ssh -T $ssh << EOSSH
"$_home_dir/.config/zsh/install.sh"
EOSSH
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
chsh -s /usr/bin/zsh "$user"
EOSSH

View File

@ -1,15 +1,18 @@
echo "Installing WordPress .."
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_user" ] || [ -z "$ssh_root" ] && echo "Error: user and root ssh configuration must be specified" && exit 5
ssh -T $ssh_root << EOSSH
# install wp-cli first
if [ ! -f /usr/local/bin/wp ] ; then
wget -nv -O /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar \
&& chmod +x /usr/local/bin/wp
fi
EOSSH
su "$user"
ssh -T $ssh_user << EOSSH
if wp core is-installed --quiet --path="$wp_path" ; then
echo "WordPress already installed"
else
@ -43,8 +46,7 @@ printf "\nInstalling themes ..."
option='--activate'
for theme in $wp_themes ; do
echo " installing $theme ..."
ssh -T $ssh << EOSSH
su "$user"
ssh -T $ssh_user << EOSSH
wp theme install $theme "$option" --path="$wp_path"
EOSSH
option=''
@ -55,8 +57,7 @@ if [ -n "$wp_plugins" ] ; then
printf "\nInstalling plugins ..."
for plugin in $wp_plugins ; do
echo " installing $plugin ..."
ssh -T $ssh << EOSSH
su "$user"
ssh -T $ssh_user << EOSSH
wp plugin install $plugin --path="$wp_path"
EOSSH
done
@ -66,8 +67,7 @@ if [ -n "$wp_plugins_active" ] ; then
printf "\nInstalling plugins to activate ..."
for plugin in $wp_plugins_active ; do
echo " installing $plugin ..."
ssh -T $ssh << EOSSH
su "$user"
ssh -T $ssh_user << EOSSH
wp plugin install $plugin --activate --path="$wp_path"
EOSSH
done
@ -77,8 +77,7 @@ if [ -n "$wp_plugins_active" ] ; then
printf "\nUninstalling plugins ..."
for plugin in $wp_plugins_uninstall ; do
echo " installing $plugin ..."
ssh -T $ssh << EOSSH
su "$user"
ssh -T $ssh_user << EOSSH
wp plugin deactivate $plugin --path="$wp_path"
wp plugin uninstall $plugin --path="$wp_path"
EOSSH
@ -86,7 +85,7 @@ EOSSH
fi
config_path='/etc/apache2/sites-available/wordpress.conf'
ssh -T $ssh << EOSSH
ssh -T $ssh_root << EOSSH
if [ -n "$apache2_version" ] ; then
mkdir -p /var/log/wordpress/
cat << EOF > $config_path

View File

@ -1,8 +1,11 @@
echo "Removing WordPress .."
_mysql_cmd="mysql -uroot -p$db_root_pass -e "
# check we have ssh access
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
ssh -T $ssh << EOSSH
_mysql_cmd="mysql -u$db_user -p$db_pass -e "
ssh -T $ssh_user << EOSSH
# remove database
if command -v mysql ; then
$_mysql_cmd "DROP DATABASE $db_name;"

View File

@ -7,7 +7,10 @@ _db_filename="wordpress-$_timestamp.db"
_archive_filename="wordpress-$_timestamp.tar.gz"
_local_dest_dir="./data/$_target"
ssh -T $ssh << EOSSH
# check we have ssh access
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
ssh -T $ssh_user << EOSSH
cd "$wp_path"
wp db export \
--path="$wp_path" \
@ -19,11 +22,11 @@ wp db export \
tar czf "/tmp/$_archive_filename" "$wp_path"
EOSSH
scp "$ssh:/tmp/$_archive_filename" "$_local_dest_dir/$_archive_filename"
scp "$ssh:/tmp/$_db_filename" "$_local_dest_dir/$_db_filename"
scp "$ssh_user:/tmp/$_archive_filename" "$_local_dest_dir/$_archive_filename"
scp "$ssh_user:/tmp/$_db_filename" "$_local_dest_dir/$_db_filename"
exit
ssh -T $ssh << EOSSH
ssh -T $ssh_user << EOSSH
rm "/tmp/$_db_filename"
rm "/tmp/$_archive_filename"
EOSSH

View File

@ -1,14 +1,17 @@
echo "Removing WordPress .."
_mysql_cmd="mysql -uroot -p$db_root_pass -e "
# check we have ssh access
[ -z "$ssh_user" ] && echo "Error: no user ssh configuration specified" && exit 5
ssh -T $ssh << EOSSH
_mysql_cmd="mysql -u$db_user -p$db_pass -e "
ssh -T $ssh_user << EOSSH
# remove database
if command -v mysql ; then
$_mysql_cmd "DROP DATABASE $db_name;"
$_mysql_cmd "CREATE DATABASE $db_name;"
else
echo "ERROR: no installed database found - aborting WordPress removal"
echo "ERROR: mysql not found - aborting WordPress removal"
exit 40
fi
# remove files