温馨提示×

如何批量修改ubuntu的hostname

小樊
47
2025-07-21 14:44:59
栏目: 智能运维

在Ubuntu系统中,批量修改多个主机的hostname可以通过编写脚本来实现。以下是一个简单的步骤指南,用于批量修改多个Ubuntu主机的hostname:

方法一:使用SSH和脚本

  1. 准备主机列表: 创建一个包含所有主机IP地址或主机名的文件,例如hosts_list.txt

    192.168.1.1 192.168.1.2 192.168.1.3 
  2. 编写脚本: 创建一个名为change_hostname.sh的脚本文件,内容如下:

    #!/bin/bash # 读取主机列表文件 HOST_LIST="hosts_list.txt" # 读取新的hostname NEW_HOSTNAME=$1 # 遍历主机列表并修改hostname while read -r HOST; do echo "Changing hostname for $HOST to $NEW_HOSTNAME" ssh "$HOST" "sudo hostnamectl set-hostname $NEW_HOSTNAME" ssh "$HOST" "sudo systemctl restart networking" done < "$HOST_LIST" 
  3. 赋予脚本执行权限

    chmod +x change_hostname.sh 
  4. 运行脚本

    ./change_hostname.sh new-hostname 

方法二:使用Ansible

如果你有Ansible环境,可以使用Ansible来批量修改hostname。

  1. 安装Ansible

    sudo apt update sudo apt install ansible 
  2. 创建Ansible Inventory文件: 创建一个名为hosts的文件,内容如下:

    [servers] 192.168.1.1 192.168.1.2 192.168.1.3 
  3. 编写Ansible Playbook: 创建一个名为change_hostname.yml的文件,内容如下:

    --- - name: Change hostname for multiple servers hosts: servers tasks: - name: Set new hostname command: hostnamectl set-hostname new-hostname become: yes - name: Restart networking service: name: networking state: restarted 
  4. 运行Playbook

    ansible-playbook change_hostname.yml 

注意事项

  • 确保你有足够的权限来修改远程主机的hostname。
  • 在修改hostname之前,最好备份当前的主机配置。
  • 修改hostname后,可能需要重新启动网络服务以确保更改生效。

通过以上方法,你可以轻松地批量修改多个Ubuntu主机的hostname。

0