Eri*_* Na 7 mysql ansible ansible-playbook
我正在建立一个MySQL服务器,我被告知要增加ulimit打开进程的数量.
我跑了
- name: "increase limit for the number of open files"
shell: "ulimit -n 64000"
- name: "increase limit for the number of open processes"
shell: "ulimit -u 64000"
Run Code Online (Sandbox Code Playgroud)
上ansible-playbook,但它不仅会抛出错误"非法选项-u",而且打开文件限制(-n)似乎没有得到修改.(我ulimit -n在服务器上运行但它保持不变)
增加这些限制的推荐方法是什么,我应该如何在Ansible中进行?
我看到了pam_limits模块.我应该使用这个模块修改nproc和nofile?如果是这样,哪个域?
谢谢.
tad*_*man 15
实际上,您需要做几件事来永久地增加文件句柄的数量.你在这里尝试的是一个临时措施,只有在shell存在的情况下才存在,它不会这样做.
我发现你需要修复三件事才能正确应用.
前两个与sysctlPAM limits.d配置有关:
- name: Set sysctl File Limits
copy:
src: 50-fs.conf
dest: /etc/sysctl.d
- name: Set Shell File Limits
copy:
src: 91-nofiles.conf
dest: /etc/security/limits.d
Run Code Online (Sandbox Code Playgroud)
该50-fs.conf文件如下所示:
fs.file-max=262144
Run Code Online (Sandbox Code Playgroud)
该91-nofiles.conf文件如下所示:
* soft nofile 262144
* hard nofile 262144
Run Code Online (Sandbox Code Playgroud)
这样可以处理系统范围的配置.如果您使用的是发行版systemd,则需要进行调整:
- name: Set MariaDB Filehandle Limits
notify: Reload systemctl
copy:
src: limits.conf
dest: /lib/systemd/system/mariadb.service.d
Run Code Online (Sandbox Code Playgroud)
这需要重新加载systemctl,因此您可能需要添加一个handler:
- name: Reload systemctl
shell: systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
您正在复制的文件如下所示:
[Service]
LimitNOFILE=infinity
LimitMEMLOCK=infinity
Run Code Online (Sandbox Code Playgroud)
这是从默认服务配置文件中的示例中获取的.
最后要做的是确保my.cnf您的配置中包含此指令的商店或其他商店:
open_files_limit=16384
Run Code Online (Sandbox Code Playgroud)
您可能还想添加它:
open_files_limit=16384
max_connections=16384
Run Code Online (Sandbox Code Playgroud)
您可以使用您认为合适的任何值.
Eze*_*eno 14
从Ansible 2.0.0开始,一个新的官方模块支持配置PAM.
# Add or modify nofile soft limit for the user joe
- pam_limits:
domain: joe
limit_type: soft
limit_item: nofile
value: 64000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9036 次 |
| 最近记录: |