jedimt.nebulon_manage_volumes
Ansible 角色:管理 Nebulon 卷
管理 Nebulon nPods 的卷。
要求
- NebPyClient 2.0.8 及以上
- Nebulon Ansible 模块 1.4.0 及以上
角色变量
变量在 defaults/main.yml 文件中定义。在这个例子中,SPU 序列号也存储在 ansible vault 中。
# 所有卷的状态(present|absent)
volume_state: present
# 指定 LUN 导出方式(不影响底层卷)
# (present|all) -> 所有 nPod 服务器都可以访问导出
# (host) -> 使导出对单个主机可用。需要 host_uuid
# (local) -> 使导出仅对拥有该卷的本地主机可用
# (absent) -> 删除卷导出
export_type: local
# 管理卷/导出时使用的 nPod 名称
npod_name: "K8s_Lenovo"
host_uuid:
# 要管理的卷的列表(创建或删除)
volumes:
- name: "server-10-local-kadalu"
size: 1000000000000
mirrored: true
owner_spu_serial: "{{ server-10-spu-serial }}"
backup_spu_serial: "{{ server-09-spu-serial }}"
state: "{{ volume_state }}"
- name: "server-11-local-kadalu"
size: 1000000000000
mirrored: true
owner_spu_serial: "{{ server-11-spu-serial }}"
backup_spu_serial: "{{server-12-spu-serial }}"
state: "{{ volume_state }}"
- name: "server-12-local-kadalu"
size: 1000000000000
mirrored: true
owner_spu_serial: "{{server-12-spu-serial }}"
backup_spu_serial: "{{ server-11-spu-serial }}"
state: "{{ volume_state }}"
依赖关系
无。
示例剧本
# ===========================================================================
# 管理 Nebulon 卷
# ===========================================================================
# 示例调用:
# ansible-playbook -i inventory/lenovo.yml playbooks/ansible-playbook-nebulon-volume/manage_nebulon_volumes.yml
- name: 管理 Nebulon 卷
hosts: localhost
connection: local
tags: play_neb_vols
gather_facts: false
# module_defaults 需要 nebulon.nebulon_on 版本 1.2.1 或更高
module_defaults:
group/nebulon.nebulon_on.nebulon:
neb_username: "{{ vault_neb_username }}"
neb_password: "{{ vault_neb_password }}"
vars_files:
# 包含所有所需密码的 Ansible vault
- "../../credentials.yml"
# 包含服务器和 SPU 序列号的 Ansible vault
- "../../serials.yml"
roles:
- { role: jedimt.nebulon_manage_volumes }
许可证
MIT
作者信息
Aaron Patten aaronpatten@gmail.com