第 18 章 使用 Ansible 自动化配置任务
Ansible 是一个自动化工具,用于配置系统、部署软件和执行滚动更新。Ansible 包含对 Red Hat Virtualization 的支持,Ansible 模块可用于自动执行安装后任务,如数据中心设置和配置、管理用户或虚拟机操作。
Ansible 提供了与 REST API 和 SDK 相比自动化 Red Hat Virtualization 配置的简单方法,并允许您与其他 Ansible 模块集成。有关 Red Hat Virtualization 可用的 Ansible 模块的更多信息,请参阅 Ansible 文档中的 Ovirt 模块。
Ansible Tower 是通过 Web 界面和 Ansible 的 REST API 访问的图形化启用了框架。如果您想要对 Ansible Tower 的支持,则必须具有 Ansible Tower 许可证,它不属于 Red Hat Virtualization 订阅。
Ansible 由 Red Hat Virtualization 提供。要安装 Ansible,请在 Manager 机器中运行以下命令:
yum install ansible
# yum install ansible
有关使用 Ansible 的替代安装说明,请参阅 Ansible 文档。
要在运行 Ansible playbook 时永久提高 Manager 的详细级别,请在 /etc/ovirt-engine/engine.conf.d/
中创建配置文件,并添加以下行:
ANSIBLE_PLAYBOOK_VERBOSE_LEVEL=4
运行 systemctl restart ovirt-engine
创建该文件后,您必须重启 Manager。
18.1. Ansible 角色 复制链接链接已复制到粘贴板!
有多个 Ansible 角色可用于帮助配置和管理 Red Hat Virtualization 基础架构的各个部分。Ansible 角色提供了一种方法来模块化 Ansible 代码,可将大型 playbook 划分为可被其他用户共享的较小、可重复使用的文件。
可用于 Red Hat Virtualization 的 Ansible 角色由各种内部组件分类。如需有关 Ansible 角色的更多信息,请参阅 oVirt Ansible Roles 文档。有关使用 Ansible 角色安装的文档,请参阅 第 18.1.1 节 “安装 Ansible 角色”。
18.1.1. 安装 Ansible 角色 复制链接链接已复制到粘贴板!
您可以从 Red Hat Virtualization Manager 仓库为 Red Hat Virtualization 安装 Ansible 角色。使用以下命令在 Manager 机器上安装 Ansible 角色:
yum install ovirt-ansible-roles
# yum install ovirt-ansible-roles
默认情况下,角色安装到 /usr/share/ansible/roles 中。ovirt-ansible-roles
软件包的结构如下:
- /usr/share/ansible/roles - 存储角色。
- /usr/share/doc/ovirt-ansible-roles/ - 存储示例、基本概述和 licence。
- /usr/share/doc/ansible/roles/role_name - 存储特定于该角色的文档。
18.1.2. 使用 Ansible 角色配置 Red Hat Virtualization 复制链接链接已复制到粘贴板!
以下流程指导您创建并运行使用 Ansible 角色配置 Red Hat Virtualization 的 playbook。本例使用 Ansible 连接到本地计算机上的 Manager 并创建一个新的数据中心。
先决条件
-
确保 /etc/ansible/ansible.cfg 中的
roles_path
选项指向 Ansible 角色的位置(/usr/share/ansible/roles)。 - 确保在运行 playbook 的机器上安装了 Python SDK。
使用 Ansible 角色配置 Red Hat Virtualization
在工作目录中创建用于存储 Red Hat Virtualization Manager 用户密码的文件:
cat passwords.yml --- engine_password: youruserpassword
# cat passwords.yml --- engine_password: youruserpassword
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 加密用户密码。系统将要求您提供 Vault 密码。
ansible-vault encrypt passwords.yml
# ansible-vault encrypt passwords.yml New Vault password: Confirm New Vault password:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储 Manager 详情的文件,如 URL、证书位置和用户。
cat engine_vars.yml --- engine_url: https://example.engine.redhat.com/ovirt-engine/api engine_user: admin@internal engine_cafile: /etc/pki/ovirt-engine/ca.pem
# cat engine_vars.yml --- engine_url: https://example.engine.redhat.com/ovirt-engine/api engine_user: admin@internal engine_cafile: /etc/pki/ovirt-engine/ca.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您愿意,可以直接将这些变量添加到 playbook 中。
创建 playbook。要简化这一操作,您可以在 /usr/share/doc/ovirt-ansible-roles/examples 中复制和修改示例。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 playbook。
ansible-playbook --ask-vault-pass rhv_infra.yml
# ansible-playbook --ask-vault-pass rhv_infra.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您已成功使用 ovirt-datacenters
Ansible 角色创建名为 mydatacenter
s 的数据中心。