我想在passwd中仅替换jenkins用户的主目录,我猜lineinfile
对此不好,因为它将替换所有行,我需要保留用户ID和组ID,例如:
当前行:jenkins:x:1002:1002::/home/jenkins:/bin/bash
更改为:jenkins:x:1002:1002::/var/lib/jenkins:/bin/bash
/ home / jenkins - >的/ var / lib中/詹金斯
- name: Set the Jenkins home directory in passwd
lineinfile:
dest: /etc/passwd
regexp: '^jenkins=.*'
line: '?'
register: jenkins_passwd
notify: restart jenkins
答案 0 :(得分:2)
匹配
php.ini
替换为
^(jenkins:.:\d+:\d+::)[^:]*
这匹配正确格式化的\1/var/lib/jenkins
行到其主目录的开头。我们希望保留的信息分组在一个捕获组中,该组在当前主目录定义之前停止。要替换,我们引用该组然后添加新的主目录定义。该行的结尾保持不变。
答案 1 :(得分:0)
匹配
:: *詹金斯
替换为
::的/ var / lib中/詹金斯