首页 > 解决方案 > 当条件与 Ansible

问题描述

我是 Ansible 的新手,当磁盘空间超过限制时,我正在编写一个脚本来安装一个包。我在评估条件时遇到这样的错误>>错误

---
- hosts: dev
  become: true
  become_user: root
  tasks:
   - name: Install zsh if enough space
      yum:
       name: zsh
       state: latest
       with_items: "{{ ansible_mounts}}"
      when: item.mount == "/" and item.size_available > 10737400

我以字节为单位给出大小。(有没有办法以 MB 为单位给出大小?)

谢谢。

标签: ansible

解决方案


Ansible 使用 YAML 格式,你需要使用正确的缩进。在 YAML 中,缩进在大多数编程语言中作为右括号或分号很重要。

with_items不是yum模块的定义,它是 Ansible 的指令,因此它应该when与模块调用处于同一级别(例如yum)。下面的两个例子都应该工作:

---
- hosts: dev
  become: true
  become_user: root
  tasks:
   - name: Install zsh if enough space
     yum:
       name: zsh
       state: latest
     with_items: "{{ ansible_mounts }}"
     when: item.mount == "/" and item.size_available > 10737400

或者

---
- hosts: dev
  become: true
  become_user: root
  tasks:
   - name: Install zsh if enough space
     with_items: "{{ ansible_mounts }}"
     when: item.mount == "/" and item.size_available > 10737400
     yum:
       name: zsh
       state: latest

推荐阅读