在Ubuntu系统中,批量修改多个主机的hostname可以通过编写脚本来实现。以下是一个简单的步骤指南,用于批量修改多个Ubuntu主机的hostname:
方法一:使用SSH和脚本
-
准备主机列表:
创建一个包含所有主机IP地址或主机名的文件,例如hosts_list.txt。192.168.1.1 192.168.1.2 192.168.1.3 -
编写脚本:
创建一个名为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" -
赋予脚本执行权限:
chmod +x change_hostname.sh -
运行脚本:
./change_hostname.sh new-hostname
方法二:使用Ansible
如果你有Ansible环境,可以使用Ansible来批量修改hostname。
-
安装Ansible:
sudo apt update sudo apt install ansible -
创建Ansible Inventory文件:
创建一个名为hosts的文件,内容如下:[servers] 192.168.1.1 192.168.1.2 192.168.1.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 -
运行Playbook:
ansible-playbook change_hostname.yml
注意事项
- 确保你有足够的权限来修改远程主机的hostname。
- 在修改hostname之前,最好备份当前的主机配置。
- 修改hostname后,可能需要重新启动网络服务以确保更改生效。
通过以上方法,你可以轻松地批量修改多个Ubuntu主机的hostname。