AWS弹性beanstalk:在部署

时间:2018-03-08 20:16:02

标签: amazon-web-services amazon-ec2 elastic-beanstalk amazon-elastic-beanstalk

我需要在我的网络服务器上安装LibreOffice。由于我正在使用AWS Elastic Beanstalk进行自动扩展,因此我需要在部署时安装它。为此,我使用.ebextensions文件,但无法使其工作。这是.ebextensions文件夹中的配置文件:

commands:
  01-download-libreoffice:
    command: wget http://download.documentfoundation.org/libreoffice/stable/6.0.2/rpm/x86_64/LibreOffice_6.0.2_Linux_x86-64_rpm.tar.gz
  02-untar:
    command: sudo tar -xvf LibreOffice_6.0.2_Linux_x86-64_rpm.tar.gz
  03-install:
    command: |
      if [ ${APP_ENV} == "production" ]; then
        cd LibreOffice_6.0.2.1_Linux_x86-64_rpm/RPMS
        sudo yum localinstall *.rpm
      fi
  04-symlink:
    command: sudo ln -fs /opt/libreoffice6.0/program/soffice /usr/bin/soffice

我尝试在我的ec2-instance上以root用户身份自己运行这些命令,一切正常。我唯一怀疑的是:当我运行localinstall命令时,我需要确认(有一个[y / n]提示符)来启动安装。

如果这是问题,我想我仍然会在我的服务器上找到一个压缩的LibreOffice文件,甚至找不到解压缩的LibreOffice文件,但是当我在部署后进入ec2实例时,我找不到任何东西。

部署时没有错误消息。此外,我可以看到其他.ebextensions脚本运行正常,因为某些进程正在按照这些脚本中的要求运行。

知道问题出在哪里?

1 个答案:

答案 0 :(得分:1)

如果它可以提供任何帮助,以下是我在部署时在我的EC2实例上安装Libreoffice的方法。这将在/opt/libreoffice5.4

中安装libreoffice 5.4

以下代码放在此文件中:.ebextensions / 01-libreoffice-setup.config

packages:
  yum:
    libXinerama.x86_64: []
    cups-libs: []
    dbus-glib: []
commands:
  01-download-libreoffice:
    command: wget http://download.documentfoundation.org/libreoffice/stable/5.4.6/rpm/x86_64/LibreOffice_5.4.6_Linux_x86-64_rpm.tar.gz
    cwd: /tmp
    test: "[ ! -f /tmp/LibreOffice_5.4.6_Linux_x86-64_rpm.tar.gz ]"
  02-untar:
    command: sudo tar -xvf LibreOffice_5.4.6_Linux_x86-64_rpm.tar.gz
    cwd: /tmp
    test: "[ ! -d /tmp/LibreOffice_5.4.6.2_Linux_x86-64_rpm ]"
  03-install:
    command: sudo yum localinstall *.rpm -y
    cwd: /tmp/LibreOffice_5.4.6.2_Linux_x86-64_rpm/RPMS
    test: "[ ! -d /opt/libreoffice5.4 ]"