首页 > 解决方案 > 状态时的Ansible多个正则表达式

问题描述

我正在尝试根据 ansible 收集的工件替换文件中的名称。有一些简单的方法可以用ONE完成这项任务 lineinfile

像这样的东西,

lineinfile:
    path: '/somefile.conf'
    regexp: '{{ item.regexp }}'
    line: '{{ item.line }}'
  with_items:
    - { regexp: '^DB_TYPE=', line: "DB_TYPE=mysql" } when: mysql.stat.exists
    - { regexp: '^DB_TYPE=', line: "DB_TYPE=oracle" } when: oracle.stat.exists

标签: ansiblejinja2

解决方案


这可以通过if ... else ... if

  lineinfile:
    path: '/somefile.conf'
    regexp: '^DB_TYPE='
    line: "{{ 'DB_TYPE=mysql' if mysql.stat.exists else 'DB_TYPE=oracle' if oracle.stat.exists }}"

推荐阅读