ansible启动和管理远程主机服务
Ansible执行远程shell流程
1.ansible自动化运维工具属于非交互式登陆方式进行机器管理--(默认不加载bash和系统env环境变量)
2.ansible 命令执行流程--->ansible master执行--> 客户端机器临时家目录路径如:/home/ops/.ansible/tmp/
3.如上目录/home/ops/.ansible/tmp/AnsiballZ_command.py 新增临时py 文件然后执行py文件->清理生成临时脚本
4.ansible -vvv 查看执行过程
本地shell启动java成功
#!/bin/sh
export LANG=zh_CN.UTF-8
RESOURCE_NAME=admin-dev.jar
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop admin Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill admin Process!'
kill -9 $tpid
else
echo 'Stop admin Success!'
fi
sleep 6
echo 'Start Process...'
nohup java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME >/dev/null 2>&1 &
sleep 6
count=`ps -ef |grep java|grep $RESOURCE_NAME|grep -v grep|wc -l`
if [ $count != 0 ];then
echo 'admin Start Success...'
else
echo 'admin Start Fail...'
fi
View Code
Ansible远程执行失败
ansible webservers --user=admin -m shell -a /home/admin/app/start-register.sh
原因:
ansible执行脚本流程会在/home/admin/.ansible/tmp/目录下找 register-center-dev.jar发现没有此文件故报错; Unable to access jarfile register-center-dev.jar
修改下shell脚本即可
在脚本最前面添加两行
CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd ) #如果第一条语句顺利执行,就执行pwd显示当前目录,并将结果赋值给变量“CURDIR”
cd $CURDIR
#!/bin/bash
export LANG=zh_CN.UTF-8
RESOURCE_NAME=register-center-dev.jar
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Register Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Register Process!'
kill -9 $tpid
else
echo 'Stop Register Success!'
fi
echo 'Start Process...'
#nohup java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME >/dev/null 2>&1 &
/usr/bin/java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME
count=`ps -ef |grep java|grep $RESOURCE_NAME|grep -v grep|wc -l`
if [ $count != 0 ];then
echo 'Register Process Start Success...'
else
echo 'Register Process Start Fail...'
fi
原脚本
#!/bin/bash
CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )
cd $CURDIR
export LANG=zh_CN.UTF-8
RESOURCE_NAME=register-center-dev.jar
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Register Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Register Process!'
kill -9 $tpid
else
echo 'Stop Register Success!'
fi
echo 'Start Process...'
#nohup java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME >/dev/null 2>&1 &
/usr/bin/java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME
count=`ps -ef |grep java|grep $RESOURCE_NAME|grep -v grep|wc -l`
if [ $count != 0 ];then
echo 'Register Process Start Success...'
else
echo 'Register Process Start Fail...'
fi
新脚本
ansible远程执行shell启动jar包成功
调试启动脚本日志
1.启动命令的时候不要使用nohup方式执行,这样脚本的错误信息将无法实时的输出到控制台
nohup java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME >/dev/null 2>&1 &
改成
java -jar -Xmx2048m -Xms2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m $RESOURCE_NAME
配置ssh免密登录失败
设置完后仍然要输入密码,发现是被登录机器的文件权限问题
chmod 700 /home/admin
chmod 600 /home/admin/.ssh/authorized_keys
chmod 700 /home/admin/.ssh/
调试登录连接信息
ssh -vvv 'admin@192.168.309.115'
ansible远程执行shell异常
使用ansible执行远程机器上的shell脚本出现失败情况
执行远程脚本前先加载环境变量
ssh admin@192.168.30.102 'source /etc/profile && /app/taishi/flink/flink-1.12.2/bin/start-cluster.sh'
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibgaig
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22