blob: 7eb5abd03a12976a7bf81549b46548a5754959fc [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd">
<document>
<header>
<title>Notes for forrest.zones.apache.org</title>
</header>
<body>
<section id="overview">
<title>Overview</title>
<p>
Note the current hostname is forrest-vm.apache.org. Links in this
text have been updated but not all uses of the name forrest.zones.apache.org.
</p>
<p>
The server <a href="ext:forrest-zone">forrest-vm.apache.org</a>
provides our testing and demonstration area. It is managed by Apache
Forrest committers. The material is intended for developer use only.
</p>
</section>
<section id="configuration">
<title>Configuration</title>
<p>
Configuration files and directory structures are stored in SVN at
<a href="ext:forrest-zone/svn">https://svn.apache.org/repos/asf/forrest/zone</a> and
additional private stuff is in our pmc/forrest/zone SVN.
</p>
<p>
The current environment is a virtual machine provisioned using
configuration information stored using <a href="ext:forrest-zone/puppet">Puppet</a>.
</p>
<ul>
<li>Basic configuration classes and settings
<ul>
<li>
<a href="https://github.com/apache/infrastructure-puppet/blob/deployment/data/nodes/forrest-vm.apache.org.yaml">
data/nodes/forrest-vm.apache.org.yaml</a>
</li>
</ul>
</li>
<li>Manifest to create role account and install extra packages
<ul>
<li>
<a href="https://github.com/apache/infrastructure-puppet/blob/deployment/modules/forrest_pvm_asf/manifests/init.pp">
modules/forrest_pvm_asf/manifests/init.pp</a>
</li>
</ul>
</li>
</ul>
<p>
Configuration changes may be applied by submitting a
<a href="https://help.github.com/articles/using-pull-requests/">pull request</a>.
Fork the <a href="https://github.com/apache/infrastructure-puppet">repository</a>,
make your changes on a topic branch based on deployment branch, and submit your request.
</p>
<p>
Other (old) notes are in SVN at
<a href="http://svn.apache.org/repos/asf/forrest/zone/README.txt">zone/README.txt</a>
</p>
<p>
Note that the user account <code>forrest</code> is now a role account named <code>forrest_role</code>.
</p>
<p>
<strong>config</strong>
</p>
<source>
creates /home/forrest_role/config ... $CONFIG
directories /forrestbot-*/ are the forrestbot homes, see below.
setenv*.sh ... these are sourced by the forrestbots and other
cronjobs and user configs, to set the environment.
</source>
<p>
<strong>htdocs</strong>
</p>
<source>
creates /home/forrest_role/htdocs ... $DOC_ROOT
directories /ft/ and /fts/ are the forrestbot config and results, see below.
</source>
<p>
<strong>test-sources</strong>
</p>
<source>
A place to hold sources for various test sites.
Normally these would be in the relevant project's SVN.
Hold them here until building properly.
</source>
<p>
Cron runs the various Forrestbots and management tasks, such as updating
the forrest-trunk software; cleaning up old logfiles, etc. A copy of the
crontab is stored in SVN at <code>zone/config/crontab.txt</code>.
</p>
</section>
<section id="software">
<title>Software</title>
<p>
Installed software is now managed via Puppet, see above.
</p>
<section id="s-forrest">
<title>Forrest</title>
<p>
<strong>forrest-trunk</strong>
</p>
<source>
svn checkout of trunk.
automatically 'svn update' and 'build' via cron: $CONFIG/update-forrest-trunk.sh
</source>
<p>
<strong>forrest-trunk-stable</strong>
</p>
<source>
svn checkout of trunk, manually updated as needed.
</source>
<p>
<strong>forrest-release</strong>
</p>
<source>
svn checkout of current release branch, manually updated as needed.
</source>
<p>
To manually update -stable or -release do this:
</p>
<source>
<![CDATA[
source $CONFIG/setenv-java-14.sh
cd /export/opt/forrest-trunk-stable
svn up
cd main
./build.sh clean; ./build.sh
]]>
</source>
</section>
</section>
<section id="fb">
<title>The forrestbots</title>
<p>
There are various forrestbots operating with different versions of
forrest. Their home is at $CONFIG
</p>
<p>
<strong>$CONFIG/forrestbot-trunk</strong>
</p>
<source>
forrestbot operating with trunk.
builds various sites automatically, triggered via cron.
Configuration files and the generated results are at $DOC_ROOT/ft/
</source>
<p>
<strong>$CONFIG/forrestbot-trunk-stable</strong>
</p>
<source>
forrestbot operating with trunk-stable.
builds various sites, only runs when needed, triggered via cron.
Configuration files and the generated results are at $DOC_ROOT/fts/
</source>
</section>
<section id="logs">
<title>Log files</title>
<p>
Forrestbot logs are at <code>$CONFIG/forrestbot-trunk/logs/</code>
and old ones are cleaned up daily by the crontab.
The content is sent to the dev list whenever a non-successful build happens.
</p>
<p>
The Cocoon logfiles for each built site are at
<code>$CONFIG/forrestbot-trunk/conf/work/*/webapp/WEB-INF/logs/</code>
(which of course are re-generated on each hourly run).
These are saved to
<code>$CONFIG/forrestbot-trunk/logs/*-cocoon-log-*.tar.gz</code>
to assist with debugging.
</p>
<p>
There is also a log file for each site that
forrestbot builds which captures the output of cron (cronout-*.txt). Be
sure to verify this logfile after making configuration changes.
</p>
<p>
Whenever the 'forrest' software automatically updates following commits,
then there will be a logfile at the <code>$CONFIG</code> top-level directory.
Old ones are cleaned up daily by the crontab.
</p>
</section>
<section id="admin">
<title>Administration</title>
<p>
See the general notes for the
<a href="http://www.apache.org/dev/solaris-zones.html">zone
administration</a>.
</p>
<p>
The project chair is the root user. Committers can ask on the dev list
to get a user account added or modified.
</p>
<p>
Monitor the infrastructure@
<a href="http://www.apache.org/dev/infra-mail.html">mail lists</a>
for changes to the
<a href="http://www.apache.org/dev/machines.html#jails-tlps">machine</a>.
</p>
<p>
Keep an eye on the status via the
<a href="http://status.apache.org/">monitoring</a> service.
</p>
<p>
Occasionally the "SSL server certificate" will change for svn.apache.org
server. Monitor the infrastructure and committers mail lists, and see
infra
<a href="http://www.apache.org/dev/version-control.html#cert">notes</a>
about this topic.
</p>
<p>
If you think that you need to contact
<a href="http://www.apache.org/dev/infra-contact">infra</a>
about anything, then please try our Forrest dev or private list first.
See the monitor page for
<a href="http://status.apache.org/">Service Status</a>.
</p>
<p>
Keep an occasional eye on $CONFIG/update-forrest-trunk.log This is
the output of the cronjob to do svn update to trunk and re-build.
</p>
<section id="admin-user">
<title>User administration</title>
<p>
After receiving your account, please be sure to configure it properly.
</p>
<p>
See some notes at
<a href="https://www.apache.org/dev/freebsd-jails#opie">configuring opie
for sudo access</a>. Opie and sudo are needed to work as the <code>forrest_role</code>
user.
</p>
<p>
Look at the setup of some other users on our zone.
</p>
</section>
</section>
<section id="other">
<title>Other notes</title>
<ul>
<li>See some other discussion in the thread
<a href="http://marc.info/?l=forrest-dev&amp;m=111717382712670" rel="nofollow">Re: zone for testing forrest</a></li>
</ul>
</section>
</body>
</document>