Compare commits

...

3 Commits

Author SHA1 Message Date
Anthony 56c55439de Updated installWP 2024-09-21 00:03:27 +08:00
Anthony 45ba39e3fe Updated DB grant to 127.0.0.1 2024-09-20 23:28:55 +08:00
Anthony ab3ad2625a Added Logs 2024-09-20 23:11:39 +08:00
4 changed files with 69 additions and 83 deletions

View File

@ -141,6 +141,7 @@ actions:
cluster: false cluster: false
installMBaddons: installMBaddons:
- log: INSTALLING MightyBox Add-Ons
- install: https://deploy.mightybox.io/addons/mb-backup-manager/raw/branch/main/manifest.jps - install: https://deploy.mightybox.io/addons/mb-backup-manager/raw/branch/main/manifest.jps
nodeGroup: cp nodeGroup: cp

View File

@ -2,53 +2,18 @@ actions:
applyEnvSettings: applyEnvSettings:
script: | script: |
var envs = '${this.targetAppid}'.split(','); var envs = '${this.targetAppid}'.split(',');
var desiredCloudlets = parseInt('${this.cloudlets}');
var desiredDiskSpace = parseInt('${this.diskspace}');
for (var i=0, n = envs.length; i < n; i++) { for (var i=0, n = envs.length; i < n; i++) {
var targetAppid = envs[i]; let targetAppid = envs[i];
var resp = jelastic.env.control.GetEnvInfo(targetAppid, session); let resp = jelastic.env.control.GetEnvInfo(targetAppid, session);
if (resp.result != 0) { if (resp.result != 0) return resp;
return { let node = resp.nodes[0];
result: resp.result, if (String(node.flexibleCloudlets) != '${this.cloudlets}') {
error: 'Failed to get environment info for ' + targetAppid + ': ' + resp.error, resp = jelastic.env.control.SetCloudletsCountByGroup({ appid: targetAppid, session: session, nodeGroup: node.nodeGroup, fixedCloudlets: node.fixedCloudlets, flexibleCloudlets: '${this.cloudlets}'});
}; if (resp.result != 0) return resp;
}
if (!resp.nodes || resp.nodes.length === 0) {
return {
result: 1,
error: 'No nodes found in environment ' + targetAppid,
};
}
var node = resp.nodes[0];
if (parseInt(node.flexibleCloudlets) !== desiredCloudlets) {
resp = jelastic.env.control.SetCloudletsCountByGroup({
envName: targetAppid,
session: session,
nodeGroup: node.nodeGroup,
fixedCloudlets: parseInt(node.fixedCloudlets),
flexibleCloudlets: desiredCloudlets,
});
if (resp.result != 0) {
return {
result: resp.result,
error: 'Failed to set cloudlets for ' + targetAppid + ': ' + resp.error,
};
}
}
if (parseInt(node.diskLimit) !== desiredDiskSpace) {
resp = jelastic.env.control.SetDiskLimitByGroup({
envName: targetAppid,
session: session,
nodeGroup: node.nodeGroup,
limit: desiredDiskSpace,
});
if (resp.result != 0) {
return {
result: resp.result,
error: 'Failed to set disk space for ' + targetAppid + ': ' + resp.error,
};
} }
if (String(node.diskLimit) != '${this.diskspace}') {
resp = jelastic.env.control.SetDiskLimitByGroup({ appid: targetAppid, session: session, nodeGroup: node.nodeGroup, limit: '${this.diskspace}' });
if (resp.result != 0) return resp;
} }
} }
return { result: 0 }; return { result: 0 };

View File

@ -4,23 +4,28 @@ name: WordPress Core Installation
description: WordPress Core Installation description: WordPress Core Installation
mixins: mixins:
- ${globals.BASE_URL}/configs/vers.yaml - /scripts/common.yml # Ensure this mixin does not introduce 'fields'
# Removed vers.yaml to prevent overriding 'beforeInit.js' settings
globals: globals:
WP_ADMIN_PASS: ${settings.wp_admin_pass} WP_ADMIN_PASS: "${settings.wp_admin_pass}"
WP_TITLE: ${settings.wp_title} WP_TITLE: "${settings.wp_title}"
WP_ADMIN_USER: ${settings.wp_admin_user:admin} WP_ADMIN_USER: "${settings.wp_admin_user:admin}"
WP_ADMIN_EMAIL: ${settings.wp_admin_email:admin@example.com} WP_ADMIN_EMAIL: "${settings.wp_admin_email:admin@example.com}"
DB_HOST: ${settings.db_host} DB_HOST: "${settings.db_host}"
DB_NAME: wp_${fn.random} DB_NAME: "wp_${fn.random}"
DB_USER: ${settings.db_user} DB_USER: "${settings.db_user}"
DB_PASS: ${settings.db_pass} DB_PASS: "${settings.db_pass}"
REDIS_HOST: ${settings.redis_host:} REDIS_HOST: "${settings.redis_host:/var/run/redis/redis.sock}"
REDIS_PORT: ${settings.redis_port:} REDIS_PORT: "${settings.redis_port:0}"
REDIS_USER: ${settings.redis_user:} REDIS_USER: "${settings.redis_user:}"
REDIS_PSWD: ${settings.redis_pswd:} REDIS_PSWD: "${settings.redis_pswd:}"
WP_URL: ${settings.wp_url} WP_URL: "${settings.wp_url}"
BASE_URL: ${globals.BASE_URL} BASE_URL: "${globals.BASE_URL}"
VERSION_WORDPRESS: "${settings.version_wordpress:6.3.1}"
version_lscache: "${settings.version_lscache:5.6.4}"
TARGET_NODE_ID: "${settings.targetNodeID}"
SERVER_WEBROOT: "/var/www/webroot/ROOT" # Optional for consistency
onInstall: onInstall:
- deployWordPress - deployWordPress
@ -32,47 +37,62 @@ onInstall:
actions: actions:
deployWordPress: deployWordPress:
- cmd[${nodes.cp.master.id}]: |- - cmd[${globals.TARGET_NODE_ID}]: |-
wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.version_wordpress}.tar.gz'; echo "Deploying WordPress Version ${globals.VERSION_WORDPRESS}" >> /var/log/deploy_wordpress.log;
wget -qO /tmp/wordpress.tar.gz 'https://wordpress.org/wordpress-${globals.VERSION_WORDPRESS}.tar.gz';
[ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress; [ -d /tmp/wordpress/ ] && rm -rf /tmp/wordpress;
tar -xzf /tmp/wordpress.tar.gz -C /tmp/; tar -xzf /tmp/wordpress.tar.gz -C /tmp/;
rsync -a /tmp/wordpress/ /var/www/webroot/ROOT/; rsync -a /tmp/wordpress/ ${globals.SERVER_WEBROOT}/ >> /var/log/deploy_wordpress.log 2>&1;
- addContext [cp]: - addContext [cp]:
name: ROOT name: ROOT
fileName: WordPress fileName: WordPress
type: ARCHIVE type: ARCHIVE
installWordpress: installWordpress:
- cmd[${nodes.cp.master.id}]: |- - cmd[${globals.TARGET_NODE_ID}]: |-
mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${globals.DB_HOST} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" echo "Creating Database ${globals.DB_NAME}" >> /var/log/install_wordpress.log;
cd /var/www/webroot/ROOT && wp core config --dbhost=${globals.DB_HOST} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS}; mysql -u${globals.DB_USER} -p${globals.DB_PASS} -h ${globals.DB_HOST} -e "CREATE DATABASE IF NOT EXISTS ${globals.DB_NAME};" >> /var/log/install_wordpress.log 2>&1;
cd /var/www/webroot/ROOT && wp core install --title="${globals.WP_TITLE}" --admin_user=${globals.WP_ADMIN_USER} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${globals.WP_ADMIN_EMAIL} --skip-email; echo "Configuring wp-config.php" >> /var/log/install_wordpress.log;
wget ${globals.BASE_URL}/images/favicon.ico -O /var/www/webroot/ROOT/favicon.ico; cd ${globals.SERVER_WEBROOT} && wp core config --dbhost=${globals.DB_HOST} --dbname=${globals.DB_NAME} --dbuser=${globals.DB_USER} --dbpass=${globals.DB_PASS} --path=${globals.SERVER_WEBROOT} >> /var/log/install_wordpress.log 2>&1;
echo "Installing WordPress Core" >> /var/log/install_wordpress.log;
cd ${globals.SERVER_WEBROOT} && wp core install --title="${globals.WP_TITLE}" --admin_user=${globals.WP_ADMIN_USER} --admin_password=${globals.WP_ADMIN_PASS} --url=${globals.WP_URL} --admin_email=${globals.WP_ADMIN_EMAIL} --skip-email --path=${globals.SERVER_WEBROOT} >> /var/log/install_wordpress.log 2>&1;
echo "Downloading favicon.ico" >> /var/www/webroot/ROOT/favicon.ico;
wget ${globals.BASE_URL}/images/favicon.ico -O ${globals.SERVER_WEBROOT}/favicon.ico >> /var/log/install_wordpress.log 2>&1;
installScripts: installScripts:
- cmd[cp]: |- - cmd[cp]: |-
echo "Installing WP-CLI" >> /var/log/install_scripts.log;
[ ! -d $HOME/bin ] && mkdir $HOME/bin; [ ! -d $HOME/bin ] && mkdir $HOME/bin;
curl -o $HOME/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x $HOME/bin/wp; curl -o $HOME/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x $HOME/bin/wp;
echo "Configuring WP-CLI" >> /var/log/install_scripts.log;
echo "apache_modules:" > $HOME/bin/wp-cli.yml; echo "apache_modules:" > $HOME/bin/wp-cli.yml;
echo " - mod_rewrite" >> $HOME/bin/wp-cli.yml; echo " - mod_rewrite" >> $HOME/bin/wp-cli.yml;
echo "export PATH=\$PATH:\$HOME/bin/" >> $HOME/.bash_profile; echo "export PATH=\$PATH:\$HOME/bin/" >> $HOME/.bash_profile;
wget ${globals.BASE_URL}/scripts/setupWP.sh?_r=${fn.random} -O $HOME/bin/setupWP.sh &>> /var/log/run.log; echo "Downloading setupWP.sh" >> /var/log/install_scripts.log;
wget ${globals.BASE_URL}/scripts/setupWP.sh?_r=${fn.random} -O $HOME/bin/setupWP.sh &>> /var/log/install_scripts.log;
- cmd[cp]: - cmd[cp]:
echo "Updating redeploy.conf and installing jq" >> /var/log/install_scripts.log;
echo ${response.out} >> /etc/jelastic/redeploy.conf; echo ${response.out} >> /etc/jelastic/redeploy.conf;
yum install jq -y &>> /var/log/run.log; yum install jq -y &>> /var/log/install_scripts.log;
user: root user: root
setupWordPress: setupWordPress:
- cmd[${nodes.cp.master.id}]: |- - cmd[${globals.TARGET_NODE_ID}]: |-
grep -qE "(WP_AUTO_UPDATE_CORE)" /var/www/webroot/ROOT/wp-config.php || sed -i "/^\$table_prefix.*/a define( 'WP_AUTO_UPDATE_CORE', false );" /var/www/webroot/ROOT/wp-config.php; echo "Disabling WP Auto Update Core" >> /var/log/setup_wordpress.log;
wp option update permalink_structure '/%postname%/' --path=/var/www/webroot/ROOT; grep -qE "(WP_AUTO_UPDATE_CORE)" ${globals.SERVER_WEBROOT}/wp-config.php || sed -i "/^\$table_prefix.*/a define( 'WP_AUTO_UPDATE_CORE', false );" ${globals.SERVER_WEBROOT}/wp-config.php;
wp rewrite structure '/%postname%/' --hard --path=/var/www/webroot/ROOT; echo "Updating Permalink Structure" >> /var/log/setup_wordpress.log;
wp option update permalink_structure '/%postname%/' --path=${globals.SERVER_WEBROOT} >> /var/log/setup_wordpress.log 2>&1;
echo "Setting Rewrite Structure" >> /var/log/setup_wordpress.log;
wp rewrite structure '/%postname%/' --hard --path=${globals.SERVER_WEBROOT} >> /var/log/setup_wordpress.log 2>&1;
installPlugins: installPlugins:
- cmd[${nodes.cp.master.id}]: |- - cmd[${globals.TARGET_NODE_ID}]: |-
wp plugin install litespeed-cache --version=${globals.version_lscache} --activate --path=/var/www/webroot/ROOT &>> /var/log/run.log; echo "Installing LiteSpeed Cache Plugin Version ${globals.version_lscache}" >> /var/log/install_plugins.log;
wp cache flush --path=/var/www/webroot/ROOT &>> /var/log/run.log; wp plugin install litespeed-cache --version=${globals.version_lscache} --activate --path=${globals.SERVER_WEBROOT} &>> /var/log/install_plugins.log;
echo "Flushing WordPress Cache" >> /var/log/install_plugins.log;
wp cache flush --path=${globals.SERVER_WEBROOT} &>> /var/log/install_plugins.log;
setupPlugins: setupPlugins:
- cmd[${nodes.cp.master.id}]: |- - cmd[${globals.TARGET_NODE_ID}]: |-
bash $HOME/bin/setupWP.sh --pgcache true --objectcache true --REDIS_HOST ${globals.REDIS_HOST} --REDIS_PORT ${globals.REDIS_PORT} --REDIS_USER ${globals.REDIS_USER} --REDIS_PSWD ${globals.REDIS_PSWD}; echo "Running setupWP.sh with Redis Configuration" >> /var/log/setup_plugins.log;
bash $HOME/bin/setupWP.sh --pgcache true --objectcache true --REDIS_HOST ${globals.REDIS_HOST} --REDIS_PORT ${globals.REDIS_PORT} --REDIS_USER ${globals.REDIS_USER} --REDIS_PSWD ${globals.REDIS_PSWD} >> /var/log/setup_plugins.log 2>&1;

View File

@ -5,7 +5,7 @@ PASSWORD=$2
ADMIN_PASSWORD=`pwgen 10 1` ADMIN_PASSWORD=`pwgen 10 1`
JEM=`which jem` JEM=`which jem`
MYSQL=`which mysql` MYSQL=`which mysql`
cmd="CREATE USER '$USER'@'localhost' IDENTIFIED BY '$PASSWORD'; CREATE USER '$USER'@'%' IDENTIFIED BY '$PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO '$USER'@'localhost' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;" cmd="CREATE USER '$USER'@'127.0.0.1' IDENTIFIED BY '$PASSWORD'; CREATE USER '$USER'@'%' IDENTIFIED BY '$PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO '$USER'@'127.0.0.1' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"
unset resp; unset resp;
resp=$(mysql -u$USER -p$PASSWORD mysql --execute="SHOW COLUMNS FROM user") resp=$(mysql -u$USER -p$PASSWORD mysql --execute="SHOW COLUMNS FROM user")
[ -z "$resp" ] && { [ -z "$resp" ] && {