Posted at

Ansibleでカーネルチューニング

More than 1 year has passed since last update.

LinuxのカーネルパラメーターやPAM limitsの設定は、大規模なサービスで抜けが発生すると大変な事になるので、Ansibleで一気に適用してしまいたい。最近のバージョンではどちらも専用のモジュールが用意されているため、備忘録がてら記載しておく。


カーネルパラメーター


sysctlモジュールを使用する事で、/etc/sysctl.confを編集できる。

デフォルトで設定は即時反映される。

- sysctl:

name: "{{ item.name }}"
value: "{{ item.value }}"
state: present
ignoreerrors: yes
with_items:
- name: net.core.somaxconn
value: 8192
- name: fs.file-max
value: 5242880


PAM limits

pam_limitsモジュールを使用する事で、/etc/security/limits.confを編集できる。

なお、PAM認証を介さない制限には当然ながら使えないので、nginx等のdaemonの制限は別途行う必要がある事を忘れずにおきたい。

- pam_limits:

domain: "{{ item.domain }}"
limit_type: "{{ item.limit_type }}"
limit_item: nofile
value: 655360
with_items:
- domain: root
limit_type: soft
- domain: root
limit_type: hard
- domain: "*"
limit_type: soft
- domain: "*"
limit_type: hard