Note: Next revision cycle, start building everything into
$HOME/[app]-[version#] and creating a symlink to $HOME/[app] so that there is
no question about what the current, in use, directory is.
Note: When downloading software to install in these instructions, unless
otherwise noted, always download the source code, and avoid binary installers.
Binary installers tend to make inaccurate assumptions about what libraries you
have installed on your system, as well as other problems.
When setting up Thalia servers, be certain to know which servers have which
hostnames, and where they will fit into the cluster stack. A Thalia cluster
will need 3 layers to the cluster. While these can all exist on the same
server, this is not recommended.
1. Configure an Apache SSL/Tomcat server as described in the Apache-SSL
instructions. This is the top layer of the cluster. Extra care must be
given to wildcard certificates and DNS subdomain entries. Submit a request to the network group asap
for the cert and subdomain because it will take a few days. The apache configuration will include the url rewrite.
2. Configure an Alfresco server without WCM components, as described in the
Alfresco instructions. This is the second layer of the stack. Give care
to the cluster configuration is this is part of a multi-stack cluster. Don't forget to install alfresco license. (put the license file in
tomcat/shared/classes/alfresco/extension/license )
3. Configure a MySQL serveras described in the MySQL instructions. This is
the bottom layer of the stack. Be certain to configure replication if it
is part of a multi-stack cluster.
4. On the top system in the stack, create directory structure:
mkdir /home/thalia
mkdir /home/thalia/conf
mkdir /home/thalia/log
mkdir /home/thalia/bulkimage
mkdir /home/thalia/tmp
5. Place the thaliausers.xml file into /home/thalia/conf. Its contents
should be similar to:
<user-list>
<user><name>iannuzzo</name>
<domain>ADMIN</domain>
</user>
<user><name>colodzin</name>
<domain>ADMIN</domain>
</user>
<user><name>dongq</name>
<domain>ADMIN</domain>
</user>
<user><name>dracus</name>
<domain>ADMIN</domain>
</user-list>
The system super users can self-register in any domain by going to https://\[domain\].thalia.mit.edu/resttest.jsp and click on the super user self reg button.
6. Install ImageMagic on the top layer of the stack.
6a. go to www.imagemagick.org and get the source distribution:
ImageMagick-6.3.2-9.tar.gz
6b. unzip and unstar ImageMagick-6.3.2.tar.gz and cd to ImageMagic-6.3.2
directory
6c. by default, the base installation directory is /usr/local. binary files
go in /usr/local/bin and library files go in /usr/local/lib. If you want to specify an installationprefix other than /usr/local, you can do it by specify the --prefix=PATH in step 6d.
6d. ./configure (specify the path here if necessary. Please note that the binary files should be in the system path)
6e. make; make install
6f. for more info, please refer to the Install-unix.txt in the package
6g. after installation, you should be able to type "convert" command and get the help page.
7. On the second server in the stack, customize the Alfresco installation.
7a. Stop the Alfresco service.
cd /home/alfresco-[version number]-[series]
./alfresco.sh stop
ps aux | grep alfresco
Repeat the ps command until the Alfresco processes terminate.
7b. Edit contentModel.xml and add the Thalia admin property definition.
It is located in the following directory:
/home/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model
In the block containing <type name="cm:person">, and before the
</properties> line, add:
<property name="cm:isAdmin">
<type>d:text</type>
</property>
7c. Put our custom model (includes thaliaModel.xml and
thalia-model-context.mxl) in the extension folder.
7d. Edit permissionDefinitions.xml and add the Thalia permissionGroup
definitions to the permission group definition block. Be certain not
to split a block of code. It is located in directory:
/home/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model
The additional block should be:
<permissionGroup name="ThaliaWrite" allowFullControl="false"
expose="false">
<includePermissionGroup type="sys:base" permissionGroup="Write"/>
<includePermissionGroup type="sys:base" permissionGroup="Read"/>
<includePermissionGroup type="sys:base"
permissionGroup="AddChildren"/>
<includePermissionGroup type="sys:base" permissionGroup="Delete"/>
<includePermissionGroup type="sys:base"
permissionGroup="ExecuteContent"/>
</permissionGroup>
<permissionGroup name="ThaliaRead" allowFullControl="false"
expose="false">
<includePermissionGroup type="sys:base"
permissionGroup="ReadProperties"/>
<includePermissionGroup type="sys:base"
permissionGroup="ReadChildren"/>
<includePermissionGroup type="sys:base"
permissionGroup="ReadContent"/>
</permissionGroup>
<permissionGroup name="ThaliaDownload" allowFullControl="false"
expose="false">
<includePermissionGroup type="sys:base"
permissionGroup="ReadProperties"/>
<includePermissionGroup type="sys:base"
permissionGroup="ReadChildren"/>
<includePermissionGroup type="sys:base"
permissionGroup="ReadContent"/>
<includePermissionGroup type="sys:base"
permissionGroup="ExecuteContent"/>
</permissionGroup>
7e. Add an admin account to the Alfresco authority-services-context.xml
file. The file is located at:
/home/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/
In the <property name="adminUsers"> block, add the following line
before the </properties> line:
<value>thaliaAdmin</value>
7f. Start the Alfresco service.
cd /home/alfresco-[version number]-[series]
./alfresco.sh start
7g. Log in as the Alfresco Admin user, and add the thaliaAdmin and
guestUser users. Check the passwords for these users on the Thalia
server (top server in the stack). Use the Web interface web tool in
Alfresco to do this.
7h.change the default admin account password to the same as thaliaAdmin. Don't use the default admin password.
8. On the top server in the stack, run the BuildThaliaDomain tool to create
domains.
cd /home/qing/dist
$JAVA_HOME/bin/java -classpath ./lib -jar \
BuildThaliaDomain.jar \
[alfresco repository location]\
[DOMAIN NAME]
Where [DOMAIN NAME] is the domain to configure (such as test, hst, psb,
etc).
For example, to create the TEST domain on isda-thalia6 do:
$JAVA_HOME/bin/java -classpath ./lib -jar BuildThaliaDomain.jar http://isda-thalia6.mit.edu:8080/alfresco TEST
Please be aware that the jar file was compiled using java6, so if the JAVA_HOME points to a location older than java6, it will not work.
You can run the jar file from any server to manage any domain in any alfresco repository. You just need to specify the alfresco repository address as the first argument.
9. Upload the thalia-ime.war file to /home/apache-tomcat-5.5.23/webapps.
10. Set the domain specific metadata mapping
11. run cronjob to clean up the log, tmp, and bulkimage directories. :
Upload the rmoldlog.py file to /root, and add the following line to
/var/spool/cron/root:
30 2 * * * /root/rmoldlog.py > /loc/logs/rmlog.log 2>&1 &