Installing Community Edition Infobright Server

We are a creating our Pentaho environment in the Amazon cloud, we ustilise the Infobright ICE column database for the analyser tool. This allows the software to work extremley fast. The information provide to get this server working is some what limited, and the following is an amalgamation of much research around many of the areas and also snippets from the INSTALL and README files that are supplied. The following instructions were written as I installed and fixed the issues, It should not contain errors as I tried to record everything as I did it. There is always issues with this and I am sure that I have missed some small detail out. Just drop me a line if you spot and error or know of a better way to achieve something. The creation of the server will require a mounted disk to store the database information. Due to the nature of the Amazon this will be a little bit of an experiment. We will create a server with a large EBS volume and a standard server with a large EBS volume attached. We will then bench mark the performance!!!! Good luck and lets get started. Please note unless the instructions say to use the Yum package manger please compile from source, I have had many instances where the package manager has installed the wrong version and software installs just do not work There is an assumption that you know your way arround AWS and the notes that relate to the configuration is where it maybe obscure. You Amazon skills must be around EC2 instance creation including security groups, volume creation and route 53, route 53 is not so important but will make your like a whole lot easier in many circumstances. This will be the server with the Volume mounted Create a Amazon micro instance to start with, will make this a large instance when we are finished, choose a 64 bit version as we may need RAM if the data got large. DO NOT create the 100GB volume when creating the server, I did this and I could not get the disk to format or mount. Create the 100GB volume and attach it to the newly created server. Lauch the server.

fdisk -l

You should get an output some thing like this

Disk /dev/xvda1: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Disk /dev/xvda1 doesn’t contain a valid partition table

Disk /dev/xvdf: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

Disk /dev/xvdf doesn’t contain a valid partition table

You are looking for the 100GB disk in this case it is /dev/xvdf

mkdir -p /u10
mkfs -t ext4 /dev/xvdf
vi /etc/fstab

Add this line to the bottom of the file

/dev/xvdf   /u10       ext4    defaults              0 0

The assumption here is that you will mount the disk under u10 To mount the disk

mount -a

To see the size of the disks and the mount state etc..

df

You should get an output something like this

Filesystem           1K-blocks      Used Available Use% Mounted on /dev/xvda1             8361916   1077896   7200160  14% / tmpfs                   304800         0    304800   0% /dev/shm /dev/xvdf            104693300   1673096  97777324   2% /u10

Now for the installation of Infobright You need some prerequisites:

yum install -y gcc libtool zlib-devel perl bison zlib make gcc-c++
 

Create the user and group that will run the Infobright

groupadd mysql
useradd -g mysql mysql

Must of the rest is taken from the README file that you get when you unpack Infobright. If you follow this guide you will not go wrong though. Boost is required for the installation of Infobright

mkdir -p /opt/software/
cd  /opt/software/

Donwload the 1.42.0 version, I tried the 1.50.0 and there was and error relating to the boost_thread when compiling Infobright.

configure: error: Could not link against boost_thread !

wget http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.tar.gz/download
tar -xvzf boost_1_42_0.tar.gz
cd boost*

Review the Boost web site for all of the explanation of the paths etc.. but if you use the paths below you will not go wrong. PLEASE NOTE the – – in front of the prefix

./bootstrap.sh --prefix=/usr/local/boost_1_42_0
 ./bjam install
export BOOST_ROOT=/usr/local/boost_1_42_0

To avoid the following error when compiling Infobright

checking for termcap functions library… configure: error: No curses/termcap library found

cd /opt/software
wget ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
tar -xvzf  termcap-1.3.1.tar.gz
cd termcap*
./configure
make
make install

Now to install lsb_release which is needed when installing the last parts of Infobright

wget http://sourceforge.net/projects/lsb/files/lsb_release/1.4/lsb-release-1.4.tar.gz/download
tar -xvzf lsb-release-1.4.tar.gz
cd lsb-release*
make
make install
cd /opt/software/

We would normally get the tar and install it via the instructions below. This though does not work and will error. Miss this chunk out and scroll down a few lines to “Start the install here”

wget https://www.infobright.org/downloads/ice/infobright-4.0.7-0-linux-i686-ice.tar.gz

tar -xvzf infobright-4.0.7-0-*.tar.gz
cp -r infobright-4.0.7-i686 /usr/local

ln -s /usr/local/infobright-4.0.7-i686 /usr/local/infobright
cd /usr/local/infobright
./install-infobright.sh --datadir=/u10/infobright/data \
--cachedir=/u10/infobright/cache --config=/etc/my-ib.cnf --port=5029 \
--socket=/u10/infobright/mysql-ib.sock \
--user=mysql --group=mysql

This will error  This error was received install-infobright.sh: line 234: lsb_release: command not found Installing default databases… Installing MySQL system tables… 130903 12:56:24 [ERROR] Fatal error: Can’t change to run as user ‘mysql’ ; Please check that the user exists! 130903 12:56:24 [ERROR] Aborting 130903 12:56:24 [Note] /usr/local/infobright/bin/mysqld: Shutdown complete Start the install here

wget https://www.infobright.org/downloads/ice/infobright-4.0.7-0-x86_64-ice.rpm

rpm -i infobright-4.0.7-0-x86_64-ice.rpm

wget ftp://rpmfind.net/linux/sourceforge/f/fu/fuduntu/sources/redhat-lsb-4.0-7.fu2012.src.rpm

rpm -Uvh redhat-lsb-4.0-7.fu2012.src.rpm

We now need to download the source and compile this

cd /op/software
wget http://www.infobright.org/downloads/ice/infobright-4.0.7-0-src-ice.tar.gz

tar -xzvf infobright-4.0.7-0-src-ice.tar.gz

cd /opt/software/infobright*

make EDITION=community release 

make EDITION=community install-release 
cp src/build/pkgmt/my-ib.cnf /etc/
cd /usr/local/infobright

When you start Infobright you make encounter this error

error while loading shared libraries: libboost_filesystem.so.1.42.0: cannot open shared object file: No such file or directory

To fix this:

find /. -name libboost_filesystem.so.1.42.0

This will give you a location, on my server

/usr/local/boost_1_42_0/lib

Make sure there is no reference to  /usr/local/boost_1_42_0/lib in your path statement echo $PATH Create a file called boost and add the path statement found above

vi /etc/ld.so.conf.d/boost.conf

/usr/local/boost_1_42_0/lib

Write the file and then

ldconfig

To make sure it has worked

ldconfig -p | grep libboost_filesystem.so

When starting a service the mysqld-ib needs to access lsb init-functions I am installing on a 64 bit Amazon (red-hat based) so

wget ftp://rpmfind.net/linux/sourceforge/f/fu/fuduntu/yum/2012/STABLE/RPMS/redhat-lsb-4.0-5.fu14.x86_64.rpm

To find your version if rpm based http://rpmfind.net/linux/rpm2html/search.php?query=redhat-lsb or search for your distributions rpm There are some prerequisites.

 yum install -y gettext mailx patch

Now we need to create mysql-ib etc.. This is done by copying some files from the source into the installation directory and then running and install script. To avoid this error when installing “error while loading shared libraries: libboost_filesystem.so.1.42.0: cannot open shared object file: No such file or directory” make sure you do the LD_LIBRARY_PATH element of the instructions When copying the files just ensure that you overwrite all of them when prompted

export PATH=$PATH:/usr/local/bin
cp -r /opt/software/infobright-4.0.7/build/community/release/vendor/support-files .
cp -r /opt/software/infobright-4.0.7/src/build/pkgmt/*.in support-files/
cp -r /opt/software/infobright-4.0.7/build/community/release/vendor/scripts/ .
cp -r /opt/software/infobright-4.0.7/src/build/pkgmt/confman.sh .
cp -r /opt/software/infobright-4.0.7/src/build/pkgmt/install-infobright-linux.sh .
install-infobright-linux.sh

Now we need to change the mysqld-ib file so that when starting libboost_filesystem.so.1.42.0 can be found.

cd /etc/init.d
vi mysqld-ib

Find the line that look like this

PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin

Copy this line and change it to this

PATH=$PATH:$basedir/bin

This will protect you path statement if you have added more entries in ./bashrc Now add the following lines after the export PATH statement

NEWLDPATH=/usr/local/boost_1_42_0/lib
LDP=$LD_LIBRARY_PATH
if [ "${LDP}" == "" ]; then
LD_LIBRARY_PATH+=$NEWLDPATH
else
if [ -d "$NEWLDPATH" ] && [[ ! $PATH =~ (^|:)$1(:|$) ]]; then
 LD_LIBRARY_PATH+=:$NEWLDPATH
fi
fi
export LD_LIBRARY_PATH

Save the file I needed the normal version of mysql also on the server, this is needed so I can insert and update the tables, which will then be exported into the infobright tables.

yum install mysql-server mysql

Because I am using the faster disk I want to change the data directory for mysql

service mysqld stop
vi /etc/my.cnf

Add the following line

datadir = /u10/mysql

Now copy the data directory to the new location

cp -R /var/lib/mysql /u10
rm -r -f /var/lib/mysql
chown -R mysql:mysql /u10/mysql
vi /etc/selinux/config

set the line SELINUX=enforcing to SELINUX=disabled

to just disable selinux so you do not have to reboot

echo 0 >/selinux/enforce
service mysqld start

To make sure that this works

service mysqld-ib start

Now we have it working we need to secure the database with passwords and removing the test database etc.. Because I have installed mysql you need to do a temporary work around, or change the scripts.

service mysqld stop

mv /usr/bin/mysql  /usr/bin/mysql_org

ln -s /usr/local/infobright/bin/mysql /usr/bin/mysql

/usr/local/infobright/bin/mysql_secure_installation

service mysqld-ib stop

rm -f /usr/bin/mysql

mv /usr/bin/mysql_org /usr/bin/mysql

This can be used if you installed the rpm and then copied in the compiled elements of the code

./postconfig.sh

Infobright post configuration ————————————– Using postconfig you can: ————————————– (1) Move existing data directory to other location, (2) Move existing cache directory to other location, (3) Configure server socket, (4) Configure server port, (5) Relocate datadir path to an existing data directory.

Please type ‘y’ for option that you want or press ctrl+c for exit.

Current configuration:

————————————– Current config file: [/etc/my-ib.cnf] Current brighthouse.ini file: [/usr/local/infobright-4.0.7-x86_64/data/brighthouse.ini] Current datadir: [/usr/local/infobright-4.0.7-x86_64/data] Current CacheFolder in brighthouse.ini file: [/usr/local/infobright/cache] Current socket: [/tmp/mysql-ib.sock] Current port: [5029] ————————————–

(1) Do you want to copy current datadir [/usr/local/infobright-4.0.7-x86_64/data] to a new location? [y/n]:y Give new datadir path (e.g. /opt/datadirnewpath/data):/u10/infobright/data (2) Option to change CacheFolder is disabled when option 1 is chosen! (3) Do you want to change current socket [/tmp/mysql-ib.sock]? [y/n]:y Give new socket::/u10/infobright/mysql-ib.sock (4) Do you want to change current port [5029]? [y/n]:n (5) Relocation is disabled when options 1-4 are chosen!

————————————– Datadir(/usr/local/infobright-4.0.7-x86_64/data) is going to be copied to /u10/infobright/data New socket is going to be :/u10/infobright/mysql-ib.sock ————————————–

Please confirm to proceed? [y/n]:y Copying /usr/local/infobright-4.0.7-x86_64/data to /u10/infobright/data …is done. You can now remove/backup your old /usr/local/infobright-4.0.7-x86_64/data … Done!

./postconfig.sh

(1) Do you want to copy current datadir [/usr/local/infobright-4.0.7-x86_64/data] to a new location? [y/n]:n

(2) Do you want to move current CacheFolder [/usr/local/infobright-4.0.7-x86_64/cache] to a new location? [y/n]:y

Give new CacheFolder path:/u10/infobright/cache

Please confirm to proceed? [y/n]:y

(1) Do you want to copy current datadir [/u10/infobright/data] to a new location? [y/n]:n

(2) Do you want to move current CacheFolder [/u10/infobright/cache] to a new location? [y/n]:n

(3) Do you want to change current socket [/tmp/mysql-ib.sock]? [y/n]:n

Please confirm to proceed? [y/n]:y

cd /usr/local/infobright/data
rm -f -r  *

To avoid the following error when starting the database

mysqld_safe mysqld from pid file /u10/infobright/data/ip-10-226-137-80.pid ended 120723 21:42:03 mysqld_safe Starting mysqld daemon with databases from /u10/infobright/data 120723 21:42:03 [Warning] options –log-slow-admin-statements, –log-queries-not-using-indexes and –log-slow-slave-statements have no effect if –log_slow_queries is not set 120723 21:42:03 [ERROR] Fatal error: Can’t change to run as user ‘mysql’ ; Please check that the user exists!

120723 21:42:03 [ERROR] Aborting 120723 21:42:03 [Note] /usr/local/infobright-4.0.7-x86_64/bin/mysqld: Shutdown complete

chown -R mysql:mysql /usr/local/infobright-4.0.7
chown -R mysql:mysql /usr/local/infobright-4.0.7-i686 
chown -R mysql:mysql /usr/local/infobright 
chown -R mysql:mysql /u10/infobright
cd /usr/local/infobright-4.0.7-x86_64

We now have a working server. Not much use if you can not connect to it 🙂 The first thing is to allow external access to the database

vi /etc/my-ib.cnf

add these two lines

skip-host-cache
skip-name-resolve

Your file should look something like this # The MySQL server [mysqld] skip-host-cache skip-name-resolve You also need to ensure that skip_networking is commented, your files should look like. #skip-networking #server-id=1 # log-bin=mysql-bin So to get on and set the security so that you can access it from an external server you set it up just like a MYSQL server.

mysql-ib -u root -p

This will get you a sql prompt. You will use the normal mysql to create and grant options.

create database userdatabase;
create user 'user'@'%' identified by 'userpassword';
grant all privileges on userdatabase.* to 'user'@'%' with grant option;
Advertisements

Securing your Linux server from SSH attacks

If you build any server that is accessible from the internet then you are in for a world of pain. All the servers I have ever tended to build have sat behind a nice corporate firewall controlled by me, and to SSH to them you needed to be in our network. What a great strategy, if you can not get to me you can not hack me :). Or the script kiddies can not have a pop and use valuable bandwidth and server resources.

So as soon as you get to Amazon AWS you need to seriously start thinking about your server security. You have of course got the AWS security groups to help you, but we no have a need to allow SSH access to some of our servers by third party people.

Therefore you need to harden the servers even more, Amazon goes some way with protecting their servers with key access only, but sometimes you need to give good old username and password access.

You therefore will start seeing entries in your /var/log/secure file something along the lines of :

Jul 1 20:48:28 ip-10-228-234-162 sshd[6901]: pam_succeed_if(sshd:auth): error retrieving information about user andreea
Jul 1 20:48:30 ip-10-228-234-162 sshd[6901]: Failed password for invalid user andreea from 27.54.120.3 port 42511 ssh2
Jul 1 19:48:30 ip-10-228-234-162 sshd[6904]: Received disconnect from 27.54.120.3: 11: Bye Bye
Jul 1 20:48:32 ip-10-228-234-162 sshd[6911]: Invalid user davida from 27.54.120.3
Jul 1 19:48:32 ip-10-228-234-162 sshd[6914]: input_userauth_request: invalid user davida
Jul 1 20:48:32 ip-10-228-234-162 sshd[6911]: pam_unix(sshd:auth): check pass; user unknown
Jul 1 20:48:32 ip-10-228-234-162 sshd[6911]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruse
r= rhost=27.54.120.3

How annoying, that you have to expend time and effort with this these idiots.

Well luckily Linux has some built in defence mechanisms against such people in the hosts.deny file.

You could manually go through or get someone to go through you secure file but someone who is far more cleaver that me, has written a utility that does this for you. http://denyhosts.sourceforge.net/

What a tool, there is a brilliant README file in the install directory, but as usual  to make it easy or your and me, here are the highlights to get it working

yum install python

cd ~
mkdir software
cd software
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz/download
tar -xvzf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install

cd /usr/share/denyhosts

cp denyhosts.cfg-dist denyhosts.cfg
cp daemon-control-dist daemon-control

vi denyhosts.cfg
chown root:root daemon-control
chmod 700 daemon-control

vi denyhosts.cfg

Change the file to match your distribution, I am using a Red Hat based distro as you would expect being in Amazon. I left everything as standard except I turned on the sync to get the host IP addresses of these annoying idiots.

The instructions for starting the daemon automatically is so straight forward, the guy who wrote this sure did understand the software but also how to document it 🙂

cd /etc/init.d

ln -s /usr/share/denyhosts/daemon-control denyhosts

If you have chkconfig installed you can then use it to
ensure that DenyHosts runs at boot time:

chkconfig –add denyhosts

service denyhosts start


FTP server configuration Amazon EC2

OK, one of those annoying problems. You want / need an FTP server. Usually this is easy. I have build dozens of them, so an FTP server on Amazon a doddle you would think.

There are a few FTP servers that I use VSFTPD and PureFTP

I started with VSFTP as this is pretty easy to use.

yum install vsftpd

service vsftpd start

Open filezilla and FTP to the server. Because it is a default install anonymous is allowed you get a connection wow it works.

Issue an ls or LIST for the pub directory and then the pain starts.

Status: Connection established, waiting for welcome message…
Response: 220 (vsFTPd 2.2.2)
Command: USER anonymous
Response: 331 Please specify the password.
Command: PASS **************
Response: 230 Login successful.
Command: OPTS UTF8 ON
Response: 200 Always in UTF8 mode.
Status: Connected
Status: Retrieving directory listing…
Command: PWD
Response: 257 “/”
Status: Directory listing successful
Status: Retrieving directory listing…
Command: CWD /pub
Response: 250 Directory successfully changed.
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (10,235,43,17,199,120).
Status: Server sent passive reply with unroutable address. Using server address instead.
Command: LIST
Error: Connection timed out
Error: Failed to retrieve directory listing

Arrghh, now I know that FTP ls needs port 20 open as well as 21. I added the port to the security group, but still the same.

After looking in the VSFTPD documentation it does give you a hint that PASV mode which is needed for the ls command opens up a random port. So here is what you have to do. Either scrap you server if you have limited security groups and recreate or change one of the security groups for the server and ad a range of TCP ports. I always create my server with a SERVERNAME_MISC port group for these exact requirements.

Add a range of ports to the security group

e.g. 12000 – 120100

Also make sure that you have 20 & 21 in either this group or one of the other groups.

That is the Amazon bit done. (sorry I am not going into how to do this again there is an expectation that you have knowledge of Amazon AWS)

Back to the server now.

vi /etc/vsftpd/vsftpd.conf

Go to the bottom of the file and insert the following lines

pasv_enable=YES
port_enable=YES
pasv_address=x.x.x.x
pasv_min_port=12000
pasv_max_port=12100

Where the address is the external address of the server. Do not be tempted to use the DNS address which is possible with VSFTPD configuration this will not work. Save the file

service vsftpd restart

And you will have a working server. Now here comes the fun part, unless you allocate this an elastic IP address then if you shut this server down you will get a new IP address.  ARRRGGHHHH

OK with a little bit of bash then this is not that hard to do.

First copy the vsftpd.conf file, to a different location. I have kept this in the /etc/vsftpd directory

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_org.conf

You must remember to change the vsftpd_org.conf file if you change any of the settings.

Now find the we need to edit the vsftpd file in the init.d directory

vi /etc/init.d/vsftpd

Find the line that starts

start() {
# Start daemons.

and insert the following lines
ipaddress=`curl http://169.254.169.254/latest/meta-data/public-ipv4`

rm -f /etc/vsftpd/vsftpd.conf
cp /etc/vsftpd/vsftpd_org.conf /etc/vsftpd/vsftpd.conf

echo ‘pasv_enable=YES’ >> /etc/vsftpd/vsftpd.conf
echo ‘port_enable=YES’ >> /etc/vsftpd/vsftptd.conf
echo ‘pasv_address=$ipaddress’ >> /etc/vsftpd/vsftpd.conf
echo ‘pasv_min_port=12000’ >> /etc/vsftpd/vsftpd.conf
echo ‘pasv_max_port=12200’ >> /etc/vsftpd/vsftpd.conf

This will set the .conf file when the service is started.

 

More to come for the PureFTP configuration also, same idea that you need to specify ports for the PASV connection.

Alistair


Allowing SSH password access Amazon EC2

If you use the standard Amazon Linux AMI images and why would you not!!!! there is a work around needed if you want to give third part access via ssh to the server, using username and password authentication.

 

PLEASE BE CAREFUL WITH THIS AS IF YOU DO THIS WRONG YOU WILL LOCKED OUT OF YOUR SERVER

It is also not the recommendation of Amazon to do this, but sometime you have to, such is life. Just make sure that you choose a kick ass hard password and it mitigates the security concerns a little bit.

 

Make sure that you always have a couple of active ssh sessions open before you start this, once there is a session open if this do not work it is easy to undo them.

 

Create a user with a very strong password to start with. I am not going into how to do this, as if your messing around with ssh configuration I am presuming creating a user is child’s play to you.

cd /etc/ssh

vi sshd_config

Find the following lines

 

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
# EC2 uses keys for remote access
PasswordAuthentication no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

 

Change the lines to read

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no
# EC2 uses keys for remote access
#PasswordAuthentication no

# Change to no to disable s/key passwords
ChallengeResponseAuthentication yes
#ChallengeResponseAuthentication no

 

service shd restart

Ensure that you can still make a connection using the key method as you have been doing.

Then try a connection using the username and password.

You should have a successful connection, if at any time there is a failure change the file back to the original restart the sshd service and ensure that you can still connect.

I am afraid that I can not help you if this does not work as it has always worked for me.

 

The last thing that you may need to do is make the new user access the sudo functions.

visudo

At the bottom of the file is

 

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
ec2-user ALL = NOPASSWD: ALL

new-user ALL = NOPASSWD: ALL

Add the user that you want to give access, in my case I wanted them to have ALL access, there are other restrictions I am sure. This is an area that I have never had to read up on, one day I am sure that I will need to 🙂

 

Anyway that’s all for this one, good luck and becareful

 

 

 

 


Backup SugarCRM to Amazon S3

Our Sugar environment is in Amazon so why not back the thing up in Amazon. We also have decided to sync the cache/uploads folder so that we can scale sideways, that’s the next thing to do 🙂

You will need s3cmd installed to use this, handily s3cmd installation instructions

As per usual this will change as little errors get taken care of so please note that this is the 1st effort at the script so be a bit careful

#!/bin/bash
 #
 # Backup Script
 #
#Constants
 #PATH=/usr/local/bin:/usr/bin:/bin:
 #DATE=`date +%Y-%m-%d_%Hh%Mm`
 DATE=`date +%Y-%m-%d`
 S3LOGDIR="S3backup"
 LOGDIR="/var/log"
# Directory for logs
 # Use the standard log file directories
 # Create required directories
 if [ -d "$LOGDIR/$S3LOGDIR" ]; # Check log Directory exists.
 then
 echo "directory exists"
 else
 echo "the directory does not exist"
 mkdir -p "$LOGDIR/$S3LOGDIR"
 fi;
 #Clean up the error file before the script starts
 rm -f $LOGDIR/$S3LOGDIR/s3errfile
#----------------------------------------------------------------------
 # Change the directories below
# Directory to backup
 BACKUPSRCDIR="/var/www/html/crm"
#Main S3 bucket
 S3Bucket="s3://xxxxxxxxx-backup"
 S3LiveBucket="CRM_Live"
#Directories that will be synced using s3
 S3SyncBucket="CRM_Live_Uploads"
 LocalSyncDir="$BACKUPSRCDIR/cache/upload"
 #File Names
 BACKUPFILE="CRM-"$DATE".tar"
 #End the variables that need entering
 #----------------------------------------------------------------------
#Backup the main directories, leave the cache upload directory
 #echo $BACKUPFILE
#Check that the S3 connection is available
 s3cmd ls $S3Bucket/ 2>&1>$LOGDIR/$S3LOGDIR/s3errfile
 if [[ -s $LOGDIR/$S3LOGDIR/s3errfile ]] ; then
 echo "connection OK"
 else
 echo "S3 bucket connection failed"
 exit 1
 fi ;
#tar the dirctory excluding the cache/upload folder as this will be
#use the s3cmd rsync command as this is where the uploaded document
#are stored
tar -cvf $BACKUPFILE --exclude "cache/uploads*" --exclude "cache/uploads/*" $BACKUPSRCDIR
#Put the tar file into S3 for safe keeping
s3cmd put $BACKUPFILE $S3Bucket/$S3LiveBucket/
#Clear the backup file
rm -f $BACKUPFILE
#Sync the big folders to S3
s3cmd sync $LocalSyncDir $S3Bucket/$S3SyncBucket/

Installing Sugar CRM community Amazon EC2

This is pretty simple and I will have to be doing it quite a lot in the next coming months, so this is more an aide de memoire

The community edition URL

It is presumed that you already have a server with Apache and PHP installed. If not you need to yum apache and php.

yum install httpd php php-mysql mysql

At the time of writing we were looking at the RC2 release (brave I know 🙂 )

cd ~

mkdir software

cd software

wget http://downloads.sourceforge.net/project/sugarcrm/1%20-%20SugarCRM%206.5.0/SugarCommunityEdition-6.5.0/SugarCE-6.5.0RC2.zip

unzip SugarCE-6.5.0RC2.zip

mv SugarCE-Full-6.5.0RC2 /var/www/html/sugar65ce

I create this link so the URL can stay the same irrespective of the version

ln -s /var/www/html/sugar65ce/ crmcom

chown -R apache:apache sugar65ce/

cd sugar65ce

chmod 766 config.php

chmod 766 custom/

Web browse to the domian

http://domain-name.com/crmcom/install.php

Take all the default options, because of the chmod above you should get no errors 🙂

Provide all the database details when prompted ( I personally have called the database sugarcrm_com and we are also a professional user of CRM)

*    *    *    *    *     cd /var/www/html/sugar65ce; php -f cron.php > /dev/null 2>&1


Blackberry BES Admin password does not work

WOW

The Balckberry BES server certainly has some issues. The password for the Admin user failed to work. I know I got it correct as I use a choice of  very secure password for my installs.

After much searching I discovered the prescribed way to get this back working is to re-install.

Well that was not going to happen. So I ran up another BES server and then just stole the password from the database that was encoded.

Please note that I am using the “BlackBerry Administration Service” for the authentication rules as per the installation of the BES server

If you are using the AD authentication there is a knowledge base here that will help you I think. I have not used it to reset the password, but I did use it successfully to generate a password. Blackberry KB18161

 

Back to you error though, this will work on BES 5.0 SP3 and Microsoft SQL 2005. I don’t think the SQL server has an effect but just so you know the versions.

 

Open up an SQL connection the BES SQL server, I use studio manager but as long as you have the SQL connection who cares.

This will update a user called Admin and set the password to blackberry

UPDATE BASUsers
SET LoginPassword = ‘D8BBFD88EB76EF129C4AA7C812AEB7664D2BE09B6D51D8555E0FC9F54515F88FC2F3BD209887BE064B0F2C11F7C9E6E86BA733667BA3BE4A459968FDB6DF8526:489F5C4B’
WHERE (LoginName = ‘Admin’)

 

This worked for me, there are other posts on forums but unfortunately the encrypted password does not work. RIM probably changed the encryption between releases.

Good luck and it does work

 

Alistair