簡體   English   中英

如何設計用於設置在全新AWS EC2 Ubuntu實例上運行的apache Web服務器的啟動腳本?

[英]How do I design a Bootup script for setting up an apache web server running on a brand new AWS EC2 Ubuntu instance?

我想配置一個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映像創建之日起的任何日期更新到從鏡像創建EC2實例之日起的Ubuntu實例。

該腳本將安裝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。 我已經給IAM角色命名了“ S3”,並為該角色分配了“ S3ReadAccess”策略。
  2. 該腳本假定我已經創建了一個名為“ vietnhi-s-bucket”的S3存儲桶,其中存放了一個示例index.html文件。
  3. 作為參考,以下是示例index.html文件的內容:

    [html] [body]這是一個測試[/ body] [/ html]

啟動腳本是否按預期工作?

腳本按原樣工作。

為了獲得該腳本,我必須克服三個挑戰:

  1. 創建一個適當的IAM角色。 最低可行角色必須包括“ S3ReadAccess”策略。 要使AWS能夠使用您的AWS賬戶以及環境中加載的公共和私有訪問密鑰,此角色是絕對必要的。 如果AWS無法訪問您的AWS賬戶密鑰,則無法從Vietnhi-s-bucket S3存儲桶復制index.html文件。
  2. 安裝AWS CLI界面(awscli)。 無論出於什么原因,我都從未見過任何AWS官方文檔或Web上提供的任何支持(包括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命令周圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM