我们想听听您的意见!帮助我们了解 Ansible 生态系统的现状。
参加 2024 年 Ansible 项目调查




Ansible 社区指导委员会

Ansible 社区指导委员会

众所周知,Ansible 是一个适用于 IT 基础设施端到端自动化的工具。与此同时,由于项目中新增了功能和发展,Ansible 社区正以前所未有的速度增长。为了帮助构建项目结构并促进方向转变,我们正在为Ansible 社区项目启动一个指导委员会

指导委员会的职责是提供指导、建议并确保 Ansible 社区包的交付。该委员会应广泛代表规划和审批领域。

最初的指导委员会成员是根据他们对 Ansible 项目的广泛了解和积极贡献而选出的,他们是

  • Toshio Kuratomi (abadger1999)
  • Felix Fontein (felixfontein)
  • Tadej Borovšak (tadeboro)
  • James Cassell (cyberpear)
  • John Barker (gundalow)
  • Andrew Klychkov (andersson007_)
  • Alicia Cozine (acozine)
  • Sorin Sbarnea (zbr)
  • Jill Rouleau (jillr)
  • Brad Thornton (cidrblock)
  • Dylan Silva (thaumos)

委员会成员将与社区用户以及 Red Hat 内部的 Ansible 团队合作,协助编写想法提案/新集合包含请求。指导委员会成员的职责不是代表特定利益或观点,而是认真倾听社区成员的意见,进行讨论、培训、指导并帮助他们以对社区最有利的方向塑造 Ansible 上游项目。

以下是 Ansible 社区指导委员会成员的当前职责

  • 为集合世界设计政策和程序。
  • 审查内容(目前是集合)是否符合政策。
  • 帮助创建社区交付成果(community.general 集合、community.network 集合、ansible-tarball、社区文档网站)。
  • 对新提案和政策更改进行投票表决。
  • 识别并培训对贡献 Ansible 感兴趣的社区成员。

成为 Ansible 社区的催化剂

我们鼓励所有 Ansible 用户参加每周在 libera.chat 上的 #ansible-community IRC 频道举行的公开 Ansible 社区会议,时间为每周星期三 18:00 UTC。 

此外,我们之前使用过一个 GitHub 问题 - 社区工作组会议议程 - 用于跟踪每周 Ansible 社区 IRC 会议的议题。展望未来,为了单独跟踪和分类每个主题,我们创建了一个新的 GitHub 存储库 community-topics。要讨论一个想法、建议改进或提交新的政策/提案和新集合包含请求,您将在 repo 中创建一个新问题 作为主题,它将在每周的 IRC 会议上公开讨论。每次会议结束后,会议记录/摘要和会议日志将发布到原始问题 中。

指导委员会将为所有感兴趣的人提供机会进行贡献和审查,并将为所有感兴趣的人提供机会在会议期间发表任何想法。










Ansible 网络资源 Purge 参数

Ansible 网络资源 Purge 参数

Red Hat Ansible 网络自动化一直是 Red Hat Ansible Automation Platform 的热门领域。我们不断开发额外的资源模块,使网络设备的自动化更容易,更易于新手和专家使用。这些资源模块在多个网络供应商中提供一致的体验。资源模块有七个主要的 state 参数:merged、replaced、overridden、deleted、gathered、rendered 和 parsed。Ansible 网络团队正在为资源模块的工具箱添加一个额外的参数 purged。这篇博文将介绍 purged 参数,并通过一个实际示例展示其用例。

network purge blog one

在本示例中,我们将使用两个 BGP 资源模块来配置 Cisco 网络设备。我们将使用 bgp_global 模块和 bgp_address_family 模块。BGP 配置被分成这两个单独的模块,以便简化配置和与之相关的模型数据。

让我们从一个数据模型开始

bgp_global:
    as_number: '65000'
    bgp:
        log_neighbor_changes: true
        router_id:
            address: 192.168.1.1
    neighbor:
    -   activate: true
        address: 10.200.200.2
        remote_as: 65001
bgp_address_family:
    address_family:
    -   afi: ipv4
        neighbor:
        -   activate: true
            address: 10.200.200.2
        network:
        -   address: 10.25.25.0
            mask: 255.255.255.0
        -   address: 10.25.26.0
            mask: 255.255.255.0
        -   address: 10.100.100.0
            mask: 255.255.255.0
        -   address: 10.200.200.0
            mask: 255.255.255.0
        -   address: 172.16.0.0
        -   address: 192.168.1.1
            mask: 255.255.255.255
    as_number: '65000’

注意:如果您不熟悉资源模块,可以使用 state: gathered 参数快速创建这些数据模型,以读取现有的(已配置的)网络设备并将其配置保存到结构化数据(例如 YAML)中 

我们可以使用一个简单的 Ansible Playbook 将此数据模型配置推送到我们的 Cisco 网络设备

---
- name: configure BGP for blog
  hosts: cisco
  gather_facts: false
  tasks:
  - name: Use the bgp_global resource module
    cisco.ios.ios_bgp_global:
      config: "{{ bgp_global }}"

  - name: Use the bgp_address_family
    cisco.ios.ios_bgp_address_family:
      config: "{{ bgp_address_family }}

您可以直接从 Github 上复制此 Playbook 

要执行 Playbook

ansible-playbook merge_ios_bgp.yaml

输出将类似于以下内容

network purge blog two

最后,让我们看一下 Cisco IOS 网络设备上生成的配置

rtr1#sh run | s router bgp
router bgp 65000
 bgp router-id 192.168.1.1
 bgp log-neighbor-changes
 neighbor 10.200.200.2 remote-as 65001
 !
 address-family ipv4
  network 10.25.25.0 mask 255.255.255.0
  network 10.25.26.0 mask 255.255.255.0
  network 10.100.100.0 mask 255.255.255.0
  network 10.200.200.0 mask 255.255.255.0
  network 172.16.0.0
  network 192.168.1.1 mask 255.255.255.255
  neighbor 10.200.200.2 activate
 exit-address-family

因此,最终最简单的方法是使用新的 state: purged 参数:您可以使用一个任务删除设备上的整个 bgp 配置。这在实验室网络或您希望从干净状态配置开始时可能很有用。

- name: Use the bgp_global resource module
  cisco.ios.ios_bgp_global:
    state: purged

purged 和 deleted 之间的区别

state: deleted 参数非常相似,但它有两个与 purged 不同的主要用途。Deleted 可以使用 config 参数删除指定的配置。如果没有指定配置,它将删除整个资源(例如,如果使用 bgp_address_family 模块,则删除所有地址族配置)。但是,组成 BGP 配置的资源模块有多个。这意味着您需要运行多个模块 state: deleted 才能删除所有 BGP 配置。state: purged 参数允许您使用 bgp_global 资源模块删除所有 BGP 配置,简化您的 Ansible Playbook。

现在,我们可以执行 Playbook 并手动检查配置,以查看它的作用

network purge blog three

在上面的屏幕截图(来自 Ansible Automation Platform Web UI)中,您可以看到 Playbook 成功运行,并且 BGP 配置现已删除。

检查 Cisco 路由器上的运行配置将反映此更改

rtr1#sh run | s router bgp
rtr1#

为什么我要使用一个而不是另一个?

许多人正在自动化现有的网络,甚至正在进行手动更改和自动化更改混合的网络。您可能希望从多个设备中删除所有 BGP 配置,而这些设备没有设置 SoT(真相来源)。这允许 Playbook 编写者使用一个任务来销毁仅 BGP 配置,而不是使用多模块方法。这仅仅是资源模块工具箱中的另一个工具!

下一步去哪里?

这篇博文中的所有示例都在 Github 上这里