代码之家  ›  专栏  ›  技术社区  ›  Prabhu

在文件中查找具有匹配字符串的数字,并使用ansible替换为另一个数字

  •  0
  • Prabhu  · 技术社区  · 1 年前

    我需要更新 ulimit 值在 limits.conf 所有用户的文件。

    找到现有值(数字,可以是任何值)并替换为给定值。

    示例

    appadmin nproc 2000
    mwadmin soft  nproc 1000
    root   fsize    30000
    

    需要确定价值观( 2000 , 1000 30000 )设置为 nproc / fsize 并替换为某个固定值,如for nproc 这将是 32000 fsize 10000000 .

    有些参数可以是软的,有些参数是硬的。单词之间也有一个或多个空格( appadmin , nproc 2000 )

    试图替换现有 文件描述符 所有用户的固定给定值 limits.conf 文件。

    1 回复  |  直到 1 年前
        1
  •  2
  •   U880D    1 年前

    如何在文件中找到具有匹配字符串的数字,并使用Ansible替换为另一个数字?

    简而言之,你根本不需要这样做。相反,建议 use a specific module

    …可以控制系统资源或执行系统命令的代码单元。Ansible提供了一个模块库,您可以直接在远程主机上或通过剧本执行。

    所以你可以看看 pam_limits module – Modify Linux PAM limits

    在示例中,任务

    - name: Add or modify soft nproc limits for mwadmin domain
      pam_limits:
        domain: mwadmin
        limit_type: soft
        limit_item: nproc
        value: '1000'
    

    将提供一个所需的结果。

    进一步阅读和文件

    • Things to know about programming using Ansible

      Ansible不是一种语言: 如果Ansible不是一种编程语言,那么它是什么?Ansible是一个用Python编写的工具,它使用声明性标记语言YAML来描述设备和配置的期望状态。。。您可以声明要在目标设备上配置的方面,例如文件或目录是否存在、包是否已安装、服务是否正在运行等。

    • Ansible Best Practices: The Essentials

      声明式思考:Ansible的设计是一个理想状态引擎。如果你试图在你的戏剧和角色中“写代码”,你就是在为自己的失败做准备。我们基于YAML的剧本从来就不是为了编程。

    • What is the XY problem?