【问题标题】:Virtual host creation while code deployment代码部署时创建虚拟主机
【发布时间】:2018-07-13 22:25:34
【问题描述】:

我正在为我的应用程序部署使用 aws 代码部署。在此,我在 appspec.yml 文件中使用了虚拟主机创建代码。它工作正常。但它也在执行第二次部署。我如何防止这种情况发生。这是我的 appspec 代码

BeforeInstall:
    - location: scripts/create_virtualhost
      timeout: 300
      runas: root
    - location: scripts/start_server
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server
      timeout: 300
      runas: root
create_virtualhost.sh 文件
 echo '<VirtualHost *:80>
    ServerAdmin test@demo.com
    DocumentRoot "/var/www/html/demo.com"
    ServerName demo.com
    ServerAlias www.demo.com
</VirtualHost>' >> /etc/httpd/conf/httpdnew.conf

【问题讨论】:

    标签: amazon-web-services aws-code-deploy


    【解决方案1】:

    我知道你不能限制钩子只执行一次。只有应用程序停止钩子不会在第一次部署时运行。所以你必须在脚本中处理这些。也许你可以做这样的事情

    create_virtualhost.sh

    #!/bin/bash
    if [ -e /etc/httpd/conf/httpdnew.conf ]
    then
        echo "vhost exists..skipping.."
    else
        echo '<VirtualHost *:80>
        ServerAdmin test@demo.com
        DocumentRoot "/var/www/html/demo.com"
        ServerName demo.com
        ServerAlias www.demo.com
        </VirtualHost>' >> /etc/httpd/conf/httpdnew.conf
    fi
    

    【讨论】:

    • httpdnew.conf 文件总是存在...所以我不能使用这个条件
    • 至于你的问题。您是在第一次部署时创建它吗?之后,您不需要创建文件。如果这就是你想要的,它会做到的。而且我不清楚您所说的“httpdnew.conf 文件始终存在”是什么意思,您是否首先尝试替换此文件?
    • 实际上是 'httpd.conf' 而不是 httpdnew.conf。它是在linux中安装lampp时创建的。即部署前文件夹中已经存在的httpd.conf文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2012-01-29
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 2015-08-22
    相关资源
    最近更新 更多