[MCOL-522] support pre-installed software in postConfigure and addModule - phase I Created: 2017-01-18  Updated: 2017-12-01  Resolved: 2017-06-30

Status: Closed
Project: MariaDB ColumnStore
Component/s: installation
Affects Version/s: None
Fix Version/s: 1.1.0

Type: New Feature Priority: Major
Reporter: David Thompson (Inactive) Assignee: David Hill (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MCOL-546 Post configuration Improvements with RPM Closed
Sprint: 2017-9, 2017-10, 2017-11, 2017-12, 2017-13

 Description   

PostConfigure and addModule (etc) should support a mode of operation where they do not perform the actual software install and instead assume / verify that the user has already done this (either rpm, deb, or binary + post-install) and purely do the system configuration aspect.

This likely will also help reduce the number of sudo use cases for non root in addition. It will also make it more straightforward to use third party orchestration software such as docker for multi node.

Phase I - user is required to preinstall the software. postConfigure will still communicate with new server for setup.



 Comments   
Comment by David Hill (Inactive) [ 2017-05-15 ]

testing

here is what gets reported when the remote node doesn't have mariadb columnstore install when running the non-distributed option:

  1. ./postConfigure -n -p Calpont1
    • Performance Module #2 Configuration ***

Enter Nic Interface #1 Host Name (pm2-hostname) >
Enter Nic Interface #1 IP Address of pm2-hostname (10.128.0.18) >
Enter Nic Interface #2 Host Name (unassigned) >
Enter the list (Nx,Ny,Nz) or range (Nx-Nz) of DBRoot IDs assigned to module 'pm2' (2) >

===== System Installation =====

System Configuration is complete, System Installation is the next step.
Would you like to continue with the System Installation? [y,n] >

===== Running the MariaDB ColumnStore MariaDB ColumnStore setup scripts =====

post-mysqld-install Successfully Completed
post-mysql-install Successfully Completed

----- Performing Install Check on 'pm2 / pm2-hostname' -----

Error: MariaDB ColumnStore not installed on pm2 / pm2-hostname
Install and re-run postConfigure. Exiting...

Comment by David Hill (Inactive) [ 2017-05-15 ]

nonDistrubuted install when pm2 had package preinstalled - this is root user and level installs

----- Performing Install Check on 'pm2 / pm2-hostname' -----

Install log file is located here: /tmp/pm2_binary_install.log

MariaDB ColumnStore Package being installed, please wait ... DONE

===== Checking MariaDB ColumnStore System Logging Functionality =====

The MariaDB ColumnStore system logging is setup and working on local server

MariaDB ColumnStore System Configuration and Installation is Completed

===== MariaDB ColumnStore System Startup =====

System Installation is complete. If any part of the install failed,
the problem should be investigated and resolved before continuing.

Would you like to startup the MariaDB ColumnStore System? [y,n] >

----- Starting MariaDB ColumnStore on 'pm2' -----

MariaDB ColumnStore successfully started

----- Starting MariaDB ColumnStore on local server -----

MariaDB ColumnStore successfully started

MariaDB ColumnStore Database Platform Starting, please wait ....... DONE

System Catalog Successfully Created

Run MariaDB ColumnStore Replication Setup.. DONE

MariaDB ColumnStore Install Successfully Completed, System is Active

Enter the following command to define MariaDB ColumnStore Alias Commands

. /usr/local/mariadb/columnstore/bin/columnstoreAlias

Enter 'mcsmysql' to access the MariaDB ColumnStore SQL console
Enter 'mcsadmin' to access the MariaDB ColumnStore Admin console

[root@centos-7-pm1 bin]#

-------------------------------------------

centos7 root installs looking good, testing non-root installs next

Comment by David Hill (Inactive) [ 2017-05-21 ]

coding is completed

pull request is done, so that needs to be reviewed. Ben, please review when you get a chance. let me know if you have any questions
once its merged into develop, 1.1.0. I will retest
then I will provide a writeup on how to use

Additional info for reviewing and testing:

Current multi-node install is considered a Distributed Install Process. What this means is during postConfigure and AddModule, the MCS package is taken from the $HOME directory and scped to the remote nodes and installed. Part of that process is to check if the packages exist in $HOME. Also during the removeModule, the rpm/deb are erase (when they are installed) from the module being removed.

New Feature is to support Non-Distrusted Install Process. What this means is the user will install the MCS packages on the remote modules before postConfigure or addModule is run. A new option is added to postConfigure '-n', for non-distrusted install. When this option is selected, then on both postConfigure and addmodule, it will check if MCS is installed on the remote node instead of scping a copy there. An error will be reported if MCS is not already installed on the remote module. If it is, then postConfigure and ProcMgr (addModule) will commincate with it and get it configured.
And on the removeModule, the packages arent removed with the system was instaleld with a non-distrubuted feature set. Also all future installs will use the non-distributed installs via a flag that is set in the ColumnStore.xml.

Comment by David Hill (Inactive) [ 2017-05-21 ]

please review pull request

Comment by Ben Thompson (Inactive) [ 2017-05-23 ]

Reviewed and merged.

Comment by David Hill (Inactive) [ 2017-05-23 ]

has been merged, rebuilding and will retest in offical repo

Comment by David Hill (Inactive) [ 2017-05-24 ]

Added logic to verify matching MCS versions on local (pm1) and remote nodes

output when MCS package not installed on remote node

----- Performing Install Check on 'pm2 / pm2' -----

Error: MariaDB ColumnStore not installed on pm2 / pm2
Install and re-run postConfigure. Exiting...

output when a different version os MCS is installed on remote node. does this by comparing the contains of mariadb/columnstore/releasenum

----- Performing Install Check on 'pm2 / pm2' -----

Error: Local version of MariaDB ColumnStore doesn't match installed version on pm2 / pm2
Install matching version and re-run postConfigure. Exiting...

Comment by Daniel Lee (Inactive) [ 2017-05-31 ]

Build tested: Github source 1.1.0

commit 349cae544b6bc71910267a3b3b0fa3fb57b0a587
Merge: bd13090 2ecb85c
Author: benthompson15 <ben.thompson@mariadb.com>
Date: Thu May 4 16:06:16 2017 -0500

[root@localhost mariadb-columnstore-engine]# git show
commit 2cc5fc7195a76ce6ff475ba85f67123ec94b9fbe
Author: david hill <david.hill@mariadb.com>
Date: Tue May 30 15:12:50 2017 -0500

I did a non-distributed installation for a 1um2pm stack, the tried to add pm3, using a node that did not have ColumnStore files installed. The addmodule command failed expected. But the getprocessstatus command showed pm3 as part of the stack.

Comment by David Hill (Inactive) [ 2017-05-31 ]

correct, this is how it currently works...

it got added in the module configuration, but then failed to get installed. User would need to do a removeMdoule pm3 and start over.

Comment by Daniel Lee (Inactive) [ 2017-05-31 ]

Created MCOL-733 to track this issue separately, since it is an existing issue that affects both distributed and non-distributed installations.

Comment by David Hill (Inactive) [ 2017-06-30 ]

phase II has been tested and can be closed

Generated at Thu Feb 08 02:21:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.