当前位置: 首页 > 知识库问答 >
问题:

如何在亚马逊弹性豆茎中安装和启用服务?

卫建义
2023-03-14

我正在把头撞到墙上,试图安装然后启用弹性豆茎的服务。我想做的是:

>

  • /etc/init.d 中安装一个服务,该服务指向 /opt/python/当前/应用程序/ 中的 python 应用程序

    让Elastic Beanstek启动并保持服务的活动状态,如. eb扩展/myapp.config文件中指定的。

    (参考:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#customize-容器格式服务)

    这是我的. eb扩展/myapp.config文件:

    container_commands:
      01_copy_service:
        command: "cp /opt/python/ondeck/app/my_service /etc/init.d/"
      02_chmod_service:
        command: "chmod +x /etc/init.d/my_service"
    
    services:
      sysvinit:
        my_service:
          enabled: true
          ensureRunning: true
          files : [/etc/init.d/my_service]
    

    此操作将失败,因为服务在container_commands之前运行。如果我注释掉服务,部署,然后取消注释服务,然后再次部署,它将起作用。但是我想要一个单步部署,因为这将是一个自动缩放的节点。

    有解决方案吗?谢谢!

  • 共有3个答案

    太叔俊侠
    2023-03-14

    我自己还没做过,但我想给你一些可行的想法。这只是方便和工作流程的问题。

    由于它不是真正的应用程序文件,而是EC2文件,并且不太可能经常更改,因此您可以执行以下操作之一:

    • 使用文件内容创建服务初始化脚本。您甚至可以为该脚本提供特定的配置文件。
    • 在 S3 上存储服务初始化脚本,并使用命令复制内容。
    • 创建虚拟服务脚本,将内容替换为部署中的内容,其中包含容器命令,并依赖于上述命令来提供服务。
    • (这个很重)创建自定义 AMI 并在自动缩放配置中指定它。

    希望有帮助。

    於子晋
    2023-03-14

    通过使用< code>services:键下的< code>commands:键,可以使服务在命令运行后重新启动。< code>services:键的文档在此处:

    http://docs . AWS . Amazon . com/elasticbeanstalk/latest/DG/customize-containers-ec2 . html # customize-containers-format-services

    堵宪
    2023-03-14

    内特,我有和你完全一样的情况,我是这样解决的:

    删除“服务”部分并添加“重启”命令。

    container_commands:
      ...
      03_restart_service:
        command: /sbin/service my_service restart
    
     类似资料:
    • 我正在尝试从Jenkins工作以编程方式部署到Amazon Elastic Beanstek。在我的开发机器上,这很简单: 在Jenkins,它应该像配置以下构建命令一样简单: 但是,这将失败,并显示以下跟踪信息: 不清楚为什么会发生这种情况,因为当我在项目的本地副本上运行上述操作时,它工作正常。 错误消息似乎没有多大帮助。不清楚为什么在Jenkins的机器上找不到eb-cli。 因此,再次总结我

    • 我试图在AWS弹性豆茎上部署我的应用程序。我得到了这个错误,完全看不出问题在哪里。 以下是 在几次尝试之后,我发现了一些事情 上面的配置文件似乎在root中的之后运行 无法安装这些包(如上所述),但我可以通过进入EC2实例的来安装(奇怪) 的问题是,要安装,我需要上述软件包。那么,如何首先安装它们? 当我运行这些设置时,我得到以下错误: 然后,我使用了下面的设置 packages:yum:pyth

    • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

    • 我将在AWS上构建微服务的体系结构,我想请你们澄清我的疑问。 我目前的一般概念 我想使用API网关,它公开在Elastic Beanstalk中运行的MicroDevices API。我想将Elastic Beanstalk放置在VPC中,而不直接从Internet访问其实例。 问题 弹性豆茎在应用程序创建时获得子域。这个子域应该由集成类型为AWS服务的API网关在操作配置中使用-我说得对吗? 什

    • 我正在尝试在弹性豆茎上有一个节点js应用程序。在亚马逊 Linux 映像上,环境被创建并运行平稳。为了完成它,我遵循了AWS文档本身中的说明。它适用于单个实例。此外,使用Nginx并按照此处的信息终止了实例上的HTTPS该应用程序的根目录包含: <李>。ebextensions < li>index.js < li>package.json 通过按照 AWS 文档中给出的所有这些说明逐步创建环境并

    • 我需要将一些配置传递给我的Spring Boot应用程序,它是使用弹性豆茎部署的。 不幸的是,我需要在不重新编译工件的情况下更新这些变量,所以我想使用带下划线符号的大写字母(http://docs . AWS . Amazon . com/elastic beanstalk/latest/DG/Java-configuration . html)。不幸的是,配置要复杂得多,事实上我正在尝试将对象数