ansible初始化系统之,磁盘分区,格式化

一般基础服务部门把一台新的服务器上架、装完系统、配置好网络以后就交付不管了。

到应用管理的手中需要,把未分区的磁盘,分区,并格式化。

数据磁盘少还OK,如果像是hadoop集群中的存储节点。一次都是20块。一个一个手动搞真的要命 。

之前在网上看到有人用ansible调用shell脚本,实现分区。感觉太土。而且很要命。

1、那个脚本里,如果磁盘已经分区过了,不能检测。直接重新再分一次。
2、格式化以后,也不检测,还是再重新格式化。。。

  tasks:
  - name: u'未分区磁盘'
    parted: device=/dev/{{item.key}} number=1 state=present
    when: not item.value.partitions
    register: status
    with_dict: "{{ ansible_devices }}"

  - name: u'格式化磁盘'
    filesystem: dev=/dev/{{item.item.key}}1 fstype=xfs
    when: item.changed != false
    with_items: "{{ status.results }}"

首先通过ansible fact检测机器中的磁盘的parttions,如果partitions就是实际磁盘的分区数,分过区的partitions里是有值的,没分过区的磁盘partitions 值未空。依此来判断磁盘是否被分过区。

如果没有分区我们就把这个磁盘分1个区。并把状态记录下来。

格式化的时候,如果上面的分区状态是成功的,那么说明,这个盘是刚分过区的,那么我就执行格式化。

OK ,现在完美了,不用担心初始化机器的时候,把线上的数据给搞了。。

你可能感兴趣的:(ansible初始化系统之,磁盘分区,格式化)