blo*_*aak 7 server upstart 12.04
我已经在单个 Ubuntu 12.04 服务器上安装了 PostgreSQL、Atlassian JIRA、Stash、Confluence 和 Crowd。它们按照 Atlassian 文档进行集成和工作。
我注意到的一件事是产品套件不能容忍依赖组件关闭。例如,如果 Crowd 停止,用户将无法再登录。如果 PostgreSQL 因维护原因被停止,则依赖的应用程序可能永远无法恢复。
每天晚上,系统都会经过一个维护窗口,在此期间可能会对操作系统和软件进行修补。外部 DNS 配置为在应用程序出现错误时正常显示维护页面。
有时,PostgreSQL 可能会被停止、打补丁然后启动。如何配置我的 Upstart 脚本以考虑依赖项?我配置了“开始”,但没有效果。
我很乐意在安装过程中编写 Windows 服务并配置它们的依赖项(例如 Windows 安装程序或 PowerShell)。
测试用例:
我停止了所有服务。然后我启动了 Confluence,预计它要么失败(因为 PostgreSQL 和 Crowd 已停止),要么会自动尝试启动 PostgreSQL 和 Crowd。都没有发生。
我启动了所有服务。然后我停止了 Crowd,期望 Confluence、JIRA 和 Stash 会被停止。它只是停止了 Crowd 并且所有其他服务继续运行,但未能正常运行。
依赖项:
合流
# confluence
description "Atlassian Confluence"
start on (net-device-up and local-filesystems and postgresql and runlevel [2345] and crowd)
stop on runlevel [!2345]
respawn
kill timeout 30
env RUN_AS_USER=confluence
env BASEDIR=/usr/local/bin/confluence
script
LOGFILE=/var/log/confluence/confluence.`date +%Y-%m-%d`.log
exec su - $RUN_AS_USER -c "$BASEDIR/bin/catalina.sh run" >> $LOGFILE 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
吉拉
description "Atlassian JIRA"
start on (net-device-up and local-filesystems and postgresql and runlevel [2345] and crowd)
stop on runlevel [!2345]
respawn
kill timeout 30
env RUN_AS_USER=jira
env BASEDIR=/usr/local/bin/jira
script
LOGFILE=/var/log/jira/jira.`date +%Y-%m-%d`.log
exec su - $RUN_AS_USER -c "$BASEDIR/bin/catalina.sh run" >> $LOGFILE 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
藏
description "Atlassian Stash"
start on (net-device-up and local-filesystems and postgresql and runlevel [2345] and crowd)
stop on runlevel [!2345]
respawn
kill timeout 30
env RUN_AS_USER=stash
env BASEDIR=/usr/local/bin/stash
env STASH_HOME="/var/local/lib/stash"
script
LOGFILE=/var/log/stash/stash.`date +%Y-%m-%d`.log
exec su - $RUN_AS_USER -c "$BASEDIR/bin/start-stash.sh -fg" >> $LOGFILE 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
人群
# crowd
description "Atlassian Crowd - Single Sign-On (SSO) and Identity Management"
start on (net-device-up and local-filesystems and postgresql and runlevel [2345])
stop on runlevel [!2345]
respawn
kill timeout 30
env RUN_AS_USER=crowd
env BASEDIR=/usr/local/bin/crowd/apache-tomcat
script
LOGFILE=/var/log/crowd/crowd.`date +%Y-%m-%d`.log
exec su - $RUN_AS_USER -c "$BASEDIR/bin/catalina.sh run" >> $LOGFILE 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
PostgreSQL 通过 APT 安装并在启动期间自动启动。
尝试:
人群
start on (net-device-up and started postgresql)
stop on stopping postgresql
Run Code Online (Sandbox Code Playgroud)合流
start on started crowd
stop on stopping crowd
Run Code Online (Sandbox Code Playgroud)藏
start on started crowd
stop on stopping crowd
Run Code Online (Sandbox Code Playgroud)吉拉
start on started crowd
stop on stopping crowd
Run Code Online (Sandbox Code Playgroud)参考:http : //upstart.ubuntu.com/cookbook/
这会有点困难,因为 postgresql 不是原生的新贵工作。您需要执行以下操作:
initctl emit -n started JOB=postgresql
在 /etc/init.d/postgresql 的开始部分的 END添加行initctl emit stopping JOB=postgresql
将这一行添加到 /etc/init.d/postgresql 的停止部分的 BEGINNING将人群更改为:
start on started postgresql
stop on stopping postgresql
Run Code Online (Sandbox Code Playgroud)应该是这样。如果您需要第 1 步和第 2 步的帮助,请直接询问。
归档时间: |
|
查看次数: |
13256 次 |
最近记录: |