如何批量修改Linux hostname

如何批量修改Linux hostname

本文介紹兩種在linux系統中批量修改主機名的方法:使用shell腳本ansible

方法一:使用Shell腳本批量修改主機名

此方法適用于少量主機。

步驟1:準備主機列表

創建一個文本文件(例如hosts.txt),每行包含一個主機名:

host1 host2 host3

步驟2:編寫Shell腳本

創建一個Shell腳本(例如change_hostname.sh),內容如下:

#!/bin/bash  while read -r host; do   read -p "請輸入新的主機名 for $host: " new_hostname   ssh user@$host "sudo hostnamectl set-hostname $new_hostname" done < hosts.txt 

將user替換為你的用戶名。確保已配置SSH密鑰免密登錄。

步驟3:賦予腳本執行權限

chmod +x change_hostname.sh

步驟4:運行腳本

./change_hostname.sh

腳本將依次提示你輸入每個主機的新主機名。

方法二:使用Ansible批量修改主機名 (推薦)

Ansible更適合管理大量主機。

步驟1:安裝Ansible

在你的控制節點上安裝Ansible。

步驟2:編寫Ansible playbook

創建一個Ansible playbook文件(例如change_hostname.yml):

--- - hosts: all   tasks:     - name: 修改主機名       hostname:         name: "{{ inventory_hostname }}"

步驟3:配置Ansible inventory

創建一個Ansible inventory文件(例如hosts),列出所有需要修改主機名的主機:

[all] host1 host2 host3

步驟4:運行Ansible playbook

ansible-playbook change_hostname.yml

Ansible將連接到所有指定主機并修改其主機名。

注意事項:

  • 權限: 確保你有權限通過SSH訪問所有目標主機,并且目標主機上允許使用sudo命令。
  • 網絡連接: 確保所有主機都能互相通信。
  • 備份: 修改主機名前,建議備份相關配置文件。
  • Ansible配置: 確保Ansible已正確配置,并且你的控制節點可以無密碼訪問所有目標主機。

選擇哪種方法取決于你的主機數量和管理經驗。對于少量主機,Shell腳本足夠;對于大量主機,Ansible更有效率和易于管理。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享