【问题标题】:How do I design a Bootup script for setting up an apache web server running on a brand new AWS EC2 Ubuntu instance?如何设计启动脚本以设置在全新 AWS EC2 Ubuntu 实例上运行的 apache Web 服务器?
【发布时间】:2023-04-09 02:54:01
【问题描述】:

我想配置一个 EC2 实例,以便它在没有我(人工)干预的情况下安装、配置和启动 Apache Web 服务器。

为此,我利用“用户数据”部分并编写了以下脚本:

#!/bin/bash
sudo apt-get upgrade
sudo apt-get install -y apache2
sudo apt-get install -y awscli
while [ ! -e /tmp/index.html ]; do  aws s3 cp s3://vietnhi-s-bucket/index.html /var/www/html; done
sudo systemctl restart apache2

启动脚本功能说明:

该脚本强制更新 Ubuntu 实例,无论是从 AMI 映像的创建日期到今天,从该映像创建 EC2 实例的日期。

脚本安装 Apache 2 服务器。

脚本安装 AWS CLI 界面。因为没有 AWS CLI 界面,下一行的 aws s3 cp 命令将无法工作。

脚本将示例 index.html 文件从 vietnhi-s-bucket S3 存储桶复制到 Apache Web 服务器的 /var/www/html 目录并覆盖其默认 index.html 文件。

脚本重新启动 Apache Web 服务器。我本可以使用“开始”,但我选择使用“重启”。

注释:

  1. 该脚本假定我创建了一个 IAM 角色,该角色允许 AWS 从名为“vietnhi-s-bucket”的 S3 存储桶中复制文件 index.html。我已将名称“S3”分配给 IAM 角色,并将“S3ReadAccess”策略分配给该角色。
  2. 该脚本假定我已经创建了一个名为“vietnhi-s-bucket”的 S3 存储桶,其中存储了一个示例 index.html 文件。
  3. 作为参考,这里是示例 index.html 文件的内容:

    [html] [身体] 这是一个测验 [/身体] [/html]

启动脚本是否按预期工作?

【问题讨论】:

  • 问题是?

标签: apache amazon-web-services amazon-s3 amazon-ec2


【解决方案1】:

脚本按原样运行。

要完成这个剧本,我必须克服三个挑战:

  1. 创建适当的 IAM 角色。最小可行角色必须包含“S3ReadAccess”策略。这个角色对于 AWS 能够使用您的 AWS 账户的公有和私有访问密钥以及加载在您的环境中是绝对必要的。如果 AWS 无权访问您的 AWS 账户密钥,则无法从 Vietnhi-s-bucket S3 存储桶复制 index.html 文件。
  2. 安装 AWS CLI 界面 (awscli)。无论出于何种原因,我从未在任何 AWS 官方文档或包括 AWS 论坛在内的网络上提供的任何支持中看到该行。如果您不安装 AWS CLI 界面,则无法运行 AWS CLI s3 cp 命令。
  3. 我最初使用“aws s3 cp s3://vietnhi-s-bucket/index.html /var/www/html”作为我的原始从 S3 复制指令。坏电话。 https://forums.aws.amazon.com/thread.jspa?threadID=220187

上面的链接指的是 AWS 尚未解决的时间问题,唯一的解决方法是围绕 aws s3 cp 命令进行重试。

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2023-03-17
    • 2018-08-30
    • 2015-06-18
    • 2022-10-09
    • 2017-10-25
    • 2023-04-07
    • 2022-08-22
    • 2014-09-19
    相关资源
    最近更新 更多