我是 Ansible 的新手,我通过命令使用 ansible 失败了:
ansible host -a "/sbin/swapoff -a && /sbin/swapon -a"
只有这个有效
ansible host -a "/sbin/swapoff -a
ansible host -a "/sbin/swapon -a
我正在考虑制作一本剧本,也许可以从以下开始:
- name: Turn off swap
shell : "swapoff -a"
- name: Turn on swap
shell : "swapon -a"
我想重置交换空间有条件时,仅当交换已用空间为更大比100MB。可以这样做吗?
非常感谢您的帮助
答案1
当已用交换空间大于 100mb 时如何重置交换空间
有多种方法可以做到这一点。这是向您介绍一些基本 Ansible 概念的一种方法。
首先,从系统中获取交换空间:
- name: Grab the swap space used (in megabytes)
shell: free -m | grep Swap | awk '{print $2}'
register: swap_used
然后,仅在 swap_space 大于阈值时打开和关闭交换。
- name: Turn off swap
shell: "swapoff -a"
when: (swap_used.stdout_lines[0] | int) > 100
- name: Turn on swap
shell : "swapon -a"
when: (swap_used.stdout_lines[0] | int) > 100
答案2
使用事实:
- name: Reset swap
shell: "swapoff -a && swapon -a"
when: ansible_memory_mb['swap']['total'] > 100