Ansible 启停java 程序和服务,ansiblejava


大部分情况下程序需要运行在专有用户而不是root用户,如jenkins。在同一个playbook里即需要root权限的操作,如挂载存储,然后用jenkins用户启动jenkins程序(tomcat)。jenkins启动还涉及到JAVA_HOME,可能来自于/etc/profile或者~/.bash_profile。下面看配置实例。

第一个问题:解决加载JAVA_HOME等环境变量的问题

sudo 执行shell命令时默认配置时不加载环境变量的。(具体可参见这篇文章:http://blog.sina.com.cn/s/blog_4da051a60102uyvg.html)。
按照这篇文章说的几种办法配置之后还是不能加载环境变量(操作系统SuSE 12)。所以只能在目标服务器上新建了一个start_jenkins.sh脚本,先一下 soure ~/.bash_profile 然后再启动tomcat(jenkins war部署在tomcat webapp下)。

第二个问题:playbook中需要用到不同用户执行操作

先用sudo root 执行mount操作,再用sudo -u jenkins 启动tomcat(jenkins)。启动脚本中如上所说,先加载环境变量。
启动脚本如下

#!/bin/bash
source ~/.bash_profile
nohup /apache-tomcat/bin/startup.sh &

第三个问题:tomcat启动不起来

看脚本时用nohup 加 &在后台启动的。如果只用如下命令是不能启动的(或者说是启动后立即推出了):

/apache-tomcat/bin/startup.sh 

相关内容

    暂无相关文章