wp-performance-cluster/scripts/setupHA4LB.jps

58 lines
2.1 KiB
Plaintext
Executable File

jpsType: update
name: Setup HA for Load Balancer
id: setup-ha4lb
onInstall:
- if ('${nodes.bl.master.nodeType}' == 'litespeedadc' && nodes.bl.length > 1):
- script[bl]: firewallRules.js?_r=${fn.random}
ports: '1447'
name: LSADC-HA
- resetReplClusters
- forEach(i:nodes.bl):
- setupInstance:
id: "${@i.id}"
ip: "${@i.address}"
- setupReplClusters
- restartNodesInOrder
- cacheClean
- if ('${nodes.bl.master.nodeType}' == 'litespeedadc' && nodes.bl.length == 1): resetReplClusters
actions:
resetReplClusters:
cmd[bl]: |-
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > /var/www/conf/ha_config.xml;
echo "<haConfig/>" >> /var/www/conf/ha_config.xml;
setupReplClusters:
script:
- var resp = jelastic.env.control.GetEnvInfo('${env.envName}', session);
- if (resp.result != 0) return resp;
- var nodes = [];
- for (var i = 0, n = resp.nodes; i < n.length; i++)
- " n[i].nodeGroup == nodeGroup ? nodes.push(n[i].address + ':1447') : 0"
- 'resp = {result:0, onAfterReturn: {}};'
- resp.onAfterReturn['cmd['+ nodeGroup +']'] = '/usr/bin/xmlstarlet ed --inplace -s "haConfig/replication" -t elem -n "replCluster"
-v "'+ nodes.join(',') +'" "/var/www/conf/ha_config.xml" 2>/dev/null;'
- return resp;
nodeGroup: bl
setupInstance:
cmd[${this.id}]: |-
/usr/bin/xmlstarlet ed --inplace -s "haConfig" -t elem -n "replication" "/var/www/conf/ha_config.xml" 2>/dev/null;
/usr/bin/xmlstarlet ed --inplace -s "haConfig/replication" -t elem -n "serverAddr" -v "${this.ip}:1447" "/var/www/conf/ha_config.xml" 2>/dev/null;
/usr/bin/xmlstarlet ed --inplace -s "haConfig/replication" -t elem -n "isFileCached" -v "1" "/var/www/conf/ha_config.xml" 2>/dev/null;
restartNodesInOrder:
- forEach(i:nodes.bl):
- cmd[${@i.id}]: |-
pkill -9 lslbd;
jem service restart;
user: root
cacheClean:
cmd[bl]: |-
[ -d /tmp/lscache/vhosts/Jelastic/ ] && rm -rf /tmp/lscache/vhosts/Jelastic/* &>> /var/log/run.log;