如何使用Puppet自动安装hyperic?

时间:2015-05-18 22:39:53

标签: puppet hyperic

我试图使用puppet自动安装Hyperic。

但是,我想要将值硬编码到.sh文件中,而不是提示用户输入...

我无法弄清楚应该编辑哪个文件?

1 个答案:

答案 0 :(得分:1)

所以,我已经在某个时候自动安装了Hyperic with Puppet,我将来会看看我是否可以开源该模块。

但它的要点是,你需要在agent.properties文件中配置所有内容,然后在第一次运行/opt/hyperic/hyperic-hqee-agent/bin/hq-agent.sh start命令时读取它。

这样的事情:

  $server_ip         = 'hypericserver.example.com'
  $server_port       = '7080'
  $ssl_port          = '7443'
  $secure            = 'no'
  $login             = 'hqadminuser'
  $password          = 'password1'
  $agent_ip          = '*default*'
  $agent_port        = '*default*'
  $resetup_tokens    = 'no'
  $accept_unverified = 'no'
  $unidirectional    = 'yes'

file { "/opt/hyperic/hyperic-hqee-agent/conf/agent.properties":
  ensure  => file,
  mode    => '0640',
  content => template('hyperic/agent.properties.erb'),
}

模板看起来像:

# Agent configuration file
#
# The following are the properties that the Agent recognizes:
#
#    agent.listenPort
#         Default:      "2144"
#
#         Description:  Port that the agent listens on.
#
#    agent.listenIp
#         Default:      "*"
#
#         Description:  Address that the agent listens on.  If set to '*',
#                       the agent will listen on all available interfaces.
#
#    agent.startupTimeOut
#         Default:      "300"
#
#         Description:  This is the number of seconds that the agent startup
#                       script will wait before determining that the agent
#                       did not startup successfully.
#
#    agent.maxBatchSize
#         Default:      "500"
#
#         Description:  This is the maximum number of metrics that the
#                       agent will send per contact with HQ.
#
#
#    agent.eventReportBatchSize
#         Default:      "100"
#
#         Description:  The agent will send events to HQ in reports containing
#                       at most this number of events until all events have been
#                       sent to HQ.
#
#
#    agent.proxyHost
#         Default:      none
#
#         Description:  The host name or IP address of the proxy server that the
#                       agent must connect to first when establishing a connection
#                       to the HQ server.
#
#
#    agent.proxyPort
#         Default:      none
#
#         Description:  The port number of the proxy server that the agent
#                       must connect to first when establishing a connection to
#                       the HQ server.
#
#
#    agent.enabledCiphers
#         Default:      SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA
#
#         Description:  The ciphers supported for secured communication with the agent.
#


## Use the following if you'd like to have the agent setup
## automatically from these properties.  The values for these
## properties are used to answer the setup questions
##
## If any of these properties are left undefined, the setup
## process will prompt for their values
##
## If the value that should be used is the default when interactive
## setup is done, use the string *default* as the value for the option

agent.setup.camIP=<%= @server_ip %>
agent.setup.camPort=<%= @server_port %>
agent.setup.camSSLPort=<%= @ssl_port %>
agent.setup.camSecure=<%= @secure %>
agent.setup.camLogin=<%= @login %>
agent.setup.camPword=<%= @password %>
agent.setup.agentIP=<%= @agent_ip %>
agent.setup.agentPort=<%= @agent_port %>
agent.setup.resetupTokens=<%= @resetup_tokens %>
agent.setup.acceptUnverifiedCertificate=<%= @accept_unverified %>

##
## enables unidirectional communications between HQ Agent
## and HQ Server in HQ Enterprise Edition
##
agent.setup.unidirectional=<%= @unidirectional %>
##
## the custom keystore private key alias for the agent
## used for unidirectional agents with a custom keystore
##
#agent.keystore.alias=hq

# required to find server/lib/weblogic.jar
#weblogic.installpath=/usr/local/bea/weblogic-8.1

# required to find websphere jars
#websphere.installpath=/opt/WebSphere/AppServer

# required to find jboss jars
#jboss.installpath=/usr/local/jboss-4.0.0

# mirror /proc/net/tcp on linux
sigar.mirror.procnet=true

##
## Logging settings
##
agent.logFile=${agent.logDir}/agent.log
agent.logLevel=INFO
log4j.rootLogger=${agent.logLevel}, R

log4j.appender.R.File=${agent.logFile}
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.MaxFileSize=5000KB
log4j.appender.R.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss,SSS z} %-5p [%t] [%c{1}@%L] %m%n
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R=org.apache.log4j.RollingFileAppender

#redirect System.{err,out} to agent.log
#commenting out will leave System.{out,err} directed to agent.log.startup
agent.logLevel.SystemErr=ERROR
agent.logLevel.SystemOut=INFO

##
## Disable overly verbose logging
##
log4j.logger.org.apache.http=ERROR
log4j.logger.org.springframework.web.client.RestTemplate=ERROR
log4j.logger.org.hyperic.hq.measurement.agent.server.SenderThread=INFO
log4j.logger.org.hyperic.hq.agent.server.AgentDListProvider=INFO
log4j.logger.org.hyperic.hq.agent.server.MeasurementSchedule=INFO
log4j.logger.org.hyperic.util.units=INFO
log4j.logger.org.hyperic.hq.product.pluginxml=INFO

log4j.logger.org.hyperic.hq.agent.server.CommandListener=INFO
log4j.logger.org.hyperic.util.security.DbKeyStore=INFO
log4j.logger.org.hyperic.util.security.MarkedStringEncryptor=INFO
log4j.logger.org.hyperic.hq.stats.AbstractStatsWriter=INFO

# Only log errors from naming context
log4j.category.org.jnp.interfaces.NamingContext=ERROR
log4j.category.org.apache.axis=ERROR

#Agent Subsystems: Uncomment individual subsystems to see debug messages.
#-----------------------------------------------------------------------
#log4j.logger.org.hyperic.hq.autoinventory=DEBUG
#log4j.logger.org.hyperic.hq.livedata=DEBUG
#log4j.logger.org.hyperic.hq.measurement=DEBUG
#log4j.logger.org.hyperic.hq.control=DEBUG

#Agent Plugin Implementations
#log4j.logger.org.hyperic.hq.product=DEBUG

#Server Communication
#log4j.logger.org.hyperic.hq.bizapp.client.AgentCallbackClient=DEBUG

#Server Realtime commands dispatcher
#log4j.logger.org.hyperic.hq.agent.server.CommandDispatcher=DEBUG

#Agent Configuration parser
#log4j.logger.org.hyperic.hq.agent.AgentConfig=DEBUG

#Agent plugins loader
#log4j.logger.org.hyperic.util.PluginLoader=DEBUG

#Agent Metrics Scheduler (Scheduling tasks definitions & executions)
#log4j.logger.org.hyperic.hq.agent.server.session.AgentSynchronizer.SchedulerThread=DEBUG

#Agent Plugin Managers
#log4j.logger.org.hyperic.hq.product.MeasurementPluginManager=DEBUG
#log4j.logger.org.hyperic.hq.product.AutoinventoryPluginManager=DEBUG
#log4j.logger.org.hyperic.hq.product.ConfigTrackPluginManager=DEBUG
#log4j.logger.org.hyperic.hq.product.LogTrackPluginManager=DEBUG
#log4j.logger.org.hyperic.hq.product.LiveDataPluginManager=DEBUG
#log4j.logger.org.hyperic.hq.product.ControlPluginManager=DEBUG

#--------------------------------------------------------------------------------------

##
## Auto-inventory options
##

#autoinventory.defaultScan.interval.millis=86400000
autoinventory.runtimeScan.interval.millis=86400000


##
## Disable deprecated response time feature by default
##
hq.plugins.responsetime.disable=true


##
## SSL settings
##
## The path and password to the keystore file.  This is for setting up the SSL
## port on the agent. Use it only if you'd like to use your existing keystore.
## The path should be a absolute path.
##
# agent.keystore.path=
# agent.keystore.password=
##
## Automatically accept unverified certificates
accept.unverified.certificates=false


##
## Configuration Monitoring settings
##
# max diff size - default 5 Mb.
hq.plugins.configmon.maxdiff=5120


## define vsphere plugin thread size (default is 1)
scheduleThread.poolsize.vsphere=2

#should the agent deduct the time offset of the server when sending metric results
agent.deductServerTimeDiff=true