# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# 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.
# See the License for the specific

[server]
hostname=localhost
url_port=8440
secured_url_port=8441

[agent]
prefix=/var/lib/ambari-agent/data

[stack]
installprefix=/var/ambari-agent/

[puppet]
puppetmodules=/var/lib/ambari-agent/puppet
ruby_home=/usr/lib/ambari-agent/lib/ruby-1.8.7-p370
puppet_home=/usr/lib/ambari-agent/lib/puppet-2.7.9
facter_home=/usr/lib/ambari-agent/lib/facter-1.6.10
imports_file=/usr/lib/python2.6/site-packages/ambari_agent/imports.txt
roles_to_class=/usr/lib/python2.6/site-packages/ambari_agent/rolesToClass.dict
service_states=/usr/lib/python2.6/site-packages/ambari_agent/serviceStates.dict

[command]
maxretries=2
sleepBetweenRetries=1

[security]
keysdir=/var/lib/ambari-agent/keys
server_crt=ca.crt
passphrase_env_var_name=AMBARI_PASSPHRASE

[services]
serviceToPidMapFile=/usr/lib/python2.6/site-packages/ambari_agent/servicesToPidNames.dict
pidLookupPath=/var/run/
