Linux就该这么学第十五节课学习心得

本文介绍了如何使用Ansible自动化创建和管理Linux逻辑卷,包括使用lvg和lvol模块创建物理卷、卷组和逻辑卷,并通过filesystem模块进行格式化操作。此外,还展示了如何根据主机的主机组名使用when条件判断,用copy模块修改不同组的/etc/issue文件内容。最后,探讨了file模块在管理文件属性和创建软链接中的应用,以及Ansible的vault功能,用于加密敏感信息。
摘要由CSDN通过智能技术生成

16.6 创建和使用逻辑卷

创建一个能批量、自动管理逻辑卷设备的剧本,不但能大大提高硬盘设备的管理效率,而且还能避免手动创建带来的错误。例如,我们想在每台受管主机上都创建出一个名为data的逻辑卷设备,大小为150MB,归属于research卷组。如果创建成功,则进一步用Ext4文件系统进行格式化操作;如果创建失败,则给用户输出一条报错提醒,以便排查原因。

在这种情况下,使用Ansible剧本要比使用Shell脚本的优势大,原因主要有下面两点。

Ansible模块化的功能让操作更标准,只要在执行过程中无报错,那么便会依据远程主机的系统版本及配置自动做出判断和操作,不用担心因系统变化而导致命令失效的问题。

Ansible服务在执行剧本文件时会进行判断:如果该文件或该设备已经被创建过,或是某个动作(play)已经被执行过,则绝对不会再重复执行;而使用Shell脚本有可能导致设备被重复格式化,导致数据丢失。

首先在prod组的两台主机上分别添加一块硬盘设备,大小为20GB,类型为SCSI,其余选项选择默认值,如图16-10~图16-12所示。

图16-10 添加一块新硬盘

图16-11 设置硬盘类型

图16-12 新硬盘添加完毕

通过回忆第7章学习过的逻辑卷的知识,我们应该让剧本文件依次创建物理卷(PV)、卷组(VG)及逻辑卷(LV)。需要先使用lvg模块让设备支持逻辑卷技术,然后创建一个名为research的卷组。lvg模块的帮助信息如下:

[root@linuxprobe ~]# ansible-doc lvg
> LVG    (/usr/lib/python3.6/site-packages/ansible/modules/system/lvg.py)

        This module creates, removes or resizes volume groups.

  * This module is maintained by The Ansible Community

………………省略部分输出信息………………

EXAMPLES:

- name: Create a volume group on top of /dev/sda1 with physical extent size = 3>
  lvg:
    vg: vg.services
    pvs: /dev/sda1
    pesize: 32

- name: Create a volume group on top of /dev/sdb with physical extent size = 12>
  lvg:
    vg: vg.services
    pvs: /dev/sdb
    pesize: 128K

通过输出信息可得知,创建PV和VG的lvg模块总共有3个必备参数。其中,vg参数用于定义卷组的名称,pvs参数用于指定硬盘设备的名称,pesize参数用于确定最终卷组的容量大小(可以用PE个数或容量值进行指定)。这样一来,我们先创建出一个由/dev/sdb设备组成的名称为research、大小为150MB的卷组设备。

[root@linuxprobe ~]# vim lv.yml
---
- name: 创建和使用逻辑卷
  hosts: all
  tasks:
          - name: one
            lvg:
                    vg: research
                    pvs: /dev/sdb
                    pesize: 150M

由于刚才只在prod组的两台主机上添加了新硬盘设备文件,因此在执行上述操作时其余3台主机会提示未创建成功,这属于正常情况。接下来使用lvol模块创建出逻辑卷设备。还是按照惯例,先查看模块的帮助信息:

[root@linuxprobe ~]# ansible-doc lvol
> LVOL    (/usr/lib/python3.6/site-packages/ansible/modules/system/lvol.py)

        This module creates, removes or resizes logical volumes.

  * This module is maintained by The Ansible Community

………………省略部分输出信息………………

EXAMPLES:

- name: Create a logical volume of 512m
  lvol:
    vg: firefly
    lv: test
    size: 512

- name: Create a logical volume of 512m with disks /dev/sda and /dev/sdb
  lvol:
    vg: firefly
    lv: test
    size: 512
    pvs: /dev/sda,/dev/sdb

通过输出信息可得知,lvol是用于创建逻辑卷设备的模块。其中,vg参数用于指定卷组名称,lv参数用于指定逻辑卷名称,size参数则用于指定最终逻辑卷设备的容量大小(不用加单位,默认为MB)。填写好参数,创建出一个大小为150MB、归属于research卷组且名称为data的逻辑卷设备:

[root@linuxprobe ~]# vim lv.yml
---
- name: 创建和使用逻辑卷
  hosts: all
  tasks:
          - name: one
            lvg:
                    vg: research
                    pvs: /dev/sdb
                    pesize: 150M
          - name: two
            lvol:
                    vg: research
                    lv: data
                    size: 150M

这样还不够好,如果还能将创建出的/dev/research/data逻辑卷设备自动用Ext4文件系统进行格式化操作,则又能帮助运维管理员减少一些工作量。可使用filesystem模块来完成设备的文件系统格式化操作。该模块的帮助信息如下:

[root@linuxprobe ~]# ansible-doc filesystem
> FILESYSTEM    (/usr/lib/python3.6/site-packages/ansible/modules/system/filesy>

        This module creates a filesystem.

  * This module is maintained by The Ansible Community

………………省略部分输出信息………………

EXAMPLES:

- name: Create a ext2 filesystem on /dev/sdb1
  filesystem:
    fstype: ext2
    dev: /dev/sdb1

filesystem模块的参数真是简练,fstype参数用于指定文件系统的格式化类型,dev参数用于指定要格式化的设备文件路径。继续编写:

[root@linuxprobe ~]# vim lv.yml
---
- name: 创建和使用逻辑卷
  hosts: all
  tasks:
          - name: one
            lvg:
                    vg: research
                    pvs: /dev/sdb
                    pesize: 150M
          - name: two
            lvol:
                    vg: research
                    lv: data
                    size: 150M
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值