使用 ansible 添加 ip 路由的“最佳”方法是什么?

问题描述 投票:0回答:1

我找不到添加 ip 路由的 ansible 模块。

基本上我正在寻找的命令应该允许类似的命令:

sudo ip route add 12.3.4.0/24 via 123.456.78.90

我发现 net_static_route_module 似乎相关,但自 2022 年 6 月 1 日起已弃用。

一个简单的解决方案是:

- name: Add a route
  ansible.builtin.shell:
    cmd: sudo ip route add 12.3.4.0/24 via 123.456.78.90

当然,但内置模块通常更好。

其他信息

此任务将在所有节点的子集上执行(ubuntu 22.04 机器都是使用 openstack 的云集群的一部分)(由组指定)。具体子网和 IP 将使用变量定义。

示例主机文件可能如下所示:

master:
  hosts:
    localhost:
      ansible_connection: local
      ansible_python_interpreter: /usr/bin/python3
      ansible_user: ubuntu
      ip: localhost
workers:
  children:
    ephemeral:
      hosts: {}
  hosts:
    someworker:
      ansible_connection: ssh
      ansible_python_interpreter: /usr/bin/python3
      ansible_user: ubuntu

此剧本将用于设置 wireguard。每个VPN节点(这些节点将通过wireguard相互连接)都在其自己的子网中与多个工作节点连接。这些工作人员需要添加 ip 路由才能返回到位于不同子网中的主节点,但位于由wireguard 和 vpn 节点创建的同一虚拟子网中)。我认为这与我的问题无关,但我可能会忽略这如何影响正确的答案。

ansible
1个回答
0
投票

由于投反对票,答案计划删除...


从您的描述中,我了解到您喜欢在基于 Linux 的操作系统(Debian/GNU Linux、Ubuntu 22.04)上配置网络路由设置,而不是在专用路由器或交换机上。

其中提到的模块

net_static_route
用于提供

...网络设备(路由器、交换机等)上静态 IP 路由的声明式管理。

并已被弃用

删除于: 2022-06-01 之后的主要版本
原因:发布了具有更多功能的更新模块
替代方案:使用特定于平台的

[netos]_static_route
模块

它进一步建议使用供应商和平台特定的模块。

某些 Linux 发行版倾向于集成和使用 NetworkManager 来创建和管理网络连接。

文档

因此相应的 Ansible 模块是

nmcli
模块 – 管理网络。您可以查看参数示例,尤其是
route*
的参数。

进一步阅读

有关更多示例,请查看

© www.soinside.com 2019 - 2024. All rights reserved.