温馨提示×

怎样批量修改ubuntu的hostname

小樊
53
2025-08-31 14:46:12
栏目: 智能运维

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

方法一:使用Ansible自动化工具

如果你熟悉Ansible,可以使用它来批量修改hostname。

  1. 安装Ansible: 在控制节点上安装Ansible。

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

    ---
    - hosts: all
      become: yes
      tasks:
        - name: Set new hostname
          hostname:
            name: "{{ item }}"
          loop: "{{ hostnames }}"
    

    其中,hostnames是一个包含新主机名的列表。

  3. 运行Ansible Playbook: 在控制节点上运行以下命令,传入新主机名列表:

    ansible-playbook -i inventory_file change_hostname.yml --extra-vars "hostnames='new-hostname1 new-hostname2 new-hostname3'"
    

    其中,inventory_file是你的主机清单文件。

方法二:使用SSH和脚本

如果你不想使用Ansible,可以使用SSH和脚本来批量修改hostname。

  1. 创建脚本: 创建一个名为change_hostname.sh的脚本,内容如下:

    #!/bin/bash
    
    # 新主机名列表
    hostnames=("new-hostname1" "new-hostname2" "new-hostname3")
    
    # SSH连接信息
    ssh_user="your_ssh_user"
    ssh_host="your_ssh_host"
    
    # 循环修改每个主机的hostname
    for hostname in "${hostnames[@]}"; do
      ssh -o StrictHostKeyChecking=no "$ssh_user@$ssh_host" "sudo hostnamectl set-hostname $hostname"
    done
    
  2. 赋予脚本执行权限

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

    ./change_hostname.sh
    

方法三:使用Puppet

如果你熟悉Puppet,也可以使用它来批量修改hostname。

  1. 安装Puppet: 在控制节点上安装Puppet。

    sudo apt update
    sudo apt install puppet
    
  2. 创建Puppet Manifest: 创建一个名为change_hostname.pp的文件,内容如下:

    class change_hostname {
      $hostnames = ['new-hostname1', 'new-hostname2', 'new-hostname3']
    
      host { $hostnames:
        ensure => present,
        name   => $hostname,
      }
    }
    
    node 'your_node_name' {
      include change_hostname
    }
    
  3. 应用Puppet Manifest: 在控制节点上运行以下命令:

    puppet apply change_hostname.pp
    

注意事项

  • 在修改hostname之前,确保你有足够的权限(通常是root权限)。
  • 修改hostname可能会影响正在运行的服务和应用程序,建议在非高峰时段进行操作。
  • 确保所有主机都已经配置好SSH无密码登录,以便脚本能够顺利执行。

通过以上方法,你可以批量修改Ubuntu主机的hostname。选择适合你的工具和方法进行操作即可。

0