代码之家  ›  专栏  ›  技术社区  ›  Justin

无法让“remote exec”启动tomcat

  •  -1
  • Justin  · 技术社区  · 7 年前

    在配置实例时,我使用“remote exec”执行一些命令,然后通过terraform启动tomcat实例。看起来像这样:

    resource "null_resource" "mount_fss_on_DFSrvr" {
    depends_on = ["oci_core_instance.DFSrvr",
      "oci_file_storage_export.export_FileListener_FileListenerMount",
    ]
    
    count = "${var.proddfsrvr_count}"
    
    provisioner "remote-exec" {
      connection {
        agent       = false
        timeout     = "15m"
        host        = "${oci_core_instance.DFSrvr.*.public_ip[count.index % var.proddfsrvr_count]}"
        user        = "opc"
        private_key = "${file(var.ssh_private_key)}"
      }
    
      inline = [
       "some commands",
        "./catalina.sh start",
        "exit"
      ]
    }
    

    }

    输出显示Tomcat已经启动,但是当我查看实例时,日志显示它还没有启动(没有日志记录)。我可以ssh到实例并运行“./catalina.sh start”,它运行得很好。我还尝试创建一个服务,并在remote exec inline命令中运行“sudo service tomee start”而不是“../catalina.sh start”,但这也不起作用。我在这里做错什么了?

      null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_BASE:   /apache-tomee-plus-7.0.4
    null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_HOME:   /apache-tomee-plus-7.0.4
    null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_TMPDIR: /apache-tomee-plus-7.0.4/temp
    null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using JRE_HOME:        /usr
    null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CLASSPATH:       /apache-tomee-plus-7.0.4/bin/bootstrap.jar:/apache-tomee-plus-7.0.4/bin/tomcat-juli.jar
    null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Tomcat started.
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   user3651225    7 年前

    试着给它绝对的路径而不是 ./ 有点像 source ~/tmp/catalina.sh . 它可能不会从你想的地方开始。

    第二,移除 exit 线。在安装完成之前,它可能正在退出。有些事情在写入磁盘之前就完成了。你也可以试试 source ~/path/catalina; sync

    另外,这需要sudo权限吗?

        2
  •  0
  •   Kishore T    7 年前

    我也有同样的问题,但在运行python web应用程序时。我想这里的问题是,当您通过remote exec运行命令时,一旦完成,它就会退出shell。因此,当您通过ssh进入机器时,它会通过一个新的shell打开,您应该在命令前面加上nohup前缀,我相信这会起到作用。不过,那是为了我。如果希望它在后台运行并从远程exec中出来,请使用。 另外,您可能希望在内联命令中添加一个“sleep 20”,这将使tomcat有时间在provisioner退出之前启动。

    内联= “一些命令”, “nohup./catalina.sh开始”, “睡眠20”, ]