Ubuntu

AWS 上的 cloud-init:映像和重建後掛載消失

  • September 21, 2015

我正在使用 cloud-init 自動準備 AWS 映像 (AMI) 以在生產環境中使用 - 這樣我可以在原始碼控制系統中跟踪環境設置過程,但是當我需要時可以跳過那個冗長的過程新的生產伺服器。

所以過程如下:

  1. 使用 cloud-init 文件啟動新的基礎映像(Ubuntu 14.04 cloud-image)
  2. 等待 cloud-init 完成,然後從正在執行的實例創建一個映像,然後終止它
  3. 為了啟動一個新的生產伺服器,我使用一個小型 cloud-init 從 AMI 啟動並執行最終配置(設置正確的主機名、部署軟體等)。

我遇到的問題是第一個 cloud-init 配置文件使用disk_setup, 和mounts模組來掛載 EBS 卷。完成後,實例已/etc/fstab更新,一切正常。但是,在執行第 3 步之後,生成的實例已正確附加並安裝了 EBS 卷(實際上是它的副本),但/etc/fstab不包含該卷的安裝。幸運的是,在第 3 步之後我沒有重新啟動,但我可能會破壞伺服器。

知道發生了什麼嗎?我沒有mounts在步驟 3 的 cloud-init 配置中使用,但為什麼它不保留fstab圖像中的設置?

我無法真正解釋您遇到的行為,但 AWS 本身建議您不要使用 fstab 條目,而是使用 RC 初始化腳本。請參閱下面來自Cindy@AWS的報價。這個論壇文章雖然很老,但並不能真正解決您遇到的同一問題,但也許這樣做也可以解決您的問題。

我建議考慮使用 RC 初始化腳本,而不是為此目的使用 fstab(對於 EC2 實例)。如果 fstab 中列出的設備無法掛載,那麼這將停止引導過程,您將無法 ssh 進入實例。相反,使用 RC 腳本可能會發生“軟故障”,因此您仍然可以通過 ssh 登錄然後修復問題。

來源:https ://forums.aws.amazon.com/message.jspa?messageID=304528#304549

引用自:https://serverfault.com/questions/648615