Archive for July, 2009

Creating a server on Amazon EC2 (Tomcat+Apache)

July 23rd, 2009

Steps on creating Amazon EC2

1.Create an Amazon EC2 account then create the keys and certificates then download them and save to your local machine.

2. set the paths as follows:

export JAVA_HOME=/home/anoop/java

export PATH=$PATH:$JAVA_HOME/bin
export EC2_HOME=/home/anoop/ec2
export PATH=$PATH:$EC2_HOME/bin
export EC2_CERT=cert-xxxxxxx.pem
export EC2_PRIVATE_KEY=pk-xxxxxx.pem

*You should have Java and ec2 tool installed.

3.

ec2-add-keypair my-keypair

4.

vi id_my-keypair

then copy the result of previous command and save it using wq command

5.

chmod 600 id_my-keypair

6.

ec2-run-instances ami-xxxx -k my-keypair

Note:ami-xxxx should be replaced with an AMI’s number, search for AMI on Amzon resources site and choose an AMI that best suits your need.
7. Describe the image to get the instance number using

ec2-describe-instances

8. Now if you need a static IP you can get the IP from Amazon using:
<!– @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } –>

ec2-allocate-address

ADDRESS xxx.xxx.xxx.xxx
9. The above command allocates a new IP that can be assignned to your instance using:

ec2-associate-address -i i-xxxx xxx.xxx.xxx.xxx

Now the ’server creation’ is complete, now log in to the server using

ssh -i id_my-keypair root@the_ip_address_you_got_from_amazon_and_assigned_to_your_instance

Then change the root password and you may change the settings on sshd_config so that you can use password authentication than key. Also its recommended to disable root login through ssh.

Now download the Java for Linux and install it by running the install script:

<!– @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } –>

./j2sdk-1_4_2_16-linux-i586.bin

ln -s j2sdk1.4.2_16/ java

vi ~/.bash_profile

Then add:

<!– @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } –>

export JAVA_HOME=/mnt/installs/java

PATH=$JAVA_HOME/bin:$PATH$HOME/bin:/sbin:/usr/sbin:/usr/local/pgsql/bin/:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin:/root/bin:/root/bin

export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

————————–
======
Install Tomcat
======
tar xvfz jakarta-tomcat-4.1.30.tar.gz
ln -s jakarta-tomcat-4.1.30 tomcat

edit ~/.bash_profile

export JAVA_HOME=/opt/installs/java
export CATALINA_HOME=/opt/installs/tomcat
export TOMCAT_HOME=/opt/installs/tomcat
export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:/sbin:/usr/sbin:/usr/local/pgsql/bin/:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin:/root/bin:/root/bin

export PATH
unset USERNAME

—————————

yum install openssl*
yum install readline-devel*
yum install compat-readline*

tar zxvf openssl-0.9.7d.tar.gz
cd openssl-0.9.7d
./config
make
make test
ouput should be ‘OPENSSLDIR: “/usr/local/ssl” ‘
make install
——————————

======
Apache
======
tar xvfz httpd-2.0.55.tar.gz
cd httpd-2.0.55
./buildconf
./configure –prefix=/opt/installs/apache2 –enable-so –enable-rewrite –enable-ssl –with-ssl=/usr/local/ssl –enable-proxy
make
make install
——————————-

=======
Mod_Jk
=======
tar xvfz jakarta-tomcat-connectors-jk-1.2-src-current.tar.gz

mkdir /opt/installs/tools
mv jakarta-tomcat-connectors-jk-1.2.5-src /mnt/installs/tools

cd /opt/installs/tools/jakarta-tomcat-connectors-jk-1.2.5-src/jk/native
./buildconf.sh
./configure –with-apxs=/opt/installs/apache2/bin/apxs
make
cp apache-2.0/mod_jk.so /opt/installs/apache2/modules

———————————

mkdir /opt/pgdata

chown postgres:postgres pgdata/
mkdir /opt/pginstalls
chown postgres:postgres pginstalls
mkdir /mnt/postgreslogs
mkdir pg_scripts_logs
cp postgresql-7.4.8.tar.gz /opt/pginstalls/

su postgres
cd pginstalls/
tar zxvf postgresql-7.4.8.tar.gz
cd po*
./configure
gmake
(as root execute the following line)
gmake install

vi ~/.bash_profile and edit PATH as follows

:$PATH:/usr/local/pgsql/bin

cd /opt/pgdata
mkdir data
cd /opt/postgreslogs
touch server.log postgres.log
chmod 777 *
initdb -D /opt/pgdata/data/

Create pgstart and shutdown scripts

——————————-
pgstart
———-
echo ” Starting Postgres 7.4.8…….”

nohup /usr/local/pgsql/bin/postmaster -i -c fsync=on -c sort_mem=8192 -c shared_buffers=200 -D /mnt/pgdata/data -N 100 </dev/null >>/opt/postgreslogs/server.log 2>>/opt/postgreslogs/postgres.log &

echo ” Started”
echo ” Type psql <database> to switch to your database”
———
pgshutdown

chmod +x pgstart pgshutdown
—–
/usr/local/pgsql/bin/pg_ctl stop -W -D /opt/pgdata/data -m fast

start the database serevr using
/opt/scripts/pgstart

and verify with
psql -l
or
netstat -nlp | grep 5432

Retweet this post

Cruise Control for Ant Build

July 7th, 2009

Ref. url:
http://cruisecontrol.sourceforge.net/gettingstartedsourcedist.html#Before_you_Start
Download:
http://cruisecontrol.sourceforge.net/download.html

Should Have Java and Ant installed.

1. Copy the downloaded cruisecontrol-2.8.2.zip file & unzip to your installation folder.

2. change directory to cc_unzipped folder/main

3. enter the command ant -Dtest.skip=true
*I disabled Junit test after the compilation since it doesn’t work for me

After building, to confirm that the installation is consistent, start a command shell and run the following command (make sure you replace INSTALL_DIR with the actual installation directory):

java -jar INSTALL_DIR/main/dist/cruisecontrol-launcher.jar
**DON'T worry this should show an error saying config.xml is not found!

4. Create a directory “work” under the cruise-control root folder(ie, the unzipped folder)

5. change directory to the newly created ‘work’ directory and create three new folders named as: artifacts, logs, projects. Then copy our project folder to work/project

6. Create a new build.xml (vi/touch work/build.xml)
* I tried to paste my build.xml but it is truncated. So please mail me if you need one @ anpl1980@gmail.com

please read this : http://brennan.offwhite.net/blog/2004/04/29/lessons-for-ant-and-cruise-control/

7. Create work/config.xml
Eg:
* I tried to paste my build.xml but it is truncated. So please mail me if you need one @ anpl1980@gmail.com

–>