Trying to start/stop tomcat from my own cookbook


#1

If you run the provision with debug, you will be able to see exactly
what shell command chef is running when it runs the execute block. You
can then log in as root and run that command and see what happens, which
may bring you closer to solving your current problem.

Chandan Maheshwari wrote:

Also, if it’s in .bashrc and startup.sh is using /bin/sh, then they
likely won’t get loaded-- you might need to move it to something like
.profile (I forget exactly what startup file(s) sh loads but I believe
.bashrc / .bash_profile isn’t included).
Oh then should I create .profile file (at this location
"~/") and export these variables in this file. But I checked
tomcat-startup.sh file and it do not include any of the above
discussed files(.bashrc, bash_profile or .profile)

Just for reference here is the tomcat/startup.sh:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.


Start Script for the CATALINA Server

Id: startup.sh 1202062 2011-11-15 06:50:02Z mturk


Better OS/400 detection: see Bugzilla 31132

os400=false
case “uname” in
OS400*) os400=true;;
esac

resolve links - $0 may be a softlink

PRG="$0"

while [ -h “$PRG” ] ; do
ls=ls -ld "$PRG"
link=expr "$ls" : '.*-> \(.*\)$'
if expr “$link” : ‘/.*’ > /dev/null; then
PRG="$link"
else
PRG=dirname "$PRG"/"$link"
fi
done

PRGDIR=dirname "$PRG"
EXECUTABLE=catalina.sh

Check that target executable exists

if $os400; then

-x will Only work on the os400 if the files are:

1. owned by the user

2. owned by the PRIMARY group of the user

this will not work if the user belongs in secondary groups

eval
else
if [ ! -x “$PRGDIR”/"$EXECUTABLE" ]; then
echo "Cannot find $PRGDIR/$EXECUTABLE"
echo "The file is absent or does not have execute permission"
echo "This file is needed to run this program"
exit 1
fi
fi

exec “$PRGDIR”/"EXECUTABLE" start "@"

On Sun, May 12, 2013 at 6:29 PM, Morgan Blackthorne
<stormerider@gmail.com mailto:stormerider@gmail.com> wrote:

I would log in as the user and check to make sure that those
values are set. Also, if it's in .bashrc and startup.sh is using
/bin/sh, then they likely won't get loaded-- you might need to
move it to something like .profile (I forget exactly what startup
file(s) sh loads but I believe .bashrc / .bash_profile isn't
included).

--
~*~ StormeRider ~*~

"Every world needs its heroes [...] They inspire us to be better
than we are. And they protect from the darkness that's just around
the corner."

(from Smallville Season 6x1: "Zod")

On why I hate the phrase "that's so lame"... http://bit.ly/Ps3uSS


On Sun, May 12, 2013 at 4:43 AM, Chandan Maheshwari
<cmaheshwari16@gmail.com <mailto:cmaheshwari16@gmail.com>> wrote:

    Thanks Morgan,

    I am afraid, but it doesn't give any error. The chef-client
    runs successfully and creates node and client onto my
    chef-server. Any other location where I can check logs after
    logging into the newly created instance.

    Also there are no logs for tomcat also.

    I did some troubleshooting initially to redirect output of
    command ..../tomcat/bin/startup.sh in a .txt file and saw that
    it says:
    "Neither JAVA_HOME nor JRE_HOME is set, need at least one to
    set" But now I am setting those in ~/.bashrc file also.

    Can you guide me what other trouble shooting I can do.


    On Sun, May 12, 2013 at 5:00 PM, Morgan Blackthorne
    <stormerider@gmail.com <mailto:stormerider@gmail.com>> wrote:

        Specifying what error it runs I to will probably help
        folks help you. It's standard troubleshooting question
        number one: what happens when you try?


        On Sunday, May 12, 2013, Chandan Maheshwari wrote:

            To be more specific, here is what all I have tried:

            I have my cookbook: where in my recipe, I am
            downloading tomcat.tar (this I have placed somewhere
            in my other machine). After downloading I extract the
            same tomcat.tar (suppose in location
            /home/ubuntu/tomcat). Now I am simply trying to start
            tomcat. I tried the below mentioned ways, but is not
            able to start/stop.

            1) Modified the ~/.bashrc file from my recipe to
            export JAVA_HOME, CATALINA_HOME,
            What I did is:

            In a recipe inside bash script simply added the
            environment variables at the end of ~/.bashrc and then
            ran source ~/.bashrc [ this works I can verify from
            ~/.bashrc file)

            Now using "execute" resource, ran
            "/home/ubuntu/tomcat/bin/startup.sh" *BUT IT DO NOT
            START.*

            2) Modified the ~/.bashrc file from my recipe to
            export JAVA_HOME, CATALINA_HOME,
            What I did is:

            ran a bash script inside recipe to simply add the
            environment variables at the end of ~/.bashrc and then
            ran source ~/.bashrc

            Inside bash script resource, ran
            "/home/ubuntu/tomcat/bin/startup.sh" *BUT IT DO NOT
            START.*

            3) Wrote a shell script and kept at the same location
            from where I am downloading tomcat.tar, downloaded the
            run_tomcat.sh on to the chef-client (using resource
            remote_file) and then using the "execute" resource
            running the run_tomcat.sh.
            Inside this run_tomcat.sh, I am exporting the
            environment variables and then running the
            "/home/ubuntu/tomcat/bin/startup.sh"
            *BUT IT DO NOT START.*

            4) Wrote a shell script and kept at the same location
            from where I am downloading tomcat.tar, downloaded the
            run_tomcat.sh on to the chef-client (using resource
            remote_file). Set environment variables using
            "environment resource" and run script using "execute"
            resource.
            Inside this run_tomcat.sh, running the
            "/home/ubuntu/tomcat/bin/startup.sh"
            *BUT IT DO NOT START.

            *
            For point 3 and 4 above the strange thing is that
            other commands inside run_tomcat.sh, like extracting
            war, deleting some directory from the extracted war
            executes. *BUT TOMCAT DOESN'T START UP.*

            I tried couple of other things also, but is not able
            to start or stop the tomcat.

            On Fri, May 10, 2013 at 11:00 PM, Chandan Maheshwari
            <cmaheshwari16@gmail.com> wrote:


                Hi All,

                This may be a stupid or a silly question. But I am
                finding issues in getting it done.

                Basically I have wrote a cookbook, where I am
                simply downloading a tar file of tomcat with other
                stuff related to my app from some location.

                Then I am using some resources to untar it to
                define a specific folder structure onto my new
                instance created using knife ec2 plugin. (to be
                specific ubuntu)

                Now I have one shell script which basically stops
                the tomcat, extracts my application war in
                particular location, removes some unwanted files
                from the extracted war and then starts the tomcat
                back.

                I am executing this script using "execute" and in
                command passing the full path of the script. The
                script does everything (extracts my application
                war in particular location, removes some unwanted
                files from the extracted war), but it do not stops
                the tomcat and then starts it back.

                The chef-client runs successfully.

                Now when I login to the newly created instance, I
                can't see any tomcat logs. Moreover when I run the
                shell script manually (which I ran with cookbook
                also), it does everything and I can hit the URL to
                access my app.

                Any help is greatly appreciated.

                I don't want to use the existing tomcat cookbook,
                as I want to try it from my location(where I have
                kept the tomcat.tar) also I want to use tomcat7.

                -- 
                Thanks and Regards,
                Chandan




            -- 
            Regards,
            Chandan



        -- 
        --
        ~*~ StormeRider ~*~

        "Every world needs its heroes [...] They inspire us to be
        better than we are. And they protect from the darkness
        that's just around the corner."

        (from Smallville Season 6x1: "Zod")

        On why I hate the phrase "that's so lame"...
        http://bit.ly/Ps3uSS




    -- 
    Regards,
    Chandan


Chandan Maheshwari,
Cloud Softwate Engineer, Clogeny Technologies,
http://clogeny.com http://clogeny.com/
(M) 0091-8956541752
Skype: chandan.maheshwari16