ansible 初始化系統分區格式化
作者: 張首富
時間: 2021-05-13
wx: y18163201
創建分區並進行格式化
tasks:
- name: '未分區磁盤'
parted: device=/dev/{{item.key}} number=1 state=present
when: not item.value.partitions
register: status
with_dict: "{{ ansible_devices }}"
- name: '格式化磁盤'
filesystem: dev=/dev/{{item.item.key}}1 fstype=xfs
when: item.changed != false
with_items: "{{ status.results }}"
首先通過ansible fact檢測機器中的磁盤的parttions,如果partitions就是實際磁盤的分區數,分過區的partitions里是有值的,沒分過區的磁盤partitions 值未空。依此來判斷磁盤是否被分過區。
如果沒有分區我們就把這個磁盤分1個區。並把狀態記錄下來。
格式化的時候,如果上面的分區狀態是成功的,那么說明,這個盤是剛分過區的,那么我就執行格式化。
格式化之后我們需要指定掛載操作,掛載操作要調用mount
模塊來實現
ansible mount 模塊用法
常用參數
- path: 掛載點,必須
- src: 掛載的源分區,必須
- fstype:磁盤分區格式,必須
- state:對應的動作是什么
mounted: 主動將設備掛載,並在 /etc/fstab 里面添加永久掛載信息,如果掛載點不存在,掛載點將會被創建
present: 只在 /etc/fstab 里面做記錄,並不會掛載
unmounted: 卸載掛載點,但是並不會在 /etc/fstab 里面把永久掛載信息去掉
absent:取消掛載,並在/etc/fstab 對應的記錄也刪除
remounted:指定設備將被重新掛載
- opts: 掛載的選項。
掛載
tasks:
- name: "mount device"
mount:
path: /data
src: /dev/sdb1
fstype: ext4
state: mounted
卸載
tasks:
- name: 'umount device'
mount:
path: /data
state: umounted