Akrog.storage
Ansible 存储角色
Ansible 存储角色是一个与供应商无关的抽象层,为基础设施管理员提供存储解决方案的自动化管理和访问已配置资源的功能。
存储角色默认支持超过80种块存储驱动,但也可以扩展以支持其他存储提供商。
得益于这种抽象,现在可以编写可重用的剧本,自动化支持的各类存储阵列上的任务。
这使得开发者或应用程序所有者能直接在任何基础设施上管理和使用存储卷,从任意 Linux 实例进行操作。
该角色为多种存储类型提供了抽象:
- 块存储
- 共享文件系统
- 对象存储
使用案例:
- 自动化卷的配置:
- 物理主机
- 通过 virt Ansible 模块 管理的虚拟机
- 在 oVirt、OpenStack 和 VMWare 上管理的虚拟机
- 云服务提供商
- 定期快照已配置的卷
- 使用黄金卷进行配置(卷克隆)
- 调整已配置卷的大小
- 定义已配置卷的 QoS
- 在后端之间执行卷迁移
功能
当前,存储角色支持块存储,并已抽象化以下操作。
- 获取 后端 统计信息
- 创建卷
- 删除卷
- 扩展卷
- 附加卷
- 分离卷
入门
让我们开始运行第一个存储剧本。
运行示例剧本将在系统中安装软件包并向系统展示一个 VG。我们建议在虚拟机内运行这些命令,或者将 IP 变量的值更改为虚拟机的 IP。
设置 LVM VG 后,剧本将创建一个卷,通过 iSCSI 将其附加到节点,显示附加设备的信息,分离它,最后删除卷。
要运行剧本,我们首先需要安装角色。
$ ansible-galaxy install Akrog.storage
安装角色后,我们可以继续运行它。
有很多方法可以运行剧本,为简单起见,我们将示范如何在本地主机上使用我们的用户运行,并假设我们已经启用了 sshd
,在 ~/.ssh/authorized_keys
文件中有自己的 ~/.ssh/id_rsa
,并且我们的用户可以无密码运行 sudo
命令。
$ IP=127.0.0.1
$ cd ~/.ansible/roles/Akrog.storage/example
$ ansible-playbook -i $IP, lvm-backend.yml
与大多数实际用例不同,我们的示例并未使用真实的存储系统。剧本首先创建一个由设备循环支持的 LVM 卷组(VG)。通过这个 VG,我们可以创建卷并通过 iSCSI 使用 LIO 目标导出它们。
概念
提供者是负责在存储硬件上执行操作的 Ansible 模块。每个提供者必须至少支持一款特定供应商的硬件,但可以支持更多硬件,就像默认提供者一样。
为了暴露这些提供者的功能,存储角色引入了 后端 的概念。后端 是通过向提供者传递特定配置来管理特定存储硬件而构造的。
存储角色中有两种类型的节点,控制器 和 消费者。
控制器 能够访问存储管理网络,并知道如何连接到存储硬件管理接口并进行控制。例如,用于创建和导出卷。
消费者 只需要访问存储数据网络,以便连接到我们已配置的资源。例如,通过 iSCSI 连接卷。
有关使用和配置的更多信息,请参见文档: https://ansible-storage.readthedocs.io/en/docs/