1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-10-31 18:30:33 +03:00

Merge pull request #518 from mariadb-corporation/MCOL-1146

Mcol 1146 - multi node quick install
This commit is contained in:
benthompson15
2018-07-12 15:36:42 -05:00
committed by GitHub
7 changed files with 631 additions and 147 deletions

View File

@@ -181,7 +181,6 @@ SET(CPACK_RPM_platform_USER_FILELIST
"/usr/local/mariadb/columnstore/bin/resourceReport.sh"
"/usr/local/mariadb/columnstore/bin/hadoopReport.sh"
"/usr/local/mariadb/columnstore/bin/alarmReport.sh"
"/usr/local/mariadb/columnstore/bin/amazonInstaller"
"/usr/local/mariadb/columnstore/bin/remote_command_verify.sh"
"/usr/local/mariadb/columnstore/bin/disable-rep-columnstore.sh"
"/usr/local/mariadb/columnstore/bin/columnstore.service"
@@ -217,6 +216,9 @@ SET(CPACK_RPM_platform_USER_FILELIST
"/usr/local/mariadb/columnstore/bin/os_detect.sh"
"/usr/local/mariadb/columnstore/bin/columnstoreClusterTester.sh"
"/usr/local/mariadb/columnstore/bin/mariadb-command-line.sh"
"/usr/local/mariadb/columnstore/bin/quick_installer_single_server.sh"
"/usr/local/mariadb/columnstore/bin/quick_installer_multi_server.sh"
"/usr/local/mariadb/columnstore/bin/quick_installer_amazon.sh"
${ignored})
SET(CPACK_RPM_libs_USER_FILELIST

View File

@@ -438,7 +438,7 @@
<SystemStartupOffline>n</SystemStartupOffline>
<InitialInstallFlag>n</InitialInstallFlag>
<SingleServerInstall>n</SingleServerInstall>
<ServerTypeInstall>2</ServerTypeInstall>
<ServerTypeInstall>1</ServerTypeInstall>
<PMwithUM>n</PMwithUM>
<MySQLRep>n</MySQLRep>
<DBRootStorageType>internal</DBRootStorageType>

View File

@@ -37,13 +37,13 @@ install(TARGETS getMySQLpw DESTINATION ${ENGINE_BINDIR} COMPONENT platform)
########### next target ###############
set(amazonInstaller_SRCS amazonInstaller.cpp helpers.cpp)
#set(amazonInstaller_SRCS amazonInstaller.cpp helpers.cpp)
add_executable(amazonInstaller ${amazonInstaller_SRCS})
#add_executable(amazonInstaller ${amazonInstaller_SRCS})
target_link_libraries(amazonInstaller ${ENGINE_LDFLAGS} readline ncurses ${SNMP_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_EXEC_LIBS})
#target_link_libraries(amazonInstaller ${ENGINE_LDFLAGS} readline ncurses ${SNMP_LIBRARIES} ${MARIADB_CLIENT_LIBS} ${ENGINE_EXEC_LIBS})
install(TARGETS amazonInstaller DESTINATION ${ENGINE_BINDIR} COMPONENT platform)
#install(TARGETS amazonInstaller DESTINATION ${ENGINE_BINDIR} COMPONENT platform)
########### next target ###############
@@ -59,5 +59,5 @@ install(TARGETS mycnfUpgrade DESTINATION ${ENGINE_BINDIR} COMPONENT platform)
########### next target ###############
install(PROGRAMS quick_installer_single_server.sh
install(PROGRAMS quick_installer_single_server.sh quick_installer_multi_server.sh quick_installer_amazon.sh
DESTINATION ${ENGINE_BINDIR} COMPONENT platform)

View File

@@ -99,6 +99,14 @@ typedef struct Performance_Module_struct
typedef std::vector<PerformanceModule> PerformanceModuleList;
typedef struct ModuleIP_struct
{
std::string IPaddress;
std::string moduleName;
} ModuleIP;
typedef std::vector<ModuleIP> ModuleIpList;
void offLineAppCheck();
bool setOSFiles(string parentOAMModuleName, int serverTypeInstall);
bool checkSaveConfigFile();
@@ -112,7 +120,7 @@ bool makeRClocal(string moduleType, string moduleName, int IserverTypeInstall);
bool createDbrootDirs(string DBRootStorageType);
bool pkgCheck(std::string columnstorePackage);
bool storageSetup(bool amazonInstall);
void setSystemName(bool single_server_quick_install = false);
void setSystemName();
bool singleServerDBrootSetup();
bool copyFstab(string moduleName);
bool attachVolume(string instanceName, string volumeName, string deviceName, string dbrootPath);
@@ -121,12 +129,6 @@ void remoteInstallThread(void *);
bool glusterSetup(string password);
typedef struct ModuleIP_struct
{
std::string IPaddress;
std::string moduleName;
} ModuleIP;
std::string launchInstance(ModuleIP moduleip);
string columnstorePackage;
@@ -150,7 +152,6 @@ string PMVolumeType = "standard";
string PMVolumeIOPS = oam::UnassignedName;
string UMVolumeIOPS = oam::UnassignedName;
int DBRootCount;
string deviceName;
@@ -185,6 +186,10 @@ string MySQLRep = "y";
string PMwithUM = "n";
bool amazonInstall = false;
bool nonDistribute = false;
bool nonDistributeFlag = false;
bool single_server_quick_install = false;
bool multi_server_quick_install = false;
bool amazon_quick_install = false;
string DataFileEnvFile;
@@ -219,7 +224,8 @@ int main(int argc, char *argv[])
noPrompting = false;
string password;
string cmd;
bool single_server_quick_install = false;
string pmIpAddrs = "";
string umIpAddrs = "";
// struct sysinfo myinfo;
@@ -273,9 +279,11 @@ int main(int argc, char *argv[])
HOME = p;
}
for( int i = 1; i < argc; i++ )
{
if( string("-h") == argv[i] ) {
if( string("-h") == argv[i] )
{
cout << endl;
cout << "This is the MariaDB ColumnStore System Configuration and Installation tool." << endl;
cout << "It will Configure the MariaDB ColumnStore System based on Operator inputs and" << endl;
@@ -289,17 +297,21 @@ int main(int argc, char *argv[])
cout << " Enter one of the options within [], if available, or" << endl;
cout << " Enter a new value" << endl << endl;
cout << endl;
cout << "Usage: postConfigure [-h][-c][-u][-p][-qs][-port][-i][-n][-sn]" << endl;
cout << "Usage: postConfigure [-h][-c][-u][-p][-qs][-qm][-qa][-port][-i][-n][-d][-sn][-pm-ip-addrs][-um-ip-addrs][-pm-count][-um-count]" << endl;
cout << " -h Help" << endl;
cout << " -c Config File to use to extract configuration data, default is Columnstore.xml.rpmsave" << endl;
cout << " -u Upgrade, Install using the Config File from -c, default to Columnstore.xml.rpmsave" << endl;
cout << " If ssh-keys aren't setup, you should provide passwords as command line arguments" << endl;
cout << " -p Unix Password, used with no-prompting option" << endl;
cout << " -qs Single Server Quick Install" << endl;
cout << " -qs Quick Install - Single Server" << endl;
cout << " -qm Quick Install - Multi Server" << endl;
cout << " -port MariaDB ColumnStore Port Address" << endl;
cout << " -i Non-root Install directory, Only use for non-root installs" << endl;
cout << " -n Non-distributed install, meaning it will not install the remote nodes" << endl;
cout << " -n Non-distributed install, meaning postConfigure will not install packages on remote nodes" << endl;
cout << " -d Distributed install, meaning postConfigure will install packages on remote nodes" << endl;
cout << " -sn System Name" << endl;
cout << " -pm-ip-addrs Performance Module IP Addresses xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx" << endl;
cout << " -um-ip-addrs User Module IP Addresses xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx" << endl;
exit (0);
}
else if( string("-qs") == argv[i] )
@@ -307,30 +319,46 @@ int main(int argc, char *argv[])
single_server_quick_install = true;
noPrompting = true;
}
else if( string("-qm") == argv[i] )
{
multi_server_quick_install = true;
noPrompting = true;
}
else if( string("-qa") == argv[i] )
{
amazon_quick_install = true;
noPrompting = true;
}
else if( string("-f") == argv[i] )
nodeps = "--nodeps";
else if( string("-o") == argv[i] )
startOfflinePrompt = true;
else if( string("-c") == argv[i] ) {
else if( string("-c") == argv[i] )
{
i++;
if (i >= argc ) {
if (i >= argc )
{
cout << " ERROR: Config File not provided" << endl;
exit (1);
}
oldFileName = argv[i];
if ( oldFileName.find("Columnstore.xml") == string::npos ) {
if ( oldFileName.find("Columnstore.xml") == string::npos )
{
cout << " ERROR: Config File is not a Columnstore.xml file name" << endl;
exit (1);
}
}
else if( string("-p") == argv[i] ) {
else if( string("-p") == argv[i] )
{
i++;
if (i >= argc ) {
if (i >= argc )
{
cout << " ERROR: Password not provided" << endl;
exit (1);
}
password = argv[i];
if ( password.find("-") != string::npos ) {
if ( password.find("-") != string::npos )
{
cout << " ERROR: Valid Password not provided" << endl;
exit (1);
}
@@ -339,10 +367,20 @@ int main(int argc, char *argv[])
noPrompting = true;
// for backward compatibility
else if( string("-n") == argv[i] )
{
nonDistribute = true;
else if( string("-port") == argv[i] ) {
nonDistributeFlag = true;
}
else if( string("-d") == argv[i] )
{
nonDistribute = false;
nonDistributeFlag = true;
}
else if( string("-port") == argv[i] )
{
i++;
if (i >= argc ) {
if (i >= argc )
{
cout << " ERROR: MariaDB ColumnStore Port ID not supplied" << endl;
exit (1);
}
@@ -353,30 +391,96 @@ int main(int argc, char *argv[])
exit (1);
}
}
else if( string("-i") == argv[i] ) {
else if( string("-i") == argv[i] )
{
i++;
if (i >= argc ) {
if (i >= argc )
{
cout << " ERROR: Path not provided" << endl;
exit (1);
}
installDir = argv[i];
}
else if( string("-sn") == argv[i] ) {
else if( string("-sn") == argv[i] )
{
i++;
if (i >= argc ) {
if (i >= argc )
{
cout << " ERROR: System-name not provided" << endl;
exit (1);
}
systemName = argv[i];
}
else if( string("-pm-ip-addrs") == argv[i] )
{
i++;
if (i >= argc )
{
cout << " ERROR: PM-IP-ADRESSES not provided" << endl;
exit (1);
}
pmIpAddrs = argv[i];
}
else if( string("-um-ip-addrs") == argv[i] )
{
i++;
if (i >= argc )
{
cout << " ERROR: UM-IP-ADRESSES not provided" << endl;
exit (1);
}
umIpAddrs = argv[i];
}
else if( string("-pm-count") == argv[i] )
{
i++;
if (i >= argc )
{
cout << " ERROR: PM-COUNT not provided" << endl;
exit (1);
}
pmNumber = atoi(argv[i]);
}
else if( string("-um-count") == argv[i] )
{
i++;
if (i >= argc )
{
cout << " ERROR: UM-COUNT not provided" << endl;
exit (1);
}
umNumber = atoi(argv[i]);
}
else
{
cout << " ERROR: Invalid Argument = " << argv[i] << endl;
cout << " Usage: postConfigure [-h][-c][-u][-p][-qs][-port][-i][-n][-sn]" << endl;
cout << " Usage: postConfigure [-h][-c][-u][-p][-qs][-qm][-qa][-port][-i][-n][-d][-sn][-pm-ip-addrs][-um-ip-addrs][-pm-count][-um-count]" << endl;
exit (1);
}
}
//check if quick install multi-server has been given ip address
if (multi_server_quick_install)
{
if ( ( umIpAddrs.empty() && pmIpAddrs.empty() ) ||
( !umIpAddrs.empty() && pmIpAddrs.empty() ))
{
cout << " ERROR: Multi-Server option entered, but invalid UM/PM IP addresses were provided, exiting" << endl;
exit(1);
}
}
//check if quick install multi-server has been given ip address
if (amazon_quick_install)
{
if ( ( umNumber == 0 && pmNumber == 0 ) ||
( umNumber != 0 && pmNumber == 0 ) )
{
cout << " ERROR: Amazon option entered, but invalid UM/PM Counts were provided, exiting" << endl;
exit(1);
}
}
if (installDir[0] != '/')
{
cout << " ERROR: Install dir '" << installDir << "' is not absolute" << endl;
@@ -395,7 +499,7 @@ int main(int argc, char *argv[])
cout << "IMPORTANT: This tool requires to run on the Performance Module #1" << endl;
cout << endl;
if (!single_server_quick_install)
if (!single_server_quick_install || !multi_server_quick_install || !amazon_quick_install)
{
if (!noPrompting) {
cout << "Prompting instructions:" << endl << endl;
@@ -436,20 +540,15 @@ int main(int argc, char *argv[])
}
//check Config saved files
if (!single_server_quick_install)
{
if ( !checkSaveConfigFile())
{
cout << "ERROR: Configuration File not setup" << endl;
exit(1);
}
}
//determine package type
string EEPackageType;
if (single_server_quick_install)
{
if (!rootUser)
EEPackageType = "binary";
else
@@ -479,7 +578,6 @@ int main(int argc, char *argv[])
cout << "ERROR: Failed trying to update MariaDB ColumnStore System Configuration file" << endl;
exit(1);
}
}
//check for local ip address as pm1
ModuleConfig moduleconfig;
@@ -614,6 +712,8 @@ int main(int argc, char *argv[])
}
//check for non-Distributed Install
if ( nonDistributeFlag )
{
if ( nonDistribute )
{
try {
@@ -622,6 +722,14 @@ int main(int argc, char *argv[])
catch(...) {}
}
else
{
try {
oam.setSystemConfig("DistributedInstall", "y");
}
catch(...) {}
}
}
else
{
//get Distributed Install
try {
@@ -638,7 +746,7 @@ int main(int argc, char *argv[])
if (single_server_quick_install)
{
cout << "===== Quick Single-Server Install Configuration =====" << endl << endl;
cout << "===== Quick Install Single-Server Configuration =====" << endl << endl;
cout << "Single-Server install is used when there will only be 1 server configured" << endl;
cout << "on the system. It can also be used for production systems, if the plan is" << endl;
@@ -646,6 +754,18 @@ int main(int argc, char *argv[])
singleServerInstall = "1";
}
else if (multi_server_quick_install)
{
cout << "===== Quick Install Multi-Server Configuration =====" << endl << endl;
singleServerInstall = "2";
}
else if (amazon_quick_install)
{
cout << "===== Quick Install Amazon Configuration =====" << endl << endl;
singleServerInstall = "2";
}
else
{
cout << "===== Setup System Server Type Configuration =====" << endl << endl;
@@ -724,7 +844,7 @@ int main(int argc, char *argv[])
system(cmd.c_str());
}
setSystemName(single_server_quick_install);
setSystemName();
if (!single_server_quick_install)
{
@@ -797,6 +917,112 @@ int main(int argc, char *argv[])
// Multi-server install
//
ModuleIP InputModuleIP;
ModuleIpList InputModuleIPList;
int MaxNicID = oam::MAX_NIC;
if (multi_server_quick_install)
{
//set configuarion settings for default setup
try {
sysConfig->setConfig(InstallSection, "MySQLRep", "y");
}
catch(...)
{}
if (umIpAddrs == "" )
{
// set Server Type Installation to combined
try {
sysConfig->setConfig(InstallSection, "ServerTypeInstall", "2");
}
catch(...)
{}
}
else
{
int id = 1;
boost::char_separator<char> sep(",");
boost::tokenizer< boost::char_separator<char> > tokens(umIpAddrs, sep);
for ( boost::tokenizer< boost::char_separator<char> >::iterator it = tokens.begin();
it != tokens.end();
++it, ++id)
{
string module = "um" + oam.itoa(id);
InputModuleIP.IPaddress = *it;
InputModuleIP.moduleName = module;
InputModuleIPList.push_back(InputModuleIP);
}
umNumber = id-1;
}
if (pmIpAddrs != "" )
{
int id = 1;
boost::char_separator<char> sep(",");
boost::tokenizer< boost::char_separator<char> > tokens(pmIpAddrs, sep);
for ( boost::tokenizer< boost::char_separator<char> >::iterator it = tokens.begin();
it != tokens.end();
++it, ++id)
{
string module = "pm" + oam.itoa(id);
InputModuleIP.IPaddress = *it;
InputModuleIP.moduleName = module;
InputModuleIPList.push_back(InputModuleIP);
}
pmNumber = id-1;
}
if ( !writeConfig(sysConfig) )
{
cout << "ERROR: Failed trying to update MariaDB ColumnStore System Configuration file" << endl;
exit(1);
}
MaxNicID = 1;
}
else
{
if (amazon_quick_install)
{
//set configuarion settings for default setup
try {
sysConfig->setConfig(InstallSection, "MySQLRep", "y");
}
catch(...)
{}
try {
sysConfig->setConfig(InstallSection, "Cloud", "amazon-vpc");
}
catch(...)
{}
if (umNumber == 0 )
{
// set Server Type Installation to combined
try {
sysConfig->setConfig(InstallSection, "ServerTypeInstall", "2");
}
catch(...)
{}
}
if ( !writeConfig(sysConfig) )
{
cout << "ERROR: Failed trying to update MariaDB ColumnStore System Configuration file" << endl;
exit(1);
}
MaxNicID = 1;
}
}
cout << endl;
//cleanup/create local/etc directory
cmd = "rm -rf " + installDir + "/local/etc > /dev/null 2>&1";
@@ -851,7 +1077,7 @@ int main(int argc, char *argv[])
}
switch ( IserverTypeInstall ) {
case (oam::INSTALL_COMBINE_DM_UM_PM): // combined #1 - dm/um/pm on a single server
case (oam::INSTALL_COMBINE_DM_UM_PM): // combined #1 - um/pm on a single server
{
cout << "Combined Server Installation will be performed." << endl;
cout << "The Server will be configured as a Performance Module." << endl;
@@ -1028,12 +1254,29 @@ int main(int argc, char *argv[])
in.seekg(0, std::ios::end);
int size = in.tellg();
if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not found"))
{
// not running on amazon with ec2-api-tools
if (amazon_quick_install)
{
cout << "ERROR: Amazon Quick Installer was specified, bu the AMazon CLI API packages isnt installed, exiting" << endl;
exit(1);
}
amazonInstall = false;
}
else
{
if ( size == 0 || oam.checkLogStatus("/tmp/amazon.log", "not installed"))
{
// not running on amazon with ec2-api-tools
if (amazon_quick_install)
{
cout << "ERROR: Amazon Quick Installer was specified, bu the AMazon CLI API packages isnt installed, exiting" << endl;
exit(1);
}
amazonInstall = false;
}
else
amazonInstall = true;
}
@@ -1464,6 +1707,14 @@ int main(int argc, char *argv[])
{}
}
if ( moduleType == "um")
if ( umNumber != 0 )
moduleCount = umNumber;
if ( moduleType == "pm")
if ( pmNumber != 0 )
moduleCount = pmNumber;
//verify and setup of modules count
switch ( IserverTypeInstall ) {
case (oam::INSTALL_COMBINE_DM_UM_PM):
@@ -1519,6 +1770,7 @@ int main(int argc, char *argv[])
exit(1);
continue;
}
//update count
try {
string ModuleCountParm = "ModuleCount" + oam.itoa(i+1);
@@ -1545,7 +1797,7 @@ int main(int argc, char *argv[])
//clear any Equipped Module IP addresses that aren't in current ID range
for ( int j = 0 ; j < listSize ; j++ )
{
for ( unsigned int k = 1 ; k < MAX_NIC+1 ; k++)
for ( unsigned int k = 1 ; k < MaxNicID+1 ; k++)
{
string ModuleIPAddr = "ModuleIPAddr" + oam.itoa(j+1) + "-" + oam.itoa(k) + "-" + oam.itoa(i+1);
if ( !(sysConfig->getConfig(ModuleSection, ModuleIPAddr).empty()) ) {
@@ -1594,27 +1846,52 @@ int main(int argc, char *argv[])
moduleDisableState = oam::ENABLEDSTATE;
//setup HostName/IPAddress for each NIC
for( unsigned int nicID=1 ; nicID < MAX_NIC+1 ; nicID++ )
{
string moduleHostName = oam::UnassignedName;
string moduleIPAddr = oam::UnassignedIpAddr;
bool found = false;
if (multi_server_quick_install)
{
ModuleIpList::iterator pt2 = InputModuleIPList.begin();
for( ; pt2 != InputModuleIPList.end() ; pt2++)
{
if ( (*pt2).moduleName == newModuleName )
{
moduleHostName = (*pt2).IPaddress;
moduleIPAddr = (*pt2).IPaddress;
found = true;
break;
}
}
}
unsigned int nicID=1;
for( ; nicID < MaxNicID +1 ; nicID++ )
{
if ( !found )
{
moduleHostName = oam::UnassignedName;
moduleIPAddr = oam::UnassignedIpAddr;
DeviceNetworkList::iterator listPT = sysModuleTypeConfig.moduletypeconfig[i].ModuleNetworkList.begin();
for( ; listPT != sysModuleTypeConfig.moduletypeconfig[i].ModuleNetworkList.end() ; listPT++)
{
if (newModuleName == (*listPT).DeviceName) {
if ( nicID == 1 ) {
if (newModuleName == (*listPT).DeviceName)
{
if ( nicID == 1 )
{
moduleDisableState = (*listPT).DisableState;
if ( moduleDisableState.empty() ||
moduleDisableState == oam::UnassignedName ||
moduleDisableState == oam::AUTODISABLEDSTATE )
moduleDisableState = oam::ENABLEDSTATE;
}
{
HostConfigList::iterator pt1 = (*listPT).hostConfigList.begin();
for( ; pt1 != (*listPT).hostConfigList.end() ; pt1++)
{
if ((*pt1).NicID == nicID) {
if ((*pt1).NicID == nicID)
{
moduleHostName = (*pt1).HostName;
moduleIPAddr = (*pt1).IPAddr;
break;
@@ -1622,8 +1899,12 @@ int main(int argc, char *argv[])
}
}
}
}
}
}
if ( nicID == 1 ) {
if ( nicID == 1 )
{
if ( moduleDisableState != oam::ENABLEDSTATE ) {
string disabled = "y";
while (true)
@@ -1705,6 +1986,7 @@ int main(int argc, char *argv[])
break;
}
bool moduleHostNameFound = true;
if (moduleHostName.empty()) {
moduleHostNameFound = true;
@@ -1744,6 +2026,8 @@ int main(int argc, char *argv[])
//check if need to create instance or user enter ID
string create = "y";
if ( !amazon_quick_install )
{
while(true)
{
pcommand = callReadline("Create Instance for " + newModuleName + " [y,n] (y) > ");
@@ -1760,7 +2044,7 @@ int main(int argc, char *argv[])
if ( noPrompting )
exit(1);
}
}
if ( create == "y" ) {
ModuleIP moduleip;
@@ -2313,6 +2597,12 @@ int main(int argc, char *argv[])
string dbrootList;
if (multi_server_quick_install || amazon_quick_install)
{
dbrootList = oam.itoa(moduleID);
}
else
{
for ( unsigned int id = 1 ; id < count+1 ; )
{
string moduledbrootid = "ModuleDBRootID" + oam.itoa(moduleID) + "-" + oam.itoa(id) + "-" + oam.itoa(i+1);
@@ -2334,6 +2624,7 @@ int main(int argc, char *argv[])
exit(1);
}
}
}
vector <string> dbroots;
string tempdbrootList;
@@ -3417,12 +3708,25 @@ bool checkSaveConfigFile()
//check if Columnstore.xml.rpmsave exist
ifstream File (oldFileName.c_str());
if (!File) {
if (single_server_quick_install || multi_server_quick_install || amazon_quick_install)
{
return true;
}
if ( noPrompting ) {
cout << endl << "Old Config File not found '" + oldFileName + "', exiting" << endl;
exit(1);
}
return true;
}
else
{
if (single_server_quick_install || multi_server_quick_install || amazon_quick_install)
{
cout << endl << "Quick Install is for fresh installs only, '" + oldFileName + "' exist, exiting" << endl;
exit(1);
}
}
File.close();
// If 'oldFileName' isn't configured, exit
@@ -4837,7 +5141,7 @@ bool storageSetup(bool amazonInstall)
}
void setSystemName(bool single_server_quick_install)
void setSystemName()
{
Oam oam;
//setup System Name
@@ -4856,7 +5160,7 @@ void setSystemName(bool single_server_quick_install)
if ( systemName.empty() )
systemName = "columnstore-1";
if (!single_server_quick_install)
if (!single_server_quick_install || !multi_server_quick_install)
{
prompt = "Enter System Name (" + systemName + ") > ";
pcommand = callReadline(prompt.c_str());

View File

@@ -0,0 +1,81 @@
#!/bin/bash
#
# $Id: quick_installer_amazon.sh 3705 2018-07-07 19:47:20Z dhill $
#
# Poddst- Quick Installer for Amazon MariaDB Columnstore
pmCount=""
umCount=""
systemName=""
for arg in "$@"; do
if [ `expr -- "$arg" : '--pm-count='` -eq 11 ]; then
pmCount="`echo $arg | awk -F= '{print $2}'`"
elif [ `expr -- "$arg" : '--um-count='` -eq 11 ]; then
umCount="`echo $arg | awk -F= '{print $2}'`"
elif [ `expr -- "$arg" : '--system-name='` -eq 14 ]; then
systemName="`echo $arg | awk -F= '{print $2}'`"
systemName="-sn "$systemName
elif [ `expr -- "$arg" : '--dist-install'` -eq 14 ]; then
nonDistrubutedInstall=" "
elif [ `expr -- "$arg" : '--help'` -eq 6 ]; then
echo "Usage ./quick_installer_amazon.sh [OPTION]"
echo ""
echo "Quick Installer for an Amazon MariaDB ColumnStore Install"
echo "This requires to be run on a MariaDB ColumnStore AMI"
echo ""
echo "Performace Module (pm) number is required"
echo "User Module (um) number is option"
echo "When only pm counts provided, system is combined setup"
echo "When both pm/um counts provided, system is seperate setup"
echo
echo "--pm-count=x Number of pm instances to create"
echo "--um-count=x Number of um instances to create, optional"
echo "--system-name=nnnn System Name, optional"
echo ""
exit 1
else
echo "./quick_installer_amazon.sh: unknown argument: $arg, enter --help for help" 1>&2
exit 1
fi
done
if [[ $pmCount = "" ]]; then
echo ""
echo "Performace Module (pm) count is required, exiting"
exit 1
else
if [[ $umCount = "" ]]; then
echo ""
echo "NOTE: Performing a Multi-Server Combined install with um/pm running on some server"
echo""
else
echo ""
echo "NOTE: Performing a Multi-Server Seperate install with um and pm running on seperate servers"
echo""
fi
fi
if [[ $HOME = "/root" ]]; then
echo "${bold}Run post-install script${normal}"
echo ""
/usr/local/mariadb/columnstore/bin/post-install
echo "${bold}Run postConfigure script${normal}"
echo ""
if [[ $umCount = "" ]]; then
/usr/local/mariadb/columnstore/bin/postConfigure -qa -pm-count $pmCount $systemName
else
/usr/local/mariadb/columnstore/bin/postConfigure -qa -pm-count $pmCount -um-count $umCount $systemName
fi
else
echo "${bold}Run post-install script${normal}"
echo ""
$HOME/mariadb/columnstore/bin/post-install --installdir=$HOME/mariadb/columnstore
echo "${bold}Run postConfigure script${normal}"
echo ""
if [[ $umCount = "" ]]; then
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -qa -pm-count $pmCount $systemName
else
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -qa -pm-count $pmCount -um-count $umCount $systemName
fi
fi

View File

@@ -0,0 +1,85 @@
#!/bin/bash
#
# $Id: quick_installer_multi_server.sh 3705 2018-07-07 19:47:20Z dhill $
#
# Poddst- Quick Installer for Multi Server MariaDB Columnstore
pmIpAddrs=""
umIpAddrs=""
nonDistrubutedInstall="-n"
systemName=""
for arg in "$@"; do
if [ `expr -- "$arg" : '--pm-ip-addresses='` -eq 18 ]; then
pmIpAddrs="`echo $arg | awk -F= '{print $2}'`"
elif [ `expr -- "$arg" : '--um-ip-addresses='` -eq 18 ]; then
umIpAddrs="`echo $arg | awk -F= '{print $2}'`"
elif [ `expr -- "$arg" : '--system-name='` -eq 14 ]; then
systemName="`echo $arg | awk -F= '{print $2}'`"
systemName="-sn "$systemName
elif [ `expr -- "$arg" : '--dist-install'` -eq 14 ]; then
nonDistrubutedInstall=" "
elif [ `expr -- "$arg" : '--help'` -eq 6 ]; then
echo "Usage ./quick_installer_multi_server.sh [OPTION]"
echo ""
echo "Quick Installer for a Multi Server MariaDB ColumnStore Install"
echo ""
echo "Defaults to non-distrubuted install, meaning MariaDB Columnstore"
echo "needs to be preinstalled on all nodes in the system"
echo ""
echo "Performace Module (pm) IP addresses are required"
echo "User Module (um) IP addresses are option"
echo "When only pm IP addresses provided, system is combined setup"
echo "When both pm/um IP addresses provided, system is seperate setup"
echo
echo "--pm-ip-addresses=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx"
echo "--um-ip-addresses=xxx.xxx.xxx.xxx,xxx.xxx.xxx.xxx, optional"
echo "--dist-install Use Distributed Install, optional"
echo "--system-name=nnnn System Name, optional"
echo ""
exit 1
else
echo "quick_installer_multi_server.sh: unknown argument: $arg, enter --help for help" 1>&2
exit 1
fi
done
if [[ $pmIpAddrs = "" ]]; then
echo ""
echo "Performace Module (pm) IP addresses required, exiting"
exit 1
else
if [[ $umIpAddrs = "" ]]; then
echo ""
echo "NOTE: Performing a Multi-Server Combined install with um/pm running on some server"
echo""
else
echo ""
echo "NOTE: Performing a Multi-Server Seperate install with um and pm running on seperate servers"
echo""
fi
fi
if [[ $HOME = "/root" ]]; then
echo "${bold}Run post-install script${normal}"
echo ""
/usr/local/mariadb/columnstore/bin/post-install
echo "${bold}Run postConfigure script${normal}"
echo ""
if [[ $umIpAddrs = "" ]]; then
/usr/local/mariadb/columnstore/bin/postConfigure -qm -pm-ip-addrs $pmIpAddrs $nonDistrubutedInstall $systemName
else
/usr/local/mariadb/columnstore/bin/postConfigure -qm -pm-ip-addrs $pmIpAddrs -um-ip-addrs $umIpAddrs $nonDistrubutedInstall $systemName
fi
else
echo "${bold}Run post-install script${normal}"
echo ""
$HOME/mariadb/columnstore/bin/post-install --installdir=$HOME/mariadb/columnstore
echo "${bold}Run postConfigure script${normal}"
echo ""
if [[ $umIpAddrs = "" ]]; then
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -qm -pm-ip-addrs $pmIpAddrs $nonDistrubutedInstall $systemName
else
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -qm -pm-ip-addrs $pmIpAddrs -um-ip-addrs $umIpAddrs $nonDistrubutedInstall $systemName
fi
fi

14
oamapps/postConfigure/quick_installer_single_server.sh Normal file → Executable file
View File

@@ -4,6 +4,18 @@
#
# Poddst- Quick Installer for Single Server MariaDB Columnstore
for arg in "$@"; do
if [ `expr -- "$arg" : '--help'` -eq 6 ]; then
echo "Usage ./quick_installer_multi_server.sh"
echo ""
echo "Quick Installer for a Single Server MariaDB ColumnStore Install"
echo ""
exit 1
else
echo "quick_installer_multi_server.sh: ignoring unknown argument: $arg" 1>&2
fi
done
if [ $HOME == "/root" ]; then
echo "Run post-install script"
@@ -18,5 +30,5 @@ else
$HOME/mariadb/columnstore/bin/post-install --installdir=$HOME/mariadb/columnstore
echo "Run postConfigure script"
echo ""
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -sq
$HOME/mariadb/columnstore/bin/postConfigure -i $HOME/mariadb/columnstore -qs
fi