我變更了我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的主機名稱。但是,當我重新開機或停止然後啟動執行個體時,主機名稱會變回。
簡短描述
若要在重新開機或停止並啟動 EC2 執行個體時保留主機名稱,請將主機名稱新增至執行個體上的適當組態檔案。
注意: 下列步驟適用於 RHEL 7 或 CentOS 7。如需適用於其他發行版的指示,請參閱下列其中一項:
變更系統主機名稱
如何將靜態主機名稱指派給執行 RHEL 5 或 6、CentOS 5 或 6 或 Amazon Linux 的 Amazon EC2 執行個體?
如何將靜態主機名稱指派給執行 SLES 的 Amazon EC2 執行個體?
如何將靜態主機名稱指派給執行 Ubuntu Linux 的 Amazon EC2 執行個體?
解決方法
1. 從 Shell 執行 hostnamectl 命令來更新您的 RHEL 7 或 CentOS 7 Linux 執行個體的主機名稱。將 persistent-hostname 取代為您希望執行個體使用的名稱:
sudo hostnamectl set-hostname --static persistent-hostname
注意: 使用 hostnamectl 命令變更主機名稱並不會更新 /etc/hosts 檔案。但是,如有必要,您可以手動編輯此檔案以新增主機名稱。
2. 使用 vi 文字編輯器來更新您的 RHEL 7 或 CentOS 7 Linux 執行個體上的 /etc/cloud/cloud.cfg 檔案。如需有關使用 vi 編輯器的一般資訊,請從命令 Shell 執行命令 info vi:
注意: 對於執行 RHEL 7.4 及更新版本的執行個體,請略過此步驟。
sudo vi /etc/cloud/cloud.cfg
3. 將下列字串新增至 /etc/cloud/cloud.cfg 檔案的底部,以確保在重新啟動和重新開機之間保留新的主機名稱:
preserve_hostname: true
儲存並結束 vi 編輯器。
4. 執行 reboot 命令以使 EC2 執行個體重新開機,並將新的主機名稱與執行個體關聯:
sudo reboot
5. 執行不含任何參數的 Linux hostname 命令,以驗證主機名稱變更是否已保存:
hostname
此命令會傳回您在步驟 1 中指定的新主機名稱。
注意: 如果您安裝的任何系統更新會影響 /etc/hosts 檔案、主機名稱檔案或主機名稱公用程式 (在 Ubuntu 網站上),則必須再次執行這些步驟。