Add swap memory with ansible

前端 未结 5 2045
醉酒成梦
醉酒成梦 2021-02-05 01:57

I\'m working on a project where having swap memory on my servers is a needed to avoid some python long running processes to go out of memory and realized for the first time that

5条回答
  •  孤独总比滥情好
    2021-02-05 02:13

    I tried the answer above but "Check swap file type" always came back as changed and therefore isn't idempotent which is encouraged as a best practice when writing Ansible tasks.

    The role below has been tested on Ubuntu 14.04 Trusty and doesn't require gather_facts to be enabled.

    - name: Set swap_file variable
      set_fact:
        swap_file: "{{swap_file_path}}"
      tags:
        - swap.set.file.path
    
    - name: Check if swap file exists
      stat:
        path: "{{swap_file}}"
      register: swap_file_check
      tags:
        - swap.file.check
    
    - name: Create swap file
      command: fallocate -l {{swap_file_size}} {{swap_file}}
      when: not swap_file_check.stat.exists
      tags:
        - swap.file.create
    
    - name: Change swap file permissions
      file: path="{{swap_file}}"
            owner=root
            group=root
            mode=0600
      tags:
        - swap.file.permissions
    
    - name: Format swap file
      sudo: yes
      command: "mkswap {{swap_file}}"
      when: not swap_file_check.stat.exists
      tags:
        - swap.file.mkswap
    
    - name: Write swap entry in fstab
      mount: name=none
             src={{swap_file}}
             fstype=swap
             opts=sw
             passno=0
             dump=0
             state=present
      tags:
        - swap.fstab
    
    - name: Turn on swap
      sudo: yes
      command: swapon -a
      when: not swap_file_check.stat.exists
      tags:
        - swap.turn.on
    
    - name: Set swappiness
      sudo: yes
      sysctl:
        name: vm.swappiness
        value: "{{swappiness}}"
      tags:
        - swap.set.swappiness
    

    Vars required:

    swap_file_path: /swapfile
    # Use any of the following suffixes
    # c=1
    # w=2
    # b=512
    # kB=1000
    # K=1024
    # MB=1000*1000
    # M=1024*1024
    # xM=M
    # GB=1000*1000*1000
    # G=1024*1024*1024
    swap_file_size: 4G
    swappiness: 1
    

提交回复
热议问题