我们希望听到你的声音!帮助我们深入了解 Ansible 生态系统的现状。
参与 2024 年 Ansible 项目调查

AnsibleFest 2020 客户亮点

AnsibleFest 2020 客户亮点

AnsibleFest 2020 将在不知不觉中到来,我们迫不及待地想在 10 月份与大家见面。今年的虚拟体验将准备了一些精彩的内容,其中包括一些令人惊叹的客户亮点。今年,您将有机会听到 CarMax、北卡罗来纳州蓝十字蓝盾、T-Mobile 和 Cepsa 的分享。这些客户正在以各种方式使用 Ansible,我们希望您能与他们分享团队合作和转型自动化的精彩故事。

客户亮点

T-Mobile 的网络工程师 Benjamin Blizard 将探讨 T-Mobile 如何从一个难以执行标准的分散组织转型为一个由工程师组成的协作团队,他们使用可重复的模板和流程进行工作。T-Mobile 是一家主要的电信提供商,它使用 Ansible Automation Platform 来标准化其组织中的流程。Ben 将展示自动化如何支持 T-Mobile 的合规性标准、数据完整性,并为网络团队带来速度和效率。

北卡罗来纳州蓝十字蓝盾系统工程总监 Peter Bojovic 将讨论他们如何利用自动化降低托管服务成本,同时提高生产力。蓝十字北卡罗来纳州是一家领先的健康保险提供商,最近实施了一种新工具来自动化其关键内部应用程序的虚拟机的配置。

蓝十字北卡罗来纳州部署团队的成员也将参加小组访谈,成员包括:Tobin Shay、Alex Devirgilis 和 Pavan Mutyala。他们将讨论他们最近使用自动化处理大规模迁移的经验以及蓝十字北卡罗来纳州自动化的未来。访谈还将涉及大型组织如何减少对托管服务的依赖,以及导致预计 16 周的项目在短短三个工作日内完成的计划和流程。




推出 VMware REST Ansible 内容集合

推出 VMware REST Ansible 内容集合

作为当前 community.vmware 集合一部分的 VMware Ansible 模块非常受欢迎。根据 GitHub 数据,它是仅次于 community.general 的第二个被分叉最多的集合。Ansible 的 VMware 模块和插件受益于数十位用户的贡献。许多 IT 基础设施工程师依靠简单的 Ansible Playbook 来管理他们的 VMware 基础设施。当前大多数 VMware 模块都是建立在名为 pyVmomi(也称为 Python 版 vSphere 自动化 SDK)的依赖 Python 库之上。

为什么需要新的 VMware Ansible 内容集合?

VMware 最近为 vSphere 6.0 及更高版本引入了 vSphere REST API,它可能会取代 community.vmware 集合中使用的现有 SOAP SDK。

自从 REST API 首次发布以来,vSphere 对 REST API 的支持一直在不断改进。此外,不再需要任何依赖的 Python 包。为了维护 community.vmware 集合中现有的 VMware 模块,现在在新建的 vmware.vmware_rest 集合中提供了一组专门用于与 VMware REST API 交互的模块。

如果您将使用 VMware vSphere API(SOAP)的模块与使用 REST API 的模块进行比较,您会注意到 REST API 模块的功能尚未完整,因为这是该集合的早期版本。例如,目前无法使用 vmware.vmware_rest 集合中的模块创建群集或文件夹,但 API 提供了您未来启用集合以及更多功能所需的 VMware 虚拟机的所有内容。

使用 VMware REST API

为了了解新模块如何在新的 REST API 上运行,让我们首先看一下 REST API 本身。例如,com.vmware.vcenter.vm.power API 端点会更改虚拟机的电源状态。它等效于以下示例 URL

https://vcenter.test/rest/vcenter/vm/\$vm/power

随着 vCenter 7.0 版本的发布,总共公开了 723 个 REST 端点,可以使用以下 curl 命令发现这些端点

$ curl -k https://vcenter.test/rest/com/vmware/vapi/metadata/cli/command|jq -r ".[][].path"|uniq|wc -l
723

VMware REST API 以 Swagger 2.0 格式记录。您可以在 vCenter 节点的以下目录路径中找到 JSON 文件

root@vcenter [ /etc/vmware-vapi/apiexplorer/json ]# ls -lh
total 3.3M
-rw-r--r-- 1 vapiEndpoint users  145 Aug 31 15:37 api.json
-rw-r--r-- 1 vapiEndpoint users 396K Aug 31 15:36 appliance.json
-rw-r--r-- 1 vapiEndpoint users 153K Aug 31 15:36 cis.json
-rw-r--r-- 1 vapiEndpoint users 272K Aug 31 15:37 content.json
-rw-r--r-- 1 vapiEndpoint users 395K Aug 31 15:36 esx.json
-rw-r--r-- 1 vapiEndpoint users 153K Aug 31 15:36 stats.json
-rw-r--r-- 1 vapiEndpoint users 176K Aug 31 15:37 vapi.json
-rw-r--r-- 1 vapiEndpoint users 1.8M Aug 31 15:36 vcenter.json

总而言之,vmware.vmware_rest 集合已准备好使用这些 REST 端点,并在格式良好的文档中提供了描述。

构建 vmware_rest 集合

此集合中包含的模块是使用名为 vmware_rest_code_generator 的工具生成的,该工具由 Ansible 团队开发并开源。它加载 Swagger 文件,然后为每个资源自动生成一个模块,以此方式生成 300 多个模块。您会注意到并非每个模块都已发布到集合中。为了从小处着手,我们仅针对公开的端点子集(仅与虚拟机管理用例相关的那些端点)生成模块。我们可能会随着时间的推移扩展和增加模块数量。

使用 vmware_rest 集合

以下任务检索虚拟机的列表,将其关闭,然后将其删除

- name: Collect the list of the existing VM
  vcenter_vm_info:
  register: existing_vms
  until: existing_vms is not failed

- name: Turn off the VM
  vcenter_vm_power:
    state: stop
    vm: '{{ item.vm }}'
  with_items: "{{ existing_vms.value }}"
  ignore_errors: yes

- name: Delete some VM
  vcenter_vm:
    state: absent
    vm: '{{ item.vm }}'
  with_items: "{{ existing_vms.value }}"

有关更多信息,请参阅以下 gist 文件:https://gist.github.com/goneri/6afd05397390cf5a0976f3611814949a

下载 vmware_rest 集合

此早期版本的目的是获得尽可能多的社区反馈。

该集合可在 Ansible Galaxy 上获得,并且需要以下内容:

  • Ansible 2.9 或更高版本
  • Python 3.6 或更高版本
  • aiohttp

使用 ansible-galaxy 命令检索集合

# ansible-galaxy collection install vmware.vmware_rest

如果您使用 virtualenv,则可以使用以下命令安装 aiohttp

# pip install aiohttp

否则,您需要下载并安装 python3-aiohttp 包。

要阅读模块文档,请使用 ansible-doc 命令。例如,要阅读 vcenter_cluster_info 模块的文档,请参阅以下命令:

# ansible-doc -t module vmware.vmware_rest.vcenter_cluster_info

vCenter 托管对象引用 ID

如果您已经在使用 community.vmware 集合,主要区别在于较新的模块依赖于 MORef ID 来识别元素,而不是对象的名称。例如,如果用户创建了一个名为 dc1 的数据中心,则使用新模块的 MORef ID 将为 datacenter-2。community.vmware 集合使用名称和文件夹。

通过直接使用 MORef ID,模块能够在没有任何耗时的初步查找的情况下与资源进行交互。

我如何贡献?

由于模块是自动生成的,因此应针对 代码生成器 本身提交 GitHub 拉取请求,而不是针对生成的集合内容。

如有任何问题,请随时在 GitHub 项目上报告:https://github.com/ansible-collections/vmware_rest/issues

参考

每个集合的分叉次数可以通过访问 Github API 以编程方式找到:https://api.github.com/orgs/ansible-collections/repos

例如,可以对其进行排序

method: curl -s https://api.github.com/orgs/ansible-collections/repos|jq -r -c --sort-keys '.|sort_by(.forks)|reverse|.[]|[.name, .forks]'



使用 Molecule 和 Podman 开发和测试 Ansible 角色 - 第 2 部分

使用 Molecule 和 Podman 开发和测试 Ansible 角色 - 第 2 部分

Molecule 是一个完整的测试框架,可帮助您开发和测试 Ansible 角色,使您能够专注于角色内容,而不是专注于管理测试基础设施。在本系列的第一部分中,我们已成功安装、配置并使用 Molecule 设置了新的测试实例。

现在实例已运行,让我们开始开发新角色并应用 Molecule 以确保它根据规范运行。

此基本角色部署了一个由 Apache Web 服务器支持的 Web 应用程序。它必须支持 Red Hat Enterprise Linux (RHEL) 8 和 Ubuntu 20.04。

使用 Molecule 开发 Ansible 角色

Molecule 通过允许您使用角色内容“收敛”实例来帮助开发阶段。您可以测试每个步骤,而无需担心管理实例和测试环境。它提供快速反馈,使您能够专注于角色内容,确保其在所有平台上都能正常工作。

在本系列的第一部分中,我们初始化了一个名为“mywebapp”的新角色。如果您还没有完成此步骤,请切换到角色目录“mywebapp”并添加第一个任务,使用“package”Ansible 模块安装 Apache 包“httpd”。编辑文件“tasks/main.yaml”并包含此任务

$ vi tasks/main.yml
---
# tasks file for mywebapp
- name: Ensure httpd installed
  package:
    name: "httpd"
    state: present

保存文件并通过运行“molecule converge”来“收敛”实例。“converge”命令将角色的当前版本应用于所有正在运行的容器实例。如果实例已在运行,Molecule “converge”不会重新启动这些实例。它尝试通过使其配置与当前正在测试的角色描述的期望状态相匹配来收敛这些实例。

$ molecule converge
... TRUNCATED OUTPUT ...
   TASK [mywebapp : Ensure httpd installed] ***************************************
    Saturday 27 June 2020  08:45:01 -0400 (0:00:00.060)       0:00:04.277 *********
fatal: [ubuntu]: FAILED! => {"changed": false, "msg": "No package matching 'httpd' is available"}
    changed: [rhel8]
... TRUNCATED OUTPUT ...

请注意,当前版本在 RHEL8 实例上运行良好,但在 Ubuntu 实例上失败了。通过使用 Molecule,您可以快速评估所有平台中任务的结果,并验证角色是否按要求工作!但是,在此示例中,任务失败是因为 Ubuntu 没有名为“httpd”的包。对于该平台,包名为“apache2”。

因此,让我们修改角色以包含每个平台的正确包名称的变量。从 RHEL8 开始,在“vars”子目录下添加一个名为“RedHat.yaml”的文件,内容如下:

$ vi vars/RedHat.yaml
---
httpd_package: httpd

保存此文件并为 Ubuntu 添加相应的“vars/Debian.yaml”文件

$ vi vars/Debian.yaml
---
httpd_package: apache2

保存此文件并修改“tasks/main.yaml”文件以根据 Ansible 通过 系统事实变量“ansible_os_family”识别的操作系统系列包含这些变量文件。我们还必须包含一个任务来更新“Debian”系列中系统的包缓存,因为它们的包管理器会缓存结果,否则会出错。最后,我们更新安装任务以使用您在变量文件中定义的变量“httpd_package”

$ vi tasks/main.yml
- name: Include OS-specific variables.
  include_vars: "{{ ansible_os_family }}.yaml"

- name: Ensure package cache up-to-date
  apt:
    update_cache: yes
    cache_valid_time: 3600
  when: ansible_os_family == "Debian"

- name: Ensure httpd installed
  package:
    name: "{{ httpd_package }}"
    state: present

保存此文件,然后再次“收敛”实例以确保这次可以正常工作

$ molecule converge
... TRUNCATED OUTPUT ...
   TASK [mywebapp : Ensure httpd installed] ***************************************
    Saturday 27 June 2020  08:59:13 -0400 (0:00:07.338)       0:00:12.925 *********
    ok: [rhel8]
    changed: [ubuntu]
... TRUNCATED OUTPUT ...

由于包已安装在 RHEL8 实例中,因此 Ansible 返回状态“OK”并且没有进行任何更改。它这次在 Ubuntu 实例中正确安装了包。

我们已经安装了包 - 但是命名问题也存在于服务本身:它们在 RHEL 和 Ubuntu 中的命名方式不同。因此,我们将服务名称变量添加到 playbook 和变量文件中。从 RHEL8 开始

$ vi vars/RedHat.yaml
---
httpd_package: httpd
httpd_service: httpd

保存此文件,然后编辑 Ubuntu 的“vars/Debian.yaml”文件

$ vi vars/Debian.yaml
---
httpd_package: apache2
httpd_service: apache2

保存文件并在“tasks/main.yml”文件的末尾添加新任务

$ vi tasks/main.yml
- name: Ensure httpd svc started
  service:
    name: "{{ httpd_service }}"
    state: started
    enabled: yes

保存文件并再次“收敛”实例以启动 Apache httpd 服务

$ molecule converge
... TRUNCATED OUTPUT ...
   TASK [mywebapp : Ensure httpd svc started] *************************************
    Saturday 27 June 2020  09:34:38 -0400 (0:00:06.776)       0:00:17.233 *********
    changed: [ubuntu]
    changed: [rhel8]
... TRUNCATED OUTPUT ...

让我们添加一个最终任务来为 Web 应用程序创建一些内容。每个平台都需要不同组拥有的 HTML 文件。向每个变量文件添加新变量以定义组名称

$ vi vars/RedHat.yaml
---
httpd_package: httpd
httpd_service: httpd
httpd_group: apache

保存此文件,然后编辑 Ubuntu 的“vars/Debian.yaml”文件

$ vi vars/Debian.yaml
---
httpd_package: apache2
httpd_service: apache2
httpd_group: www-data

保存文件并在“tasks/main.yml”文件的末尾添加新任务

$ vi tasks/main.yml
- name: Ensure HTML Index
  copy:
    dest: /var/www/html/index.html
    mode: 0644
    owner: root
    group: "{{ httpd_group }}"
    content: "{{ web_content }}"

此任务允许角色用户在调用角色时使用变量“web_content”来指定内容。如果用户未指定内容,请为该变量添加默认值。

$ vi defaults/main.yml
---
# defaults file for mywebapp
web_content: There's a web server here

保存此文件,并再次“收敛”实例以添加内容。

$ molecule converge
... TRUNCATED OUTPUT ...
   TASK [mywebapp : Ensure HTML Index] ********************************************
    Saturday 27 June 2020  09:50:11 -0400 (0:00:03.261)       0:00:17.753 *********
    changed: [rhel8]
    changed: [ubuntu]
... TRUNCATED OUTPUT ...

此时,两个实例都已收敛。使用molecule login命令登录到其中一个实例并运行“curl”命令获取内容,手动验证角色是否有效。

$ molecule login -h rhel8
[root@2ce0a0ea8692 /]# curl https://127.0.0.1
There's a web server here
[root@2ce0a0ea8692 /]# exit

您使用Molecule来辅助角色开发,确保它在每个步骤中都可以在多个平台上正常工作。

接下来,让我们自动化验证过程。

使用Molecule验证角色

除了帮助您收敛实例以辅助角色开发之外,Molecule还可以通过执行验证任务来自动化测试过程。为了验证 playbook 的结果,Molecule 可以使用“testinfra”框架,也可以使用 Ansible 本身。

让我们使用 Ansible Playbook 来验证此新角色的结果。默认情况下,Molecule 提供了一个基本的验证器 playbook“molecule/default/verify.yml”作为起点。此 playbook 包含基本必需的结构,但没有执行任何有用的验证。通过使用 Ansible 的“uri”模块从运行的 Web 服务器获取内容,以及使用“assert”模块确保内容正确,更新此 playbook 以测试此角色的结果。

$ vi molecule/default/verify.yml
---
# This is an example playbook to execute Ansible tests.

- name: Verify
  hosts: all
  vars:
    expected_content: "There's a web server here"
  tasks:
  - name: Get index.html
    uri:
      url: https://127.0.0.1
      return_content: yes
    register: this
    failed_when: "expected_content not in this.content"

  - name: Ensure content type is text/html
    assert:
      that:
      - "'text/html' in this.content_type"

  - name: Debug results
    debug:
      var: this.content

保存并关闭此文件。运行“molecule verify”验证结果。

$ molecule verify
... TRUNCATED OUTPUT ...
   TASK [Ensure content type is text/html] ****************************************
    Saturday 27 June 2020  10:03:18 -0400 (0:00:03.131)       0:00:07.255 *********
    ok: [rhel8] => {
        "changed": false,
        "msg": "All assertions passed"
    }
    ok: [ubuntu] => {
        "changed": false,
        "msg": "All assertions passed"
    }
... TRUNCATED OUTPUT ...
Verifier completed successfully.

Molecule 对所有实例运行验证器 playbook,确保结果与预期值匹配。

您可以通过编辑收敛 playbook 以更新“web_content”变量来更改测试的默认值。

$ vi molecule/default/converge.yml
---
- name: Converge
  hosts: all
  tasks:
    - name: "Include mywebapp"
      include_role:
        name: "mywebapp"
      vars:
         web_content: "New content for testing only"

然后,在验证器 playbook 中更新“expected_content”变量。

$ vi molecule/default/verify.yml
---
# This is an example playbook to execute Ansible tests.

- name: Verify
  hosts: all
  vars:
    expected_content: "New content for testing only"
  tasks:

再次收敛实例以更新 Web 服务器内容,然后验证结果。

$ molecule converge
... TRUNCATED OUTPUT ...
   TASK [mywebapp : Ensure HTML Index] ********************************************
    Saturday 27 June 2020  10:09:34 -0400 (0:00:03.331)       0:00:19.607 *********
    changed: [rhel8]
    changed: [ubuntu]
... TRUNCATED OUTPUT ...
$ molecule verify
... TRUNCATED OUTPUT ...
   TASK [Debug results] ***********************************************************
    Saturday 27 June 2020  10:10:15 -0400 (0:00:00.299)       0:00:10.142 *********
    ok: [rhel8] => {
        "this.content": "New content for testing only"
    }
    ok: [ubuntu] => {
        "this.content": "New content for testing only"
    }
... TRUNCATED OUTPUT ...
Verifier completed successfully.

使用验证器,您可以定义一个 playbook 来执行检查并确保角色产生所需的结果。

在最后一步中,让我们将所有内容与自动化测试结合起来。

自动化完整的测试工作流

现在所有部分都已组合在一起,请使用命令“molecule test”自动化完整的测试流程工作流。

与辅助角色开发的“molecule converge”不同,“molecule test”的目标是提供一个自动化且可重复的环境,以确保角色根据其规范工作。因此,测试过程会在每次测试中销毁并重新创建实例。

默认情况下,“molecule test”按顺序执行以下步骤

  1. 安装所需的依赖项
  2. 检查项目的代码风格
  3. 销毁现有实例
  4. 运行语法检查
  5. 创建实例
  6. 准备实例(如果需要)
  7. 通过应用角色任务来收敛实例
  8. 检查角色的幂等性
  9. 使用定义的验证器验证结果
  10. 销毁实例

您可以通过在 Molecule 配置文件中添加包含所需步骤的“test_sequence”字典来更改这些步骤。有关更多信息,请查阅官方文档

执行测试场景

$ molecule test
... TRUNCATED OUTPUT ...
--> Test matrix

└── default
    ├── dependency
    ├── lint
    ├── cleanup
    ├── destroy
    ├── syntax
    ├── create
    ├── prepare
    ├── converge
    ├── idempotence
    ├── side_effect
    ├── verify
    ├── cleanup
    └── destroy

--> Scenario: 'default'
... TRUNCATED OUTPUT ...

如果测试工作流在任何时候失败,则命令将返回一个非零状态代码。您可以使用该返回代码来自动化流程或将 Molecule 集成到 CI/CD 工作流中。

结论

现在您已成功应用 Molecule 来开发和测试一个编写良好且在不同环境中可靠运行的角色,您可以将其集成到您的开发周期中,以便持续生成高质量的角色,而无需担心测试基础设施。

Molecule 在角色开发过程中提供持续反馈,从而确保您的角色在每个步骤中都按设计工作。

对于更高级的场景,Molecule 支持其他驱动程序,允许您使用不同的平台、虚拟化和云提供商来测试角色。

最后,您可以将 Molecule 与 CI/CD 工作流集成,以自动化 Ansible 角色的完整测试过程。




牛角 #10

Ansible Bullhorn banner

牛角

Ansible 开发者社区通讯
第 10 期,2020 年 9 月 16 日


欢迎来到牛角,这是我们面向 Ansible 开发者社区的通讯。如果您有任何问题或想要分享的内容,请通过 [email protected] 与我们联系,或在此GitHub issue上发表评论。
 

关键日期

  • 2020 年 9 月 15 日:ansible-2.10.0 rc1(从 9 月 10 日更改)
  • 2020 年 9 月 17 日:社区 IRC 会议(此处应提出和讨论发布的任何障碍)
  • 2020 年 9 月 22 日:ansible-2.10 正式发布日期
 

Ansible 2.10.0 RC1 现已可用

Ansible 社区团队于 9 月 15 日宣布 Ansible 2.10.0 发布候选版本 1 可用。此新 Ansible 软件包应为 Ansible 2.9 的直接替换;您当前使用的角色和 playbook 应该可以直接与 ansible-2.10.0 rc1 协同工作。有关如何下载、测试和报告问题的更多信息,请阅读Toshio Kuratomi 在 ansible-devel 邮件列表中的公告

ansible-2.10.0 预发布版本将继续更新以进行测试。 Ansible 2.10.0 beta 2 上周已上传到 pypi,如上所述,Ansible 2.10.0 rc1 现已在 pypi 上可用。

有关更多发布详细信息,请查看  

Ansible-Base 2.10.1 现已普遍可用

Ansible Base 团队于 9 月 14 日宣布 Ansible 2.10.1 正式发布。此 ansible-base 软件包仅包含 Ansible 执行引擎、相关工具(例如 ansible-galaxy、ansible-test)和一组非常小的内置插件,并且也与更大的 Ansible 发行版捆绑在一起。有关如何下载、测试和报告问题的更多信息,请阅读Rick Elrod 在 ansible-devel 邮件列表中的公告
 

角色/集合发布者:Ansible-Galaxy 登录的更改

如果您使用ansible-galaxy CLI 将角色或集合发布到 Galaxy,您可能需要关注这一点。支持ansible-galaxy login 命令的 GitHub API 将于 11 月移除。没有它,通过 Galaxy CLI 执行角色或集合发布操作的用户将需要在浏览器中以交互方式查找他们的 Galaxy 令牌并使用配置文件传递它(因为无法再从 CLI 生成令牌)。我们不确定人们今天都在做什么或此选项在世界上使用多少,因此如果您有意见,请在接下来的几天内阅读并参与此处
 

新的/更新的社区集合

Ansible Podman 集合 有一个新的模块podman_network 用于管理 Podman 网络。
 

Ansible 团队正在招聘

Ansible 社区团队正在招聘工程师来帮助引导 Ansible 贡献者。有关更多信息,请参阅以下职位描述  

来自 Ansible 社区的内容

 

Ansible 贡献者峰会 - AnsibleFest 2020 的一部分

由于对AnsibleFest 2020Ansible 贡献者峰会的兴趣浓厚,我们计划根据您在贡献过程中的位置为您安排 2 天的议程。这些活动将于 2020 年 10 月 12 日和 15 日举行。

查看wiki 页面以了解这两天的结构,并通过相应的链接进行注册。我们期待您参加贡献者峰会!
 

开源自动化日

我们将参加开源自动化日 (Open Source Automation Days),这是一场将于2020年10月19日至21日举行的线上活动。您可以查看演讲嘉宾和主题,以及研讨会,如果您感兴趣,可以点击此处获取门票
 

ANSIBLE 线上聚会

以下是在未来一个月内 Ansible 社区举办的线上聚会 注意:对于这些线上聚会,一旦您回复参加,即可看到参与链接。如果您对所介绍的主题感兴趣,只要时区和语言适合您,您就可以从世界任何地方加入!
 

反馈

您有任何想问的问题或希望我们涵盖的议题吗?请发送电子邮件至 [email protected]

 

 




Bullhorn 第9期

Ansible Bullhorn banner

牛角

Ansible 开发者社区通讯

欢迎来到牛角,这是我们面向 Ansible 开发者社区的通讯。如果您有任何问题或想要分享的内容,请通过 [email protected] 与我们联系,或在此GitHub issue上发表评论。
 

ANSIBLE 2.10.0 BETA 1 现已推出

Ansible 社区团队于9月1日宣布推出 Ansible 2.10.0 beta 1。此新的 Ansible 软件包应该是 Ansible 2.9 的直接替换;您当前使用的角色和剧本应该可以直接与 ansible-2.10.0 beta1 一起使用。有关如何下载、测试和报告问题的更多信息,请阅读Toshio Kuratomi 向 ansible-devel 邮件列表发布的公告
 

ANSIBLE-BASE 2.10.1 RC2 现已推出

Ansible Base 团队于8月31日宣布发布 Ansible 2.10.1 的候选版本。此 ansible-base 软件包仅包含 Ansible 执行引擎、相关工具(例如 ansible-galaxy、ansible-test)和非常少量的内置插件,并且也与较大的 Ansible 发行版捆绑在一起。有关如何下载、测试和报告问题的更多信息,请阅读Rick Elrod 向 ansible-devel 邮件列表发布的公告
 

ANSIBLE 2.9.13 和 2.8.15 发布

Ansible 核心团队于8月31日宣布推出 Ansible 2.9.13 和 Ansible 2.8.15,这两个版本都是维护版本。请点击此链接查看 Rick Elrod 发送给 ansible-devel 邮件列表的电子邮件,获取有关新增功能、安装说明以及完整更改日志链接的详细信息。
 

集合所有者:ANSIBLE 2.10 的更改日志

提醒集合所有者:请在**9月7日星期一**之前使用相应的更改日志更新您的集合。有关使用 Ansible 提供的工具的详细信息,请参阅为集合生成更改日志。您还可以通过将链接添加到问题此处,直接链接到您自己的更改日志或发行说明,截止日期为同一天。
 

新的/更新的社区集合

vmware.vmware_rest 集合 0.1.0 已发布。这是一个新的 VMware 集合,建立在 vSphere REST API 之上。模块侧重于访客管理,可以与community.vmware 集合中的模块混合使用。
 

Ansible 团队正在招聘

Ansible 社区团队正在招聘工程师来帮助引导 Ansible 贡献者。有关更多信息,请参阅以下职位描述Ansible 文档团队正在招聘一名技术作家。职位位于北卡罗来纳州罗利市,但我们也会考虑远程申请者。如果您有兴趣或有任何疑问,请在 freenode IRC 上的 #ansible-docs 频道与我们联系。我们已经收到很多申请,所以请尽快行动!  

来自 Ansible 社区的内容

 

ANSIBLEFEST 2020 线上体验

今年的 AnsibleFest 将是一次线上体验!在这篇博文中了解有关该活动的最新信息,并点击此处注册。我们还将在 AnsibleFest 期间举办Ansible 贡献者峰会。更多详细信息将很快分享!
 

ANSIBLE 线上聚会

以下是在未来一个月内 Ansible 社区举办的线上聚会
  • 布宜诺斯艾利斯 Ansible - Code4ndreani:Ansible 101
    • 9月2日星期三 · 格林威治标准时间下午6:00
       
  • 墨尔本 Ansible 9月聚会:Ansible 和 REST API
    • 9月9日星期三 · 格林威治标准时间凌晨1:00
       
  • 伦敦 Ansible [线上] 聚会 – 9月10日
    • 9月10日星期四 · 格林威治标准时间下午5:45
注意:对于这些线上聚会,一旦您回复参加,即可看到参与链接。如果您对所介绍的主题感兴趣,只要时区和语言适合您,您就可以从世界任何地方加入!
 

反馈

您有任何想问的问题或希望我们涵盖的议题吗?请发送电子邮件至 [email protected]