ActiveMQ cookbook触发activemq服务,但服务未启动

时间:2015-02-11 07:10:40

标签: activemq chef cookbook

Activemq服务是通过cookbook触发的,但它没有运行:

的ActiveMQ /属性/ default.rb

    default['activemq']['version'] = '5.11.0'
    src_filename="apache-activemq-#{node['activemq']['version']}-bin.tar.gz"
    src_filepath = "#{Chef::Config['file_cache_path']}/#{src_filename}"
    default['activemq']['src_filepath'] = "#{src_filepath}"
    default['activemq']['tar_filepath'] = "http://xxx-xx-xx-xxx-xx:8091/3rdparty/activemq/#{src_filename}"

    default['activemq']['dir'] = "/usr/local/apache-activemq-#{node['activemq']['version']}"

    default['activemq']['wrapper']['max_memory'] = '1024'
    default['activemq']['wrapper']['useDedicatedTaskRunner'] = 'true'

    default['activemq']['zooKeeper']['address']="xxx.xx.xx.xx:2181"
    default['activemq']['zooKeeper']['hostname']="xxx.xx.xx.xx"

的ActiveMQ /食谱/ default.rb

include_recipe "lgjava"

activemq_home= node['activemq']['dir']


remote_file "#{node['activemq']['src_filepath']}" do
  mode 0755
  source node['activemq']['tar_filepath']
  action :create
  notifies :create, "directory[apache-activemq-#{node['activemq']['version']}]", :immediately
  notifies :run, "execute[untar-activemq]", :immediately
end


directory "apache-activemq-#{node['activemq']['version']}" do
  path "#{activemq_home}"
  mode 0755
  recursive true
end


execute "untar-activemq" do
  cwd Chef::Config[:file_cache_path]
  command <<-EOF
    tar xvzf apache-activemq-#{node['activemq']['version']}-bin.tar.gz -C #{node['activemq']['dir'] } --strip 1
  EOF
  action :run
end



file "#{activemq_home}/bin/activemq" do
  owner 'root'
  group 'root'
  mode  '0755'
end


arch = node['kernel']['machine'] == 'x86_64' ? 'x86-64' : 'x86-32'

link '/etc/init.d/activemq' do
  to "#{activemq_home}/bin/linux-#{arch}/activemq"
end

template "jetty-realm.properties" do
  source "jetty-realm.properties.erb"
  mode "0755"
  path "#{activemq_home}/conf/jetty-realm.properties"
  action :create
  notifies :restart, 'service[activemq]'
end


template "activemq.xml" do
  source "activemq.xml.erb"
  mode "0755"
  path "#{activemq_home}/conf/activemq.xml"
  action :create
  notifies :restart, 'service[activemq]'
end

service 'activemq' do
  supports :restart => true, :status => true
  action   [:enable, :start]
end


# symlink so the default wrapper.conf can find the native wrapper library
link "#{activemq_home}/bin/linux" do
  to "#{activemq_home}/bin/linux-#{arch}"
end

# symlink the wrapper's pidfile location into /var/run
link '/var/run/activemq.pid' do
  to "#{activemq_home}/bin/linux/ActiveMQ.pid"
  not_if 'test -f /var/run/activemq.pid'
end

template "#{activemq_home}/bin/linux/wrapper.conf" do
  source   'wrapper.conf.erb'
  mode     '0644'
  notifies :restart, 'service[activemq]'
end

的ActiveMQ /模板/默认/ activemq.xml.erb

<!-- START SNIPPET: example -->
<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <!-- Allows us to use system properties as variables in this configuration file -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.conf}/credentials.properties</value>
        </property>
    </bean>

   <!-- Allows accessing the server log -->
    <bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
          lazy-init="false" scope="singleton"
          init-method="start" destroy-method="stop">
    </bean>

    <!--
        The <broker> element is used to configure the ActiveMQ broker.
    -->
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" >
                    <!-- The constantPendingMessageLimitStrategy is used to prevent
                         slow topic consumers to block producers and affect other consumers
                         by limiting the number of messages that are retained
                         For more information, see:

                         http://activemq.apache.org/slow-consumer-handling.html

                    -->
                  <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="1000"/>
                  </pendingMessageLimitStrategy>
                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy>


        <!--
            The managementContext is used to configure how ActiveMQ is exposed in
            JMX. By default, ActiveMQ uses the MBean server that is started by
            the JVM. For more information, see:

            http://activemq.apache.org/jmx.html
        -->
        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        <!--
            Configure message persistence for the broker. The default persistence
            mechanism is the KahaDB store (identified by the kahaDB tag).
            For more information, see:

            http://activemq.apache.org/persistence.html
        -->
        <!--
        <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>  -->
        <persistenceAdapter>
           <replicatedLevelDB directory="activemq-data"
            replicas="2"
            bind="tcp://0.0.0.0:0"
            zkAddress=<%=node['activemq']['zooKeeper']['address']%>
            zkPath="/activemq/leveldb-stores"
            hostname=<%=node['activemq']['zooKeeper']['hostname']%> />


        </persistenceAdapter>
          <!--
            The systemUsage controls the maximum amount of space the broker will
            use before disabling caching and/or slowing down producers. For more information, see:
            http://activemq.apache.org/producer-flow-control.html
          -->
          <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage percentOfJvmHeap="70" />
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

        <!--
            The transport connectors expose ActiveMQ over a given protocol to
            clients and other brokers. For more information, see:

            http://activemq.apache.org/configuring-transports.html
        -->
        <transportConnectors>
            <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        </transportConnectors>

        <!-- destroy the spring context on shutdown to stop jetty -->
        <shutdownHooks>
            <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
        </shutdownHooks>

    </broker>

    <!--
        Enable web consoles, REST and Ajax APIs and demos
        The web consoles requires by default login, you can disable this in the jetty.xml file

        Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
    -->
    <import resource="jetty.xml"/>

</beans>

的ActiveMQ /模板/默认/ wrapper.conf.erb

#********************************************************************
# Wrapper Properties
#********************************************************************

#wrapper.debug=TRUE
set.default.ACTIVEMQ_HOME=../..
set.default.ACTIVEMQ_BASE=../..
set.default.ACTIVEMQ_CONF=%ACTIVEMQ_BASE%/conf
set.default.ACTIVEMQ_DATA=%ACTIVEMQ_BASE%/data
wrapper.working.dir=.

# Java Application
wrapper.java.command=java

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=%ACTIVEMQ_HOME%/bin/wrapper.jar
wrapper.java.classpath.2=%ACTIVEMQ_HOME%/bin/activemq.jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=%ACTIVEMQ_HOME%/bin/linux-x86-64/

# Java Additional Parameters
# note that n is the parameter number starting from 1.
wrapper.java.additional.1=-Dactivemq.home=%ACTIVEMQ_HOME%
wrapper.java.additional.2=-Dactivemq.base=%ACTIVEMQ_BASE%
wrapper.java.additional.3=-Djavax.net.ssl.keyStorePassword=password
wrapper.java.additional.4=-Djavax.net.ssl.trustStorePassword=password
wrapper.java.additional.5=-Djavax.net.ssl.keyStore=%ACTIVEMQ_CONF%/broker.ks
wrapper.java.additional.6=-Djavax.net.ssl.trustStore=%ACTIVEMQ_CONF%/broker.ts
wrapper.java.additional.7=-Dcom.sun.management.jmxremote
wrapper.java.additional.8=-Dorg.apache.activemq.UseDedicatedTaskRunner=<%= node['activemq']['wrapper']['useDedicatedTaskRunner'] %>
wrapper.java.additional.9=-Djava.util.logging.config.file=logging.properties
wrapper.java.additional.10=-Dactivemq.conf=%ACTIVEMQ_CONF%
wrapper.java.additional.11=-Dactivemq.data=%ACTIVEMQ_DATA%
wrapper.java.additional.12=-Djava.security.auth.login.config=%ACTIVEMQ_CONF%/login.config

# Uncomment to enable jmx
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.port=1616
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.authenticate=false
#wrapper.java.additional.n=-Dcom.sun.management.jmxremote.ssl=false

# Uncomment to enable YourKit profiling
#wrapper.java.additional.n=-Xrunyjpagent

# Uncomment to enable remote debugging
#wrapper.java.additional.n=-Xdebug -Xnoagent -Djava.compiler=NONE
#wrapper.java.additional.n=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=<%= node['activemq']['wrapper']['max_memory'] %>

# Application parameters.  Add parameters as needed starting from 1
wrapper.app.parameter.1=org.apache.activemq.console.Main
wrapper.app.parameter.2=start

#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Format of output for the console.  (See docs for formats)
wrapper.console.format=PM

# Log Level for console output.  (See docs for log levels)
wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.
wrapper.logfile=%ACTIVEMQ_DATA%/wrapper.log

# Format of output for the log file.  (See docs for formats)
wrapper.logfile.format=LPTM

# Log Level for log file output.  (See docs for log levels)
wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before
#  the log is rolled. Size is specified in bytes.  The default value
#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
wrapper.logfile.maxsize=0

# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
wrapper.logfile.maxfiles=0

# Log Level for sys/event log output.  (See docs for log levels)
wrapper.syslog.loglevel=NONE

#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=ActiveMQ

#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
#  using this configuration file has been installed as a service.
#  Please uninstall the service before modifying this section.  The
#  service can then be reinstalled.

# Name of the service
wrapper.ntservice.name=ActiveMQ

# Display name of the service
wrapper.ntservice.displayname=ActiveMQ

# Description of the service
wrapper.ntservice.description=ActiveMQ Broker

# Service dependencies.  Add dependencies as needed starting from 1
wrapper.ntservice.dependency.1=

# Mode in which the service is installed.  AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.
wrapper.ntservice.interactive=false

执行chef-client我得到以下内容:

Recipe: activemq::default
  * remote_file[/var/chef/cache/apache-activemq-5.11.0-bin.tar.gz] action create (up to date)
  * directory[apache-activemq-5.11.0] action create (up to date)
  * execute[untar-activemq] action run
    - execute     tar xvzf apache-activemq-5.11.0-bin.tar.gz -C /usr/local/apache-activemq-5.11.0 --strip 1

  * file[/usr/local/apache-activemq-5.11.0/bin/activemq] action create (up to date)
  * link[/etc/init.d/activemq] action create (up to date)
  * template[jetty-realm.properties] action create
    - update content in file /usr/local/apache-activemq-5.11.0/conf/jetty-realm.properties from 827a97 to 96c9a9
    --- /usr/local/apache-activemq-5.11.0/conf/jetty-realm.properties   2015-01-30 13:13:51.000000000 +0000
    +++ /tmp/chef-rendered-template20150211-9315-ul0l7k 2015-02-11 07:03:37.711054777 +0000
    @@ -5,9 +5,9 @@
     ## The ASF licenses this file to You under the Apache License, Version 2.0
     ## (the "License"); you may not use this file except in compliance with
     ## the License.  You may obtain a copy of the License at
    -## 
    +##
     ## 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.
    @@ -17,6 +17,6 @@

     # Defines users that can access the web (console, demo, etc.)
     # username: ***** 
    -admin: *****, *****
    -user: ****, *****
    +admin: *****, ****
    +user: *****, ****
    - change mode from '0644' to '0755'
    - restore selinux security context
  * template[activemq.xml] action create
    - update content in file /usr/local/apache-activemq-5.11.0/conf/activemq.xml from ca8528 to 219698
    --- /usr/local/apache-activemq-5.11.0/conf/activemq.xml 2015-01-30 13:13:51.000000000 +0000
    +++ /tmp/chef-rendered-template20150211-9315-8syvv7 2015-02-11 07:03:37.736055052 +0000
    @@ -78,11 +78,20 @@

                 http://activemq.apache.org/persistence.html
             -->
    +        <!--
             <persistenceAdapter>
                 <kahaDB directory="${activemq.data}/kahadb"/>
    -        </persistenceAdapter>
    +        </persistenceAdapter>  -->
    +        <persistenceAdapter>
    +           <replicatedLevelDB directory="activemq-data"
    +            replicas="2"
    +            bind="tcp://x.x.x.x:x"
    +            zkAddress=xxxxxxx
    +            zkPath=xxxxxx
    +            hostname=xxxxxx />


    +        </persistenceAdapter>
               <!--
                 The systemUsage controls the maximum amount of space the broker will
                 use before disabling caching and/or slowing down producers. For more information, see:
    @@ -133,5 +142,4 @@
         <import resource="jetty.xml"/>

     </beans>
    -<!-- END SNIPPET: example -->
    - change mode from '0644' to '0755'
    - restore selinux security context
  * service[activemq] action enable (up to date)
  * service[activemq] action start (up to date)
  * link[/usr/local/apache-activemq-5.11.0/bin/linux] action create (up to date)
  * link[/var/run/activemq.pid] action create (up to date)
  * template[/usr/local/apache-activemq-5.11.0/bin/linux/wrapper.conf] action create (up to date)
Recipe: lgtomcat::default
  * service[tomcat7] action restart
    - restart service service[tomcat7]
Recipe: activemq::default
  * service[activemq] action restart
    - restart service service[activemq]

但是在检查activemq进程时,没有启动:

ps -eaf| grep activemq
root      9867  9301  0 07:07 pts/1    00:00:00 grep --color=auto activemq

0 个答案:

没有答案