怎樣使修改的靜態主機名永久生效?
- 問題描述
Linux彈性云主機的靜態主機名來源于創建彈性云主機時,通過Cloud-init注入的用戶自定義名稱。雖然可以使用hostname命令更改Linux彈性云主機的主機名,但如果重新啟動彈性云主機,它將自動還原為使用Cloud-init注入的用戶自定義名稱。
- 在云主機內部修改主機名
雖然hostname命令可以修改Linux彈性云主機的主機名,但是,如果您希望修改后的主機名在彈性云主機關機、重啟后仍然生效,需要將其寫入相應的配置文件中,使之永久生效。
假設修改后的主機名為“new_hostname”。
步驟 1 修改配置文件“/etc/hostname”。
- 執行以下命令,編輯配置文件“/etc/hostname”。
sudo vim /etc/hostname
- 修改配置文件,將文件中的主機名替換為修改后的主機名(new_hostname)。
- 執行以下命令,保存并退出文件。
:wq
步驟 2 修改配置文件“/etc/sysconfig/network”。
- 執行以下命令,編輯配置文件“/etc/sysconfig/network”。
sudo vim /etc/sysconfig/network
- 修改涉及“HOSTNAME”的參數值,將其設置為修改后的主機名(new_hostname)。
HOSTNAME=修改后的主機名
說明:
如果配置文件中沒有HOSTNAME,請手動補充并將參數值設置為修改后的主機名。
示例:
HOSTNAME=new_hostname
- 執行以下命令,保存并退出文件。
:wq
步驟 3 修改配置文件“/etc/cloud/cloud.cfg”。
- 執行以下命令,編輯配置文件“/etc/cloud/cloud.cfg”。
sudo vim /etc/cloud/cloud.cfg
- 選擇如下方法,修改配置文件。
? 方法一:修改或添加“preserve_hostname”參數項。
如果文件“/etc/cloud/cloud.cfg”中已有參數項“preserve_hostname: false”,將其修改為“preserve_hostname: true”即可。如果文件“/etc/cloud/cloud.cfg”中沒有該參數項,需在“cloud_init_modules”模塊前,添加語句preserve_hostname: true。
選擇方法一,彈性云主機關機、重啟后,修改后的主機名(new_hostname)仍然生效。但是,如果使用該彈性云主機制作私有鏡像,并使用生成的鏡像重新創建彈性云主機,則新創建的彈性云主機的主機名即為私有鏡像使用的主機名(new_hostname),不能通過Cloud-init重新注入用戶自定義名稱。
? 方法二(推薦):刪除或者注釋語句- update_hostname。
選擇方法二,彈性云主機關機、重啟后,修改后的主機名(new_hostname)仍然生效。但是,如果使用該彈性云主機制作私有鏡像,并使用生成的鏡像重新創建彈性云主機,用戶可以通過Cloud-init注入用戶自定義名稱(如new_new_hostname),并通過本節內容長久有效地修改靜態主機名。
步驟 4 執行以下命令,重啟彈性云主機。
sudo reboot
步驟 5 執行以下命令,驗證主機名的修改是否永久生效。
sudo hostname
如果回顯的內容是修改后的主機名(new_hostname),則表示主機名修改成功,永久生效。
彈性云主機的主機名帶后綴novalocal,這正常嗎?
- 問題描述
用戶使用hostname命令查看不同鏡像的彈性云主機主機名,發現部分鏡像的彈性云主機主機名帶后綴“.novalocal”,如示例所示:
假設創建彈性云主機時,用戶自定義的主機名是“abc”,使用hostname命令查看不同鏡像下,彈性云主機的主機名以及重啟彈性云主機后的主機名,顯示結果如下表所示。
表 不同鏡像查詢的主機名
| 鏡像 | 重啟前查詢的主機名 | 重啟后再次查詢的主機名 |
|---|---|---|
| CentOS 6.8 | abc | abc.novalocal |
| CentOS 7.3 | abc.novalocal | abc.novalocal |
| Ubuntu 16 | abc | abc |
不同鏡像的彈性云主機,查詢的主機名有的帶后綴“.novalocal”,有的不帶后綴“.novalocal”,這正常嗎?
- 問題處理
正常現象。
Linux彈性云主機的靜態主機名來源于創建彈性云主機時,通過Cloud-init注入的用戶自定義名稱。經測試驗證發現,Cloud-init和不同發行版本的操作系統在配合實現上,存在差異,具體表現為:查詢的主機名有的帶后綴“.novalocal”,有的不帶后綴“.novalocal”。
如果您希望查詢到的主機名不帶后綴“.novalocal”,可以通過更改主機名進行規避,修改主機名的方法請參見怎樣使修改的靜態主機名永久生效?。
彈性云主機重啟后,主機名被還原為安裝時的主機名?
以CentOS 7操作系統的彈性云主機為例:
- 登錄Linux彈性云主機,查看“cloud-init”的配置文件。
- 檢查“/etc/cloud/cloud.cfg”文件中“update_hostname”是否被注釋或者刪除。如果沒有被注釋或者刪除,則需要注釋或刪除 “-update_hostname”語句。
說明“update_hostname”表示每次重啟時,“cloud-init”都會更新主機名。