Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Excerpt

Released on October 7, 2015.

Upgrade Instructions

On all servers (storage and cluster nodes) run:

Code Block
[squirro@storagenode01 ~] sudo sed -i -e 's/6\.[56]/6/' /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
languagebash
[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
languagebash
titleInstall 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
languagebash
titleCheck 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

 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
languagebash
[squirro@clusternode01 ~] sudo yum upgrade -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

  1. backing up the previous *.ini and *.conf files to *.ini.orig and *.conf.orig,
  2. renaming the *.ini.rpmnew and *.conf.rpmnew files to *.ini and *.conf respectively
  3. 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
languagebash
# 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
languagebash
[squirro@clusternode01 ~] sudo reboot

 

New Features

Dashboard

 

...