ansible - 当条件与 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 使用 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
推荐阅读
- javascript - 为什么在 .js 文件与 .vue 文件中使用时,我的项目中的 vuetify 会中断
- javascript - 是否可以通过 Node.js 后端隐藏 React 组件源代码?
- android - Web3J - 创建轻钱包的时间太长
- php - 我可以在 WAMP 服务器上运行 Angular 6 项目吗?
- ethereum - 通过另一个第三方合约发送 ERC721 代币
- express - Apollo-Server,如何与 SailsJS 一起使用?
- javascript - 使 vimeo 或 youtube 在模态打开时播放并在模态关闭时停止视频播放
- hyperledger-fabric - LDAP 上的 Hyperledger Fabric-ca 连接
- android - Android studio - 当很多口味(> 70)时同步 gradle 需要很长时间
- sql - SQL Anywhere - SELECT COUNT(PK) WHERE [条件] 性能