forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-util/artifactory-bin: add missing files/dir, rename files to be v…
…ersion agnostic Package-Manager: portage-2.2.26
- Loading branch information
Showing
5 changed files
with
193 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<Context path="/artifactory" docBase="${artifactory.home}/webapps/artifactory.war" processTlds="false"> | ||
<Manager pathname="" /> | ||
<Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="x-forwarded-proto"/> | ||
</Context> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
ARTIFACTORY_HOME=/opt/artifactory | ||
ARTIFACTORY_PID=$ARTIFACTORY_HOME/run/artifactory.pid | ||
ARTIFACTORY_USER=artifactory | ||
JAVA_OPTIONS="-server -Xms2g -Xmx8g -Xss256k -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseG1GC" | ||
TOMCAT_HOME=$ARTIFACTORY_HOME/tomcat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
#!/sbin/openrc-run | ||
|
||
description="Manages the services needed to run Artifactory on a dedicated Tomcat" | ||
command="/opt/artifactory/tomcat/bin/catalina.sh" | ||
pidfile="/opt/artifactory/run/artifactory.pid" | ||
procname="artifactory" | ||
user=${ARTIFACTORY_USER:-artifactory} | ||
group=${group:-artifactory} | ||
|
||
# Artifactory can be very slow to start, and without locking, | ||
# restarting via runscript is very error prone | ||
CATALINA_LOCK_FILE="$(dirname $pidfile)/lock" | ||
|
||
CATALINA_MGMT_PORT=8015 | ||
REQUIRED_JAVA_VERSION="1.8" | ||
START_TIMEOUT=300 | ||
|
||
# Helper functions: | ||
is_mgmt_port_used() { | ||
mgmt_port_used=$(netstat -vatn | grep LISTEN | grep $CATALINA_MGMT_PORT | wc -l) | ||
} | ||
|
||
get_pid_info() { | ||
pidValue="" | ||
javaPs="" | ||
if [ -e "$pidfile" ]; then | ||
pidValue=$(cat $pidfile) | ||
if [ -n "$pidValue" ]; then | ||
javaPs="$(ps -p $pidValue | grep java)" | ||
fi | ||
fi | ||
} | ||
|
||
depend() { | ||
need net nginx | ||
use dns logger netmount | ||
} | ||
|
||
start_pre() { | ||
if [ -z "$ARTIFACTORY_HOME" ] || [ ! -d "$ARTIFACTORY_HOME" ]; then | ||
eerror "Artifactory home folder not defined or does not exists at $ARTIFACTORY_HOME" | ||
return 1 | ||
fi | ||
|
||
if [ -z "$pidfile" ]; then | ||
eerror "Artifactory pid destination pidfile was not set!" | ||
return 1 | ||
fi | ||
|
||
if [ -z "$TOMCAT_HOME" ] || [ ! -d "$TOMCAT_HOME" ]; then | ||
eerror "Tomcat Artifactory folder not defined or does not exists at $TOMCAT_HOME" | ||
return 1 | ||
fi | ||
|
||
if [ -z "$ARTIFACTORY_USER" ]; then | ||
ARTIFACTORY_USER=$user | ||
fi | ||
|
||
current_open_file_limit=$(su -l $ARTIFACTORY_USER -c "ulimit -n") | ||
desired_open_file_limit=32000 | ||
if [ "$current_open_file_limit" != "unlimited" ] && [ $current_open_file_limit -lt $desired_open_file_limit ]; then | ||
eerror "Maximum number of open files ($current_open_file_limit) is too small!" | ||
eerror "You should add:" | ||
eerror "artifactory soft nofile $desired_open_file_limit" | ||
eerror "artifactory hard nofile $desired_open_file_limit" | ||
eerror "to your /etc/security/limits.conf file." | ||
return 1 | ||
fi | ||
|
||
current_max_process_limit=$(su -l $ARTIFACTORY_USER -c "ulimit -u") | ||
desired_max_process_limit=1024 | ||
if [ "$current_max_process_limit" != "unlimited" ] && [ $current_max_process_limit -lt $desired_max_process_limit ]; then | ||
eerror "Number of processes $current_max_process_limit is too small!" | ||
eerror "You should add:" | ||
eerror "artifactory soft nproc $desired_max_process_limit" | ||
eerror "artifactory hard nproc $desired_max_process_limit" | ||
eerror "to your /etc/security/limits.conf file." | ||
return 1 | ||
fi | ||
|
||
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then | ||
einfo "Found java executable in $JAVA_HOME" | ||
_java="$JAVA_HOME/bin/java" | ||
elif type -p java > dev/null 2>&1 ; then | ||
_java=java | ||
else | ||
eerror "No Java Runtime Environment (jre) found! At least java-$REQUIRED_JAVA_VERSION is required." | ||
return 1 | ||
fi | ||
if [[ "$_java" ]]; then | ||
java_version=$($_java -version 2>&1 | grep 'version' | cut -d ' ' -f3 | tr -d \") | ||
java_major=$(echo $java_version | cut -d . -f1-2) | ||
if [ "$java_major" != "$REQUIRED_JAVA_VERSION" ] ; then | ||
eerror "Java version $java_version is too old, java-$REQUIRED_JAVA_VERSION is required." | ||
return 1 | ||
fi | ||
fi | ||
} | ||
|
||
# We have to pass start/stop through to catalina.sh, which doesn't understand restart (and restart can't be overridden in OpenRC): | ||
start() { | ||
get_pid_info | ||
is_mgmt_port_used | ||
if [ $mgmt_port_used -ne 0 ] || [ -n "$javaPs" ]; then | ||
eerror "$RC_SERVICE already started!" | ||
return 1 | ||
else | ||
ebegin "Starting $RC_SERVICE" | ||
start-stop-daemon --exec $command --pidfile $pidfile --user $user:$group --wait $START_TIMEOUT start | ||
RETVAL=$? | ||
eend $RETVAL "start-stop-daemon failed to start $RC_SERVICE" | ||
fi | ||
|
||
|
||
is_mgmt_port_used | ||
seconds=1 | ||
while [ $mgmt_port_used -eq 0 ] && [ $seconds -lt $START_TIMEOUT ]; do | ||
sleep 1 | ||
((seconds=seconds+1)) | ||
is_mgmt_port_used | ||
done | ||
if [ $mgmt_port_used -eq 0 ]; then | ||
eerror "$RC_SERVICE did not start in $START_TIMEOUT seconds!" | ||
return 1 | ||
elif [ $mgmt_port_used -eq 1 ]; then | ||
einfo "$RC_SERVICE started" | ||
[ $RETVAL=0 ] && touch $CATALINA_LOCK_FILE | ||
else | ||
eerror "Got unexpected result when checking port $CATALINA_MGMT_PORT" | ||
return 1 | ||
fi | ||
return $RETVAL | ||
} | ||
|
||
stop() { | ||
ebegin "Stopping $RC_SERVICE" | ||
start-stop-daemon --stop --pidfile $pidfile --wait $START_TIMEOUT stop | ||
RETVAL=$? | ||
eend $RETVAL "Failed to stop $RC_SERVICE!" | ||
|
||
[ $RETVAL=0 ] && rm -f "$CATALINA_LOCK_FILE" "$pidfile" | ||
return $RETVAL | ||
} | ||
|
||
status() { | ||
is_mgmt_port_used | ||
if [ $mgmt_port_used -eq 0 ]; then | ||
if [ -e "$pidfile" ]; then | ||
eerror "$RC_SERVICE stopped but the pid file $pidfile still exists!" | ||
RETVAL=1 | ||
else | ||
if [ -e "$CATALINA_LOCK_FILE" ]; then | ||
eerror "$RC_SERVICE is stopped but the lock file $CATALINA_LOCK_FILE still exists!" | ||
RETVAL=2 | ||
else | ||
eerror "$RC_SERVICE is stopped" | ||
RETVAL=3 | ||
fi | ||
fi | ||
else | ||
einfo "$RC_SERVICE is running" | ||
RETVAL=0 | ||
fi | ||
return $RETVAL | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<Server port="8015" shutdown="SHUTDOWN"> | ||
|
||
<Service name="Catalina"> | ||
<Connector port="8081" protocol="HTTP/1.1" | ||
maxThreads="500" minSpareThreads="20" | ||
enableLookups="false" disableUploadTimeout="true" | ||
backlog="100"/> | ||
<!-- This is the optional AJP connector --> | ||
<Connector port="8019" protocol="AJP/1.3"/> | ||
|
||
<Engine name="Catalina" defaultHost="localhost"> | ||
<Host name="localhost" appBase="webapps"/> | ||
</Engine> | ||
|
||
</Service> | ||
</Server> | ||
|