更改多个服务器的IP地址

更改多个服务器的IP地址

我有一组服务器正在移动到另一个网络。我有一个文件,其中包含主机名和相应的新 IP 地址。我研究了如何使用 Ansible 实现这一目标,但这需要每个服务器都有独特的剧本。尝试编写脚本但同样的问题。

有人可以建议例如。假设您可以 root 身份登录,如何从外部服务器更改 2 个以上服务器的 IP 地址。

Ansible 剧本是首选。

答案1

假设我们的库存中有serverAserverB和。serverC他们需要新的 IP 地址。

因此,第一步是在您的host_vars目录中创建一个以您的服务器命名的文件,并将新的 IP 地址作为变量写入其中。

文件示例host_vars/serverA

new_ip: 10.1.0.27

对相应的地址执行相同的serverB操作。serverC如果需要,您还可以将其扩展为网络接口名称。

接下来,创建一个使用先前定义的变量的剧本。这ip不存在,我只是在这里演示该变量的使用。请参阅Ansible 文档如果有适合您需要的模块,否则使用command/ shell

- name: Change IP
    hosts: serverA serverB serverC
    become: yes
    tasks:
      - name: Set new IP adress
        ip: "{{ new_ip }}"
        interface: eth0

另外,请做好失去连接的准备ansible这个问题来自SO展示如何处理该问题并保持连接运行。

相关内容