• 请不要在回答技术问题时复制粘贴 AI 生成的内容
mccreefei
V2EX  ›  程序员

Ansible 问题求助!

  •  
  •   mccreefei · Oct 15, 2019 · 2431 views
    This topic created in 2408 days ago, the information mentioned may be changed or developed.

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

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

    2. 更好的建议一般使用进程管理程序来启动,不要直接前台启动,这样做法不靠谱。
    如 supervisor,systemd 可以用来做进程守护,在机器重启或者迁移后服务能自动启动
    mccreefei
        3
    mccreefei  
    OP
       Oct 15, 2019
    @Firxiao #1 配置 java 的绝对路径是可以了,感谢,但是没搞懂为什么一定要设置环境变量或者使用绝对路径,毕竟在远程服务器上是已经配置了 java 环境变量的。
    AntonChen
        4
    AntonChen  
       Oct 15, 2019 via Android
    @mccreefei #3 这个问题建议你了解一下 ssh 的 nologin 模式
    rockyou12
        5
    rockyou12  
       Oct 15, 2019
    @mccreefei linux 的环境变量问题,你自己写个 bash 脚本打印下 env 就懂了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3616 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 04:39 · PVG 12:39 · LAX 21:39 · JFK 00:39
    ♥ Do have faith in what you're doing.