#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 language governing permissions and limitations
#under the License.
msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2013-02-02T20:11:58\n"
"PO-Revision-Date: 2013-02-02T20:11:58\n"
"Last-Translator: Automatically generated\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Tag: title
#, no-c-format
msgid "Installing the Usage Server (Optional)"
msgstr ""

#. Tag: para
#, no-c-format
msgid "You can optionally install the Usage Server once the Management Server is configured properly. The Usage Server takes data from the events in the system and enables usage-based billing for accounts."
msgstr ""

#. Tag: para
#, no-c-format
msgid "When multiple Management Servers are present, the Usage Server may be installed on any number of them. The Usage Servers will coordinate usage processing. A site that is concerned about availability should install Usage Servers on at least two Management Servers."
msgstr ""

#. Tag: title
#, no-c-format
msgid "Requirements for Installing the Usage Server"
msgstr ""

#. Tag: para
#, no-c-format
msgid "The Management Server must be running when the Usage Server is installed."
msgstr ""

#. Tag: para
#, no-c-format
msgid "The Usage Server must be installed on the same server as a Management Server."
msgstr ""

#. Tag: title
#, no-c-format
msgid "Steps to Install the Usage Server"
msgstr ""

#. Tag: para
#, no-c-format
msgid "Run ./install.sh."
msgstr ""

#. Tag: programlisting
#, no-c-format
msgid "\n"
"# ./install.sh\n"
"        "
msgstr ""

#. Tag: para
#, no-c-format
msgid "You should see a few messages as the installer prepares, followed by a list of choices."
msgstr ""

#. Tag: para
#, no-c-format
msgid "Choose \"S\" to install the Usage Server."
msgstr ""

#. Tag: programlisting
#, no-c-format
msgid "\n"
"   &gt; S\n"
"        "
msgstr ""

#. Tag: para
#, no-c-format
msgid "Once installed, start the Usage Server with the following command."
msgstr ""

#. Tag: programlisting
#, no-c-format
msgid "\n"
"# service cloud-usage start\n"
"        "
msgstr ""

#. Tag: para
#, no-c-format
msgid "The Administration Guide discusses further configuration of the Usage Server."
msgstr ""

