使用 OpenShift Dev Spaces 进行 Ansible 开发¶
Ansible 开发工具也可以使用 OpenShift Dev Spaces。如果您还不熟悉它们,您可以立即开始使用免费的 OpenShift 开发者沙箱。
事实上,此存储库已配置为与 OpenShift Dev Spaces 一起使用,点击 ,您可以在 OpenShift Dev Spaces 中打开它并进行自己的贡献。
您可以通过点击 测试加载在 redhat-developer-demos 存储库中定义的 OpenShift Dev Space。
此存储库为 Ansible playbook 创建、使用 Molecule 进行测试以及使用 OpenShift Dev Spaces 进行 ansible-lint 检查提供了开发环境。
摘要¶
此存储库包含一个 `devfile.yaml` 文件,该文件定义了 Ansible 的开发环境。使用此 `devfile` 创建的 DevSpace 提供了 Ansible playbook 开发、使用 Molecule 进行测试以及使用 ansible-lint 进行 lint 检查所需的工具和依赖项。这旨在用于开发人员难以访问用于开发 Ansible 自动化内容的 Linux 系统但拥有 OpenShift 的环境。
`devfile.yaml` 包含以下配置:
- Ansible
- Molecule(Ansible 角色的测试框架)
- Ansible Lint(用于检查 Ansible 代码中的最佳实践和潜在问题的工具)
您可以使用提供的 DevSpace 立即开始处理您的 Ansible 项目,而无需担心手动设置开发环境。
设置 OpenShift DevSpaces¶
要开始使用 OpenShift Dev Spaces,请参阅 OpenShift Dev Spaces 文档,了解有关设置开发环境和创建 DevSpaces 的详细说明。
Devfile 的基础镜像¶
社区 Ansible Dev Spaces 镜像 用作 Ansible 开发的镜像,并在 `devfile.yaml` 中定义。
GitHub OAuth2¶
配置 GitHub 的 OAuth2 的说明可在以下链接中找到:
秘密设置好后,重新启动主 Dev Space 容器。在此步骤完成之前创建的任何工作区都无法访问 GitHub OAuth,需要删除并重新创建才能访问。
注意:您仍然需要在第一次访问工作区时全局配置您的姓名/电子邮件(如果您选择不全局配置,则每个新工作区都需要配置一次)。
git config --global user.name "Homer Simpson"
git config --global user.email homer@springfieldpower.com
示例 Molecule 测试角色¶
在 collections/ansible_collections/sample_namespace/sample_collection/roles/backup_file 目录中提供了一个示例角色,用于使用 Molecule 和 OpenShift DevSpaces 试验测试驱动开发。已配置 Molecule 验证器来测试角色是否按预期工作。
自动化需求¶
- 备份使用 `backup_file_source` 变量标识的文件
- 备份应存储在 `backup_file_dest_folder` 变量标识的目录中
- 如果备份目录不存在,则应创建它并使其可写
- 备份文件应附加后缀,例如 '.bak',由 `backup_file_dest_suffix` 变量标识
开始针对 `backup_file` 角色进行开发¶
- 点击窗口左上角的三个水平条图标,然后选择“终端”->“新建终端”。
- 点击进入终端窗口
- 更改到 `backup_file` 角色目录 `cd collections/ansible_collections/sample_namespace/sample_collection/extensions/`
- 运行 `molecule create`。这将启动一个测试 Pod 供自动化运行(在 roles/backup_file/molecule/default/molecule.yml 中定义)。
- 运行 `molecule list` 和 `oc get pods` 以查看已创建的测试实例。
- 运行 `molecule verify` 以针对测试 Pod 运行验证,并查看错误以帮助指导角色中必要的任务。
- 运行 `molecule converge` 将角色应用于 Pod。这将在备份目标文件夹中创建一个附加了后缀的备份文件。
- 运行 `molecule converge` 以对测试实例执行角色,并运行 `molecule verify` 以查看是否有任何测试仍然失败。重复此操作,直到所有测试都通过。
要将测试 Pod 重置回新的实例,您可以运行 `molecule destroy`,然后运行 `molecule create` 来重新创建它。要运行完整的 Molecule 测试而无需逐步执行每个阶段,请运行 `molecule test`。
贡献¶
欢迎对这个存储库的贡献!如果您发现任何问题或有改进建议,请随时使用 Red Hat 打开一个问题。
行为准则¶
我们要求我们所有的社区成员和贡献者遵守 Ansible 行为准则。如果您有任何疑问或需要帮助,请联系我们的社区团队:codeofconduct@ansible.com