在Ubuntu系统中,批量修改多个主机的hostname可以通过编写脚本来实现。以下是一个简单的步骤指南,用于批量修改多个Ubuntu主机的hostname:
准备主机列表: 创建一个包含所有主机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来批量修改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 通过以上方法,你可以轻松地批量修改多个Ubuntu主机的hostname。