我需要为所有用户更新
ulimit
文件中的 limits.conf
值。
查找现有值(数字,可以是任何值)并替换为给定值。
示例
appadmin nproc 2000
mwadmin soft nproc 1000
root fsize 30000
需要识别为
2000
/1000
设置的值(30000
、nproc
和fsize
)并替换为一些固定值,例如nproc
,它将是32000
和fsize
将是10000000
。
有些参数可以是软的,有些是硬的。单词之间也有一个或多个空格 (
appadmin
, nproc
和 2000
)
尝试将
ulimit
文件中所有用户的现有 limits.conf
值替换为固定给定值。
如何使用 Ansible 在文件中查找具有匹配字符串的数字并替换为另一个数字?
简而言之,你根本不需要这样做。相反,建议使用特定模块
...可以控制系统资源或执行系统命令的代码单元。 Ansible 提供了一个模块库,您可以直接在远程主机上或通过 playbook 执行。
pam_limits
模块 – 修改 Linux PAM 限制
以任务为例
- name: Add or modify soft nproc limits for mwadmin domain
pam_limits:
domain: mwadmin
limit_type: soft
limit_item: nproc
value: '1000'
将提供一项所需的结果。
进一步阅读和文档
Ansible 不是一种语言: 如果 Ansible 不是一种编程语言,那么它是什么? Ansible 是一个用 Python 编写的工具,它使用声明性标记语言 YAML 来描述设备和配置的所需状态。 ...您声明要在目标设备上配置的方面,例如文件或目录是否存在、软件包是否已安装、服务是否正在运行等等。
以声明方式思考:Ansible 的设计是理想状态引擎。如果你试图在你的戏剧和角色中“编写代码”,那么你就注定会失败。我们基于 YAML 的剧本从来就不是用来编程的。