V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mccreefei
V2EX  ›  程序员

Ansible 问题求助!

  •  
  •   mccreefei · 2019-10-15 13:56:24 +08:00 · 1412 次点击
    这是一个创建于 1627 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Jenkins 打包应用,然后通过 Ansible copy 模块将打好的包发到远程服务器上,再通过 Ansible shell 模块在远程机器上执行启动脚本。发现包成功发到了远程服务器,但是执行远程脚本时提示 java 指令找不到,我直接在服务器上运行脚本是没有问题的。求指导!

    5 条回复    2019-10-15 14:30:30 +08:00
    Firxiao
        1
    Firxiao  
       2019-10-15 14:04:38 +08:00
    在启动脚本中添加 JAVA_HOME 的环境变量或者 java 命令使用绝对路径.
    linxiaohaogood
        2
    linxiaohaogood  
       2019-10-15 14:12:05 +08:00
    1. 先说结论一般是环境变量问题,可以再 ansible 执行 task 配置目标机器环境变量就可以
    参考链接: https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html

    2. 更好的建议一般使用进程管理程序来启动,不要直接前台启动,这样做法不靠谱。
    如 supervisor,systemd 可以用来做进程守护,在机器重启或者迁移后服务能自动启动
    mccreefei
        3
    mccreefei  
    OP
       2019-10-15 14:24:16 +08:00
    @Firxiao #1 配置 java 的绝对路径是可以了,感谢,但是没搞懂为什么一定要设置环境变量或者使用绝对路径,毕竟在远程服务器上是已经配置了 java 环境变量的。
    AntonChen
        4
    AntonChen  
       2019-10-15 14:30:14 +08:00 via Android
    @mccreefei #3 这个问题建议你了解一下 ssh 的 nologin 模式
    rockyou12
        5
    rockyou12  
       2019-10-15 14:30:30 +08:00
    @mccreefei linux 的环境变量问题,你自己写个 bash 脚本打印下 env 就懂了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2442 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:51 · PVG 23:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.