Create a Linux Swap File in SaltStack



  • Using Salt Stack, it is quite easy to create a swap file on our Linux systems. We can add this to our SLS files.

    /swapfile:
      cmd.run:
        - name: |
            [ -f /swapfile ] || dd if=/dev/zero of=/swapfile bs=1M count={{ grains["mem_total"] * 2 }}
            chmod 0600 /swapfile
            mkswap /swapfile
            swapon -a
        - unless:
          - file /swapfile 2>&1 | grep -q "Linux/i386 swap"
      mount.swap:
        - persist: true
    

    This is Linux specific and will not work on other operating systems. It's common with modern cloud VMs that no swap space is provided and creating a swap file on top of the normal file system is warranted. This command doesn't just make a swap file but looks up the system of the memory on the system and doubles it before making the swap file. So if you have a 2GB RAM VM, this will create a 4GB swap file. Easy to modify if you want half the swap space as memory, one to one or whatever. And it adds the swapspace to the /etc/fstab file for persistence.