【ansible循环+判断】

ansible循环+判断

练习:

给node1添加一块5G的硬盘
给node2添加一块2G的硬盘
node3不添加硬盘

写一个partition.yml的playbook,满足如下要求:
给所有的受控主机创建分区,创建2500M的分区,然后对分区进行格式化,格式化为xfs的文件系统。
如果不能满足创建2500M的分区,则显示错误消息为:disk size not enough,接着改为创建1000M。
如果没有/dev/sdb硬盘,则显示错误消息为:the device is not sdb

[student@ansible ansible]$ cat partition.yml 
---
- name: parted
  hosts: all

  tasks:
    - block:
        - name: create 2500M
          parted:
            device: /dev/sda
            number: 1
            state: present
            part_type: primary
            part_start: 10MiB
            part_end: 2510MiB
      rescue:
        - name: not enough 2500m
          debug:
            msg: disk size not  enough
        - name: create 1000m
          parted:
            device: /dev/sda
            number: 1
            part_type: primary
            part_start: 10MiB
            part_end: 1010MiB
            state: present

      always:
        - name: format
          filesystem:
            fstype: xfs
            dev: /dev/sda1
      when: "ansible_devices.sda is defined"

    - name:  not defined
      debug:
        msg: the device is not 
      when: "ansible_devices.sda is defined"
[student@ansible ansible]$ 

效果

[student@ansible ansible]$ ansible-playbook partition.yml 

PLAY [parted] ******************************************************************

TASK [Gathering Facts] *********************************************************
ok: [node2]
ok: [node3]
ok: [node1]

TASK [create 2500M] ************************************************************
ok: [node3]
ok: [node2]
ok: [node1]

TASK [format] ******************************************************************
ok: [node1]
ok: [node2]
ok: [node3]

TASK [not defined] *************************************************************
ok: [node1] => {
    "msg": "the device is not"
}
ok: [node2] => {
    "msg": "the device is not"
}
ok: [node3] => {
    "msg": "the device is not"
}

PLAY RECAP *********************************************************************
node1                      : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node2                      : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
node3                      : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   


验证

[root@node1 ~]# lsblk  | grep sda
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
[root@node1 ~]# blkid /dev/sda2
/dev/sda2: UUID="Ae9drF-pGML-uyYX-4BFv-qqtc-zUnQ-OYcBtD" TYPE="LVM2_member" PARTUUID="ac8d5d42-02"
[root@node1 ~]# 

[root@node2 ~]# lsblk | grep sda
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
[root@node2 ~]# blkid /dev/sda1
/dev/sda1: UUID="5b39739e-93ff-41e4-afe0-1e0c4a247ea3" TYPE="xfs" PARTUUID="efd1763a-01"
[root@node2 ~]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值