ansible循环+判断练习

这篇博客介绍了如何利用Ansible进行硬盘管理和分区操作,包括针对不同节点的不同操作:为node1添加5G硬盘,为node2添加2G硬盘,而node3则不添加硬盘。通过partition.yml playbook,实现对所有主机创建2500M分区并格式化为xfs文件系统。若磁盘空间不足,则改为创建1000M分区;如无/dev/sdb设备,则提示相应错误信息。
摘要由CSDN通过智能技术生成

ansible循环+判断练习

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

[root@node1 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
sdb             8:16   0    5G  0 disk 
sr0            11:0    1  7.9G  0 rom  /mnt

[root@node2 ~]# lsblk 
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   20G  0 disk 
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   19G  0 part 
  ├─rhel-root 253:0    0   17G  0 lvm  /
  └─rhel-swap 253:1    0    2G  0 lvm  [SWAP]
sdb             8:16   0    2G  0 disk 
sr0            11:0    1  7.9G  0 rom  

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

[root@ansible ~]# su - student
Last login: Mon Oct 31 21:34:16 CST 2022 on pts/0
[student@ansible ~]$ cd ansible/
[student@ansible ansible]$ cat partition.yml
[student@ansible ansible]$ cat partition.yml 
---
- name: create vg
  hosts: node1,node2,node3
  tasks:
    - name: test sdb
      shell: lsblk | grep -w sdb
      register: sdb
      ignore_errors: yes
    - name: sdb
      debug: 
        msg: the device not is sdb
      when: sdb.rc != 0

    - name: create vg
      block: 
        - name: creste 2500
          parted: 
            device: /dev/sdb
            number: 1
            state: present 
            part_end: 2500MiB

      rescue:
        - name: output fail message
          debug:
            msg: disk size not enough

        - name: create 1000
          parted:
            device: /dev/sdb
            number: 1
            state: present
            part_end: 1000MiB    
          when: sdb.rc == 0

      always:
       - name: format for lv
         filesystem:
           dev: /dev/sdb1
           fstype: ext4
[student@ansible ansible]$ ansible-playbook partition.yml

PLAY [create vg] **************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值