Ansible 在 Linux 上重置交换

Ansible 在 Linux 上重置交换

我是 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

相关内容