Ansible实现对目标主机进行磁盘分区,创建逻辑卷、格式化并挂载
文章目录磁盘分区写入一个文件中将新建分区的信息设置为变量创建逻辑卷创建逻辑卷添加判断条件when,即当要添加的逻辑卷已经存在时直接跳过不执行block:正常的时候执行rescure: 不正常的时候执行always:无论如何都会执行磁盘分区写入一个文件中首先给目标主机server2添加一块新的20G的虚拟硬盘/dev/vdc。查看分区的帮助文档:[devops@server1 ...
·
block:正常的时候执行
rescure: 不正常的时候执行
always:无论如何都会执行
磁盘分区
写入一个文件中
- 首先给目标主机server2添加一块新的20G的虚拟硬盘/dev/vdc。
- 查看分区的帮助文档:
[devops@server1 ansible]$ ansible-doc parted
- 编辑.yml文件并写入:
[devops@server1 ansible]$ vim my_disk.yml
---
- hosts: test
tasks:
- name: Create a new primary partition
parted:
device: /dev/vdc
number: 1
part_end: 1GiB #等于在这一行前面加 part_start: 1MiB
state: present
- name: Create two partition
parted:
device: /dev/vdc
number: 2
part_start: 1GiB
part_end: 2GiB
state: present
- 执行:
[devops@server1 ansible]$ ansible-playbook my_disk.yml
- 在目标主机server2上查看:
[root@server2 ~]# fdisk -l
将新建分区的信息设置为变量
- 编辑.yml文件并写入以下:
---
- hosts: test
vars_files:
- storage_vars.yml #存放变量信息文件
tasks:
- name: Create a new primary partition
parted:
device: /dev/vdc
number: "{{ item.number }}" #变量
part_start: "{{ item.start }}" #变量
part_end: "{{ item.end }}" #变量
state: present
loop: "{{ partitions }}" #循环partitions模块中的内容
- 新建
storage_vars.yml
文件,并写入是第几块分区,起始的位置信息。
[devops@server1 ansible]$ vim storage_vars.yml
---
partitions:
- number: 1
start: 1MiB
end: 1GiB
- number: 2
start: 1GiB
end: 2GiB
- 执行:
[devops@server1 ansible]$ ansible-playbook my_disk.yml
- 在目标主机server2查看
[root@server2 ~]# fdisk -l
创建逻辑卷
创建逻辑卷
- 查看帮助文档。
[devops@server1 ansible]$ ansible-doc lvg #物理卷组
[devops@server1 ansible]$ ansible-doc lvol #逻辑卷
[devops@server1 ansible]$ ansible-doc filesystem #文件系统类型
[devops@server1 ansible]$ ansible-doc mount #挂载
- 在磁盘分区的基础上继续编辑文件
my_disk.yml
,加入创建物理卷组,创建逻辑卷,格式化文件系统并挂载等模块:
[devops@server1 ansible]$ vim my_disk.yml
---
- hosts: test
vars_files:
- storage_vars.yml
tasks:
- name: Create a new primary partition
parted:
device: /dev/vdc
number: "{{ item.number }}"
part_start: "{{ item.start }}"
part_end: "{{ item.end }}"
state: present
loop: "{{ partitions }}"
- name: create volume group #创建pv
lvg:
vg: vg
pvs: /dev/vdc1
- name: create a logical volume #创建lv
lvol:
vg: vg
lv: test
size: 100%VG
resizefs: true #可以扩展
force: yes #如果有数据,强制创建
state: present
- name: create a xfs filesystem #格式化文件系统
filesystem:
fstype: xfs
dev: /dev/vg/test
- name: mount lvs #挂载
mount:
path: /var/www/html #挂载点
src: /dev/vg/test #挂载设备
fstype: xfs
state: mounted # 挂载
opts: noatime #不修改access time
- 执行:
[devops@server1 ansible]$ ansible-playbook my_disk.yml
- 在目标主机server2查看:
[root@server2 ~]# df
[root@server2 ~]# cat /etc/fstab
添加判断条件when,即当要添加的逻辑卷已经存在时直接跳过不执行
- 修改
my_disk.yml
文件,在原有的基础上加入when判断条件:
[devops@server1 ansible]$ vim my_disk.yml
- 编辑存放变量的
storage_vars.yml
文件。
[devops@server1 ansible]$ vim storage_vars.yml
- 执行:
[devops@server1 ansible]$ ansible-playbook my_disk.yml
- 因为设备已经存在,所以显示skipping。
更多推荐
已为社区贡献2条内容
所有评论(0)