Ansible playbook - 更改配置文件中的行

Ansible playbook - 更改配置文件中的行

我需要编写一个剧本来替换locking_dir = "/var/lock/lvm"使用ansiblelocking_dir = "/run/lock"中的行/etc/lvm/lvm.conf

/root # cat /etc/lvm/lvm.conf | grep locking_dir | grep -v '#'
    locking_dir = "/var/lock/lvm"

locking_dir = "/run/lock"

答案1

作为临时命令:

ansible '<hosts>' -m lineinfile -a "dest=/etc/lvm/lvm.conf backrefs=yes regexp='^(locking_dir)' line='\1 = \"/run/lock\"' state=present"

作为剧本的一部分:

- lineinfile:
    dest: /etc/lvm/lvm.conf
    backrefs: yes
    regexp: '^(locking_dir)'
    line: '\1 = \"/run/lock\"'
    state: present

我相信lvm.conf只有一行以开头,locking_dir所以我没有费心使用正则表达式来匹配完整的行。否则正则表达式会是这样的'^locking_dir = \"/var/lock/lvm\"'

相关内容