web-dev-qa-db-ja.com

ソルトスタックとのスワップを有効にする方法は?

再起動後に機能するソルトスタックを使用して永続的な1GBスワップファイルを作成して有効にするにはどうすればよいですか? salt.states.mount.swapではスワップサイズを定義できません。さらに、swappinessを定義する必要があります。現在、私はecho vm.swappiness = 10 | Sudo tee -a /etc/sysctl.confでそれを行っています

5
igo

これは私がDebianベースのシステムで使用しているものです。これはダンの答えの改良版です。グレインから使用可能なメモリを取得し、それを2倍して、適切なサイズのスワップファイルを作成します。また、存在しない場合は/ etc/fstabにエントリを作成します。

coreutils:
  pkg.installed

/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
7
Kiril Momchilov

私は現在これを本番環境で使用しています。

community_swap_file:
  cmd.run:
    - name: |
        [ -f /.swapfile ] || dd if=/dev/zero of=/.swapfile bs=1M count=2048
        chmod 0600 /.swapfile
        mkswap /.swapfile
        echo '/.swapfile      none      swap     sw       0       0' >> /etc/fstab
        swapon -a
    - unless: file /.swapfile 2>&1 | grep -q "Linux/i386 swap"
5
Dan Garthwaite

fallocateの使用は、ddと比較して瞬時に行われます。また、ピラーでサイズを変更すると、以下の状態でスワップファイルが再生成されます。このバージョンでは、swapon -aが処理する余分なmount.swapも省略されています。

{% set swapfile = salt['pillar.get']('swapfile', {}) %}
{% set size = swapfile.get('size', grains["mem_total"]) %}
{% set path = swapfile.get('path', '/var/swapfile0') %}

{{ path }}:
  cmd.run:
    - name: |
        swapon --show=NAME --noheadings | grep -q "^{{ path }}$" && swapoff {{ path }}
        rm -f {{ path }}
        fallocate -l {{ size }}M {{ path }}
        chmod 0600 {{ path }}
        mkswap {{ path }}
    - unless: bash -c '[[ $(($(stat -c %s {{ path }}) / 1024**2)) = {{ size }} ]]'

  mount.swap:
    - persist: true
2
Gabriel Totusek

私はダンの答えと同じようなことをしています:

configuring_swap:
  cmd.run:
    - name: |
        [ -f /var/swap.1 ] && swapoff /var/swap.1
        dd if=/dev/zero of=/var/swap.1 bs=1M count=3072
        chmod 0600 /var/swap.1
        mkswap /var/swap.1
        swapon /var/swap.1
    - unless:
      - "[ `free -b | awk '/Swap/{print $2}'` -ge 3221225472 ]"
  file.append:
    - name: /etc/fstab
    - text: /var/swap.1  swap  swap  defaults  0 0
    - onlyif:
      - file /var/swap.1 2>&1 | grep -q "Linux/i386 swap"

これは、システムの合計スワップ量を調べます。3GB未満の場合は、3GBのスワップファイルを作成し、/etc/fstabを介して再起動しても永続的であることを確認します。 swappiness設定が適切に配置されていることを確認したい場合は、次のようにすることができます。

configure_swappiness:
  file.append:
    - name: /etc/sysctl.conf
    - text: vm.swappiness = 10
0
codybuell