Excerpt |
---|
Released on October 7, 2015. |
Upgrade Instructions
Note |
---|
If you are using Squirro in a Box, then there are additional steps involved. In this case, please contact support. |
1. Update repository links
On all servers (storage and cluster nodes), update the squirro yum repo path to use the major OS version and to point to the "latest" stable version, by running:
Code Block |
---|
[squirro@storagenode01 ~] sudo sed -e 's/6\.[567]/6/' -i /etc/yum.repos.d/squirro-stable.repo
[squirro@storagenode01 ~] sudo sed -e "s/^\(baseurl=.*\/\(\$basearch\|x86_64\)\)\/\?$/\1\/latest\//" -i /etc/yum.repos.d/squirro-stable.repo |
2. Upgrade storage nodes
If your storage node runs in the same Virtual Machine or Operating System as your cluster node, skip this step. Otherwise upgrade all storage nodes one at a time by running:
Code Block |
---|
|
[squirro@storagenode01 ~] sudo yum upgrade -y
[squirro@storagenode01 ~] sudo reboot |
3. Install new users
Release 2.2.0 reintroduces data providers and squirro services that require new users to be installed before the upgrade. If you rely on squirro-cluster-node-users as recommended, this is done by running the following on all cluster nodes:
Code Block |
---|
language | bash |
---|
title | Install users using squirro-cluster-node-users |
---|
|
[squirro@clusternode01 ~] sudo yum upgrade -y squirro-cluster-node-users |
If you instead need to create the users manually, e.g. because your company policy forbids creating users from inside upgrade packages, ensure you add the following users such that /etc/passwd has the following entries:
Code Block |
---|
title | /etc/passwd containing new users |
---|
|
sqbing:x:467:500:Squirro Bing Provider Service:/var/lib/squirro/bing:/sbin/nologin
sqdifbot:x:466:500:Squirro Diffbot Provider Service:/var/lib/squirro/diffbot:/sbin/nologin
sqemails:x:468:500:Squirro Email Sender Service:/var/lib/squirro/emailsender:/sbin/nologin
sqfb:x:465:500:Squirro Facebook Provider Service:/var/lib/squirro/facebook:/sbin/nologin
sqgnip:x:464:500:Squirro Gnip Provider Service:/var/lib/squirro/gnip:/sbin/nologin
sqinstag:x:463:500:Squirro Instagram Provider Service:/var/lib/squirro/instagram:/sbin/nologin
sqmailer:x:469:500:Squirro Digest Mailer Service:/var/lib/squirro/digestmailer:/sbin/nologin
sqreddit:x:462:500:Squirro Reddit Provider Service:/var/lib/squirro/reddit:/sbin/nologin
sqtwtr:x:461:500:Squirro Twitter Provider Service:/var/lib/squirro/twitter:/sbin/nologin
sqyoutub:x:460:500:Squirro YouTube Provider Service:/var/lib/squirro/youtube:/sbin/nologin
[..] |
You can verify that all new users have been correctly added with. If all users have been added, the script prints nothing.
Code Block |
---|
language | bash |
---|
title | Check that all new users exist |
---|
|
[squirro@localhost clusternode01 ~] sudo su
[root@localhost clusternode01 ~] for SQ_USER in sqmailer sqemails sqbing sqdifbot sqfb sqgnip sqinstag sqreddit sqtwtr sqyoutub; do grep -q $SQ_USER /etc/passwd; if [ "$?" -ne "0" ]; then echo Missing $SQ_USER; fi; done |
4. Upgrade all squirro cluster nodes
Remove the following two packages no longer needed to prevent subsequent update problems.
Code Block |
---|
language | bash |
---|
title | Remove cache cleansing modules |
---|
|
[squirro@clusternode01 ~] sudo yum erase -y squirro-python-squirro.lib.cachecleansing squirro-python-squirro.service.cachecleansing |
The following step upgrades cluster nodes (and if run locally storage nodes too). This step takes about 20 minutes on a reasonably good network connection.
Code Block |
---|
|
[squirro@clusternode01 ~] sudo yum upgradeupdate -y |
5. Resolve configurations
The Squirro packages attempt to upgrade *.ini and *.conf configuration files automatically. However if you have made local modifications, the upgrade results in *.rpmnew files that you would need to merge manually. We recommend
- backing up the previous *.ini and *.conf files to *.ini.orig and *.conf.orig,
- renaming the *.ini.rpmnew and *.conf.rpmnew files to *.ini and *.conf respectively
- inspecting all the *.orig files individually and porting any settings manually
Use the following scripts to look for and resolve unresolved configuration files on each cluster node:
Code Block |
---|
|
# 1. First remember all *.rpmnew because we are about to rename them, but we want to remember the list for step 3 below
sudo su
FILES_TO_RESOLVE=`ls /etc/squirro/*.ini.rpmnew /etc/nginx/conf.d/*.conf.rpmnew /etc/monit.d/*.rpmnew 2> /dev/null | sed -e "s/\.rpmnew//"`
# 2. Back up original config files and make the *.rpmnew files the real configuration files
# (\cp and \rm are used to avoid interactive alias of the commands and to ensure that the config file retains the ownership of the original config file)
for CONFIG_FILE in ${FILES_TO_RESOLVE}; do \cp ${CONFIG_FILE} ${CONFIG_FILE}.orig; \cp ${CONFIG_FILE}.rpmnew ${CONFIG_FILE}; \rm ${CONFIG_FILE}.rpmnew; done
# 3. Finally merge the commands. Exit vim via :q<enter>:q<enter> to accept a new config files verbatim
for CONFIG_FILE in ${FILES_TO_RESOLVE}; do vim -O ${CONFIG_FILE}.orig ${CONFIG_FILE}; done |
6. Reboot
Reboot every cluster node like so:
Code Block |
---|
|
[squirro@clusternode01 ~] sudo reboot |
7. Start the new services
This is only necessary in single-node clusters in which monit is tasked with monitoring services.
Code Block |
---|
language | bash |
---|
title | On single cluster node systems only |
---|
|
[squirro@clusternode01 ~] sudo monit -g all-manual start |
New Features
Dashboard
Search
...