牛角号 #28
牛角号
Ansible 开发者社区的新闻通讯 第 28 期,2021-06-11 (往期内容)
欢迎阅读牛角号,这是我们面向 Ansible 开发者社区的新闻通讯。如果您有任何问题或想分享的内容,请通过 [email protected] 与我们联系,或在本GitHub 问题 中评论。
Ansible 开发者社区的新闻通讯 第 28 期,2021-06-11 (往期内容)
欢迎阅读牛角号,这是我们面向 Ansible 开发者社区的新闻通讯。如果您有任何问题或想分享的内容,请通过 [email protected] 与我们联系,或在本GitHub 问题 中评论。
众所周知,Ansible 是一个适用于 IT 基础设施端到端自动化的工具。与此同时,由于项目中新增了功能和发展,Ansible 社区正以前所未有的速度增长。为了帮助构建项目结构并促进方向转变,我们正在为Ansible 社区项目启动一个指导委员会。
指导委员会的职责是提供指导、建议并确保 Ansible 社区包的交付。该委员会应广泛代表规划和审批领域。
最初的指导委员会成员是根据他们对 Ansible 项目的广泛了解和积极贡献而选出的,他们是
委员会成员将与社区用户以及 Red Hat 内部的 Ansible 团队合作,协助编写想法提案/新集合包含请求。指导委员会成员的职责不是代表特定利益或观点,而是认真倾听社区成员的意见,进行讨论、培训、指导并帮助他们以对社区最有利的方向塑造 Ansible 上游项目。
以下是 Ansible 社区指导委员会成员的当前职责
我们鼓励所有 Ansible 用户参加每周在 libera.chat 上的 #ansible-community IRC 频道举行的公开 Ansible 社区会议,时间为每周星期三 18:00 UTC。
此外,我们之前使用过一个 GitHub 问题 - 社区工作组会议议程 - 用于跟踪每周 Ansible 社区 IRC 会议的议题。展望未来,为了单独跟踪和分类每个主题,我们创建了一个新的 GitHub 存储库 community-topics。要讨论一个想法、建议改进或提交新的政策/提案和新集合包含请求,您将在 repo 中创建一个新问题 作为主题,它将在每周的 IRC 会议上公开讨论。每次会议结束后,会议记录/摘要和会议日志将发布到原始问题 中。
指导委员会将为所有感兴趣的人提供机会进行贡献和审查,并将为所有感兴趣的人提供机会在会议期间发表任何想法。
Ansible 开发者社区的新闻通讯 第 27 期,2021-05-27 (往期内容)
欢迎阅读牛角号,这是我们面向 Ansible 开发者社区的新闻通讯。如果您有任何问题或想分享的内容,请通过 [email protected] 与我们联系,或在本GitHub 问题 中评论。
Ansible 开发者社区的新闻通讯 第 26 期,2021-05-13 (往期内容)
欢迎阅读牛角号,这是我们面向 Ansible 开发者社区的新闻通讯。如果您有任何问题或想分享的内容,请通过 [email protected] 与我们联系,或在本GitHub 问题 中评论。
Red Hat Ansible 网络自动化一直是 Red Hat Ansible Automation Platform 的热门领域。我们不断开发额外的资源模块,使网络设备的自动化更容易,更易于新手和专家使用。这些资源模块在多个网络供应商中提供一致的体验。资源模块有七个主要的 state 参数:merged、replaced、overridden、deleted、gathered、rendered 和 parsed。Ansible 网络团队正在为资源模块的工具箱添加一个额外的参数 purged。这篇博文将介绍 purged 参数,并通过一个实际示例展示其用例。
在本示例中,我们将使用两个 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
输出将类似于以下内容
最后,让我们看一下 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
state: deleted
参数非常相似,但它有两个与 purged 不同的主要用途。Deleted 可以使用 config 参数删除指定的配置。如果没有指定配置,它将删除整个资源(例如,如果使用 bgp_address_family 模块,则删除所有地址族配置)。但是,组成 BGP 配置的资源模块有多个。这意味着您需要运行多个模块 state: deleted
才能删除所有 BGP 配置。state: purged
参数允许您使用 bgp_global
资源模块删除所有 BGP 配置,简化您的 Ansible Playbook。
现在,我们可以执行 Playbook 并手动检查配置,以查看它的作用
在上面的屏幕截图(来自 Ansible Automation Platform Web UI)中,您可以看到 Playbook 成功运行,并且 BGP 配置现已删除。
检查 Cisco 路由器上的运行配置将反映此更改
rtr1#sh run | s router bgp rtr1#
许多人正在自动化现有的网络,甚至正在进行手动更改和自动化更改混合的网络。您可能希望从多个设备中删除所有 BGP 配置,而这些设备没有设置 SoT(真相来源)。这允许 Playbook 编写者使用一个任务来销毁仅 BGP 配置,而不是使用多模块方法。这仅仅是资源模块工具箱中的另一个工具!
这篇博文中的所有示例都在 Github 上这里。