Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 37 additions & 28 deletions ansible/playbooks/installExist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,17 @@
# add inet.d startup
# change sudoer file
# sudoer changes
# change port to 80 or make firewall change
# memory settings
# WHAT ELSE?
#
- hosts: naked-existdb
vars:
existSvnUrl: svn://svn.code.sf.net/p/exist/code/stable/eXist-2.0.x
existgitUrl: https://github.com/eXist-db/exist.git
existDir: /usr/local/exist2.0.x
existLn: /usr/local/existlatest
existShLn: /usr/local/exist
#java_home: /usr/lib/jvm/java
existJettyPort: 80
existJettyPort: 8080
jettyConfFile: /usr/local/existlatest/tools/jetty/etc/jetty.xml
wrapperConfFile: /usr/local/existlatest/tools/wrapper/conf/wrapper.conf
# MBytes
Expand All @@ -37,7 +36,7 @@

tasks:
- name: find out of build of exist has already been successful
action: shell cat ${existDir}/buildExist.log | grep "BUILD SUCCESSFUL"
action: shell grep "BUILD SUCCESSFUL" ${existDir}/buildExist.log
ignore_errors: True
register: buildSuccess

Expand All @@ -48,77 +47,87 @@
# this works leave this here till be make use this code elsewhere
- name: test
debug: msg="test is successful"
when_string: ${buildSuccess.stdout} != 'BUILD SUCCESSFUL'
when: buildSuccess.stdout != 'BUILD SUCCESSFUL'

- name: add user svcexist
user: name=svcexist

- name: install java-1.7.0-openjdk latest version
action: yum pkg=java-1.7.0-openjdk state=latest
yum: pkg=java-1.7.0-openjdk state=latest

- name: set alternatives up for java 1.7 openJdk
action: script ../../bash/javaAlternatives.sh
script: ../../bash/javaAlternatives.sh

- name: install ant lastest version
action: yum pkg=ant state=latest
when_string: ${buildSuccess.stdout} != 'BUILD SUCCESSFUL'
yum: pkg=ant state=latest
when: buildSuccess.stdout != 'BUILD SUCCESSFUL'

- name: install git
yum: pkg=git state=present
when: buildSuccess.stdout != 'BUILD SUCCESSFUL'

- name: install svn
action: yum pkg=svn state=present
when_string: ${buildSuccess.stdout} != 'BUILD SUCCESSFUL'
- git: repo={{ existgitUrl }}
dest={{ existDir }}
version=eXist-2.0.x
when: buildSuccess.stdout != 'BUILD SUCCESSFUL'

- name: checkout exist-db from svn at ${existSvnUrl}
action: command svn checkout ${existSvnUrl} ${existDir}
when_string: ${buildSuccess.stdout} != 'BUILD SUCCESSFUL'
- name: add missing directories
file: dest={{ item }} state=directory
with_items:
- {{ existDir }}/lib/extensions
- {{ existDir }}/extensions/modules/lib

- name: build existdb with javac in this location ${existDir}
action: script ../../bash/buildExistdb.sh ${existDir}
when_string: ${buildSuccess.stdout} != 'BUILD SUCCESSFUL'
when: buildSuccess.stdout != 'BUILD SUCCESSFUL'

# wonky alert - these debug messages let the ln -s get created
- name: debug 1
action: debug msg="1"

- name: create a symbolic link for $EXIST_HOME as ${existLn}
action: file src="${existDir}" dest="${existLn}" state=link
file: src="${existDir}" dest="${existLn}" state=link
ignore_errors: True

- name: create a link to the exist.sh file
action: file src="${existDir}/tools/wrapper/bin/exist.sh" dest="${existShLn}" state=link
file: src="${existDir}/tools/wrapper/bin/exist.sh" dest="${existShLn}" state=link
ignore_errors: True

- name: create a symbolic link to the exist.sh script for other uses
action: file src="${existLn}/tools/wrapper/bin/exist.sh" dest="/usr/local/bin/exist" state=link
file: src="${existLn}/tools/wrapper/bin/exist.sh" dest="/usr/local/bin/exist" state=link
ignore_errors: True

- name: create a symbolic link to the exist.sh script for init.d
action: file src="${existLn}/tools/wrapper/bin/exist.sh" dest="/etc/init.d/exist" state=link
file: src="${existLn}/tools/wrapper/bin/exist.sh" dest="/etc/init.d/exist" state=link
ignore_errors: True

# wonky alert - these debug messages let the ln -s get created
- name: debug 2
action: debug msg="2"

name: get the value of $JAVA_HOME for use later
action: shell source /etc/profile; echo $JAVA_HOME
shell: source /etc/profile; echo $JAVA_HOME
register: actualJavaHome

- name: echo JAVA_HOME for debugging purposes
action: debug msg=${actualJavaHome.stdout}

- name: add EXIST_HOME to /etc/profile
action: lineinfile backup="yes" dest="/etc/profile" insertafter="EOF" state=present line="source /home/ec2-user/ec2ExistEnv.sh" regexp="^source /home/ec2-user/ec2ExistEnv\.sh$"
lineinfile: backup="yes" dest="/etc/profile" insertafter="EOF" state=present line="source /home/ec2-user/ec2ExistEnv.sh" regexp="^source /home/ec2-user/ec2ExistEnv\.sh$"

- name: add templated ec2ExistEnv.sh to ec2-user home
action: template src=../templates/ec2ExistEnv.template dest=/home/ec2-user/ec2ExistEnv.sh mode=0555
template: src=../templates/ec2ExistEnv.template dest=/home/ec2-user/ec2ExistEnv.sh mode=0555

- name: source /etc/profile so some env values get created
action: shell source /etc/profile
shell: source /etc/profile
ignore_errors: True

- name: create a /etc/rc.d/rc.local file with -rwxr-xr-x file permissions (this file starts exist on reboot)
action: template backup=yes src=../templates/ec2ExistRclocal.template dest=/etc/rc.d/rc.local mode=0755
template" backup=yes src=../templates/ec2ExistRclocal.template dest=/etc/rc.d/rc.local mode=0755

- name: set the wrapper max memory to ${existWrapperMaxMem} MB
action: lineinfile backup="yes" dest="${wrapperConfFile}" state=present line="wrapper.java.maxmemory=${existWrapperMaxMem}" regexp="^wrapper.java.maxmemory=\d+"
lineinfile: backup="yes" dest="${wrapperConfFile}" state=present line="wrapper.java.maxmemory=${existWrapperMaxMem}" regexp="^wrapper.java.maxmemory=\d+"

- name: set the jetty wrapper port for http to ${existJettyPort}
action: lineinfile backup="yes" dest="${jettyConfFile}" state=present line='<Set name="port"><SystemProperty name="jetty.port" default="${existJettyPort}"/></Set>' regexp='<Set name="port"><SystemProperty\sname="jetty.port"\s'

lineinfile: backup="yes" dest="${jettyConfFile}" state=present line='<Set name="port"><SystemProperty name="jetty.port" default="${existJettyPort}"/></Set>' regexp='<Set name="port"><SystemProperty\sname="jetty.port"\s'

10 changes: 8 additions & 2 deletions ansible/templates/ec2ExistRclocal.template
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ EXIST_HOME={{ existLn }}
echo 'Starting the eXist native XML database from within /etc/rc.d/rc.local ...'
grep 'jetty.port' $EXIST_HOME/tools/jetty/etc/jetty.xml
echo 'Stating with the following max memory (MB)'
grep 'wrapper.java.maxmemory' $EXIST_HOME/tools/wrapper/wrapper.conf
/etc/init.d/exist start
grep 'wrapper.java.maxmemory' $EXIST_HOME/tools/wrapper/conf/wrapper.conf
# start as service user
su svcexist -c /etc/init.d/exist start

# add nat rule to forward 8080 to 80. 8080 also accessible with this config.
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080