溫馨提示×

Ubuntu主機名如何同步

小樊
49
2025-10-03 19:35:55
欄目: 云計算

Ubuntu主機名同步方法

一、單臺Ubuntu主機名同步(永久生效)

要同步Ubuntu主機的主機名(即永久修改并確保各配置文件一致),需通過以下步驟操作:

1. 使用hostnamectl命令設置主機名(推薦)

hostnamectl是systemd提供的工具,可同時更新內核主機名、動態主機名及/etc/hostname文件,無需重啟即可生效(部分服務可能需要重啟)。

sudo hostnamectl set-hostname new-hostname  # 將"new-hostname"替換為目標主機名

2. 手動同步/etc/hostname文件

/etc/hostname是Ubuntu存儲靜態主機名的核心文件,需確保其內容與hostnamectl設置的一致:

sudo nano /etc/hostname  # 刪除舊主機名,寫入"new-hostname",保存退出

3. 更新/etc/hosts文件

/etc/hosts文件用于本地主機名解析,需將舊主機名替換為新主機名(避免網絡服務無法識別):

sudo nano /etc/hosts  # 找到"127.0.1.1"或"127.0.0.1"行,將舊主機名替換為"new-hostname"
# 示例:127.0.1.1 new-hostname

4. 重啟網絡服務(可選)

若系統使用networking服務或NetworkManager,重啟服務可使更改立即生效:

sudo systemctl restart networking  # 適用于傳統networking服務
# 或
sudo systemctl restart NetworkManager  # 適用于NetworkManager

5. 驗證主機名

通過以下命令確認主機名已同步:

hostnamectl  # 顯示詳細主機名信息(靜態/動態/靈活主機名)
hostname     # 僅顯示當前主機名

二、多臺Ubuntu主機批量同步主機名(自動化)

若需在多臺Ubuntu主機間同步主機名(如集群環境),可使用配置管理工具Ansible自動化操作,避免手動重復執行:

1. 安裝Ansible

在控制節點(管理主機)上安裝Ansible:

sudo apt update
sudo apt install ansible -y

2. 創建Ansible Playbook

新建sync_hostname.yml文件,定義主機名同步任務:

---
- hosts: all  # 目標主機組(需在ansible inventory文件中定義)
  become: yes  # 以root權限執行
  tasks:
    - name: Set new hostname
      hostname:
        name: new-hostname  # 替換為目標主機名
      notify:
        - restart networking

  handlers:
    - name: restart networking
      systemd:
        name: networking
        state: restarted

3. 運行Playbook

通過以下命令執行同步(需提前配置目標主機的SSH免密登錄):

ansible-playbook sync_hostname.yml

注意事項

  • 權限要求:所有修改操作需使用sudo或root權限。
  • 網絡服務影響:修改主機名后,若主機名被其他服務(如Docker、Nginx)依賴,建議重啟相關服務或系統。
  • 一致性檢查:確保/etc/hostname、/etc/hostshostnamectl顯示的主機名完全一致,避免解析錯誤。
  • 自動化擴展:Ansible支持批量管理多臺主機,可通過inventory文件定義主機列表,實現大規模主機名同步。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女