由于工作中经常会遇到添加磁盘,分区,挂载这种操作,使用ansible后再也不用一台台的搞了;主要使用到lvg,lvol,filesystem,mount模块;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| - hosts: test vars: vg_name: "vgtest" lv_name: "lvtest" pvs_name: "/dev/sdb" dir_path: "/data" tasks: - name: 创建一个vg lvg: vg: "{{vg_name}}" pvs: "{{pvs_name}}" pesize: 4 - name: 创建一个lv lvol: vg: "{{vg_name}}" lv: "{{lv_name}}" size: 100%PVS - name: 格式化lv filesystem: fstype: ext4 dev: "/dev/{{vg_name}}/{{lv_name}}" - name: 获取UUID shell: blkid /dev/"{{vg_name}}"/"{{lv_name}}" |awk '{print $2}' register: result ignore_errors: True - name: 创建挂载目录 file: path: "{{dir_path}}" state: directory mode: 0755 - name: 使用UUID挂载lvm分区 mount: path: /data src: "{{result.stdout}}" fstype: ext4 state: mounted
|
由于我一直习惯使用UUID挂载分区(UUID是每个分区的唯一标识),所以我加了一步获取UUID的操作,这步也可以略去,挂载的时候使用分区名称进行挂载;还有一点就是使用lvm分区的时候,将整个磁盘做成pv是不需要进行分区操作的,这点比较方便;如果要做分区操作的话,可以使用以下playbook:
hosts: test1 2 3 4 5 6 7 8 9 10 11 12
| vars: dev_name1: "/dev/sdb" dev_name2: "/dev/sdb1" tasks: - name: Disk Partition shell : fdisk "{{dev_name1}}" < /tmp/fdisk_temp.conf - name: Disk Mkfs ext4 filesystem: fstype: ext4 dev: "{{dev_name2}}" - name: Disk Mount shell: blkid /dev/sdb1 |awk '{print $2}'| sed -n 's/$/ \/data ext4 defaults 0 0/p' >> /etc/fstab && mount -a
|
受控机/tmp/fdisk_temp.conf内容