使用Ansible配置LVM的多个驱动器

时间:2017-10-24 15:28:42

标签: ansible lvm

在完全免责声明中,我有点像Ansible的新手,我可能会咬得比我咀嚼的多,但我需要能够配置IO服务器。将它们视为Gluster或Lustre OSS服务器等的前端服务器......这些服务器中的每一个都有10个驱动器。我可以使用

配置单个驱动器
  - name: VGCreate vg_gluster1
    lvg: vg={{ "vg_gluster1" }} pvs={{ "/dev/sdb" }} state=present
  - name: LVCreate vg_gluster1
    lvol: vg={{ "vg_gluster1" }} lv={{ "brick1" }} size={{ "1000m" }}
  - name: Create Filesystem vg_gluster1
    filesystem: fstype={{ "xfs" }} dev={{ "/dev/vg_gluster1/brick1" }}
  - name: Create Mount Points vg_gluster1
    file: path={{ "/brick1" }} state=directory mode=0777 recurse=yes
  - name: Mount Filesystem vg_gluster1
    mount: name={{ "/brick1" }} src={{ "/dev/vg_gluster1/brick1" }} state=mounted fstype=xfs

我想了解如何遍历所有10个驱动器,请记住vg_gluster1与/ dev / sdb,vg_gluster2与sdc等相关联......有没有人有任何帮助?

谢谢!

1 个答案:

答案 0 :(得分:0)

定义驱动器列表:

mydrives:
  - /dev/sdb
  - /dev/sdc

制作任务档案lvm.yml

- name: VGCreate vg_gluster1
  lvg: vg={{ "vg_gluster"+myindex }} pvs={{ mydrive }} state=present
- name: LVCreate vg_gluster1
  lvol: vg={{ "vg_gluster"+myindex }} lv={{ "brick"+myindex }} size={{ "1000m" }}
... etc ...

然后制作循环包括:

- include: lvm.yml
  vars:
    myindex: "{{ item.0 }}"
    mydrive: "{{ item.1 }}"
  with_indexed_items: "{{ mydrives }}"

这将包括来自lvm.yml列表的每个驱动器的mydrives

如果您希望每个卷都有不同的名称(不是vg_gluster<index>),则可以像这样定义mydrives列表:

mydrives:
  - vg: vg_name
    dev: /dev/sdb
    size: 1000m
  - vg: vg_other
    dev: /dev/sdc
    size: 500m

并相应地修改lvm.yml