背景:
我想在/etc/fstab
注释掉以下一行:
/dev/mapper/rhel-swap swap swap defaults 0 0
在阅读Salt documentation on salt.states.file.comment后,我在.sls
:
Permanently Disable Swap Memory:
file.comment:
- name: /etc/fstab
- regex: swap
(我也试过^swap
。)
输出:
ID: Permanently Disable Swap Memory on Cassandra Nodes
Function: file.comment
Name: /etc/fstab
Result: True
Comment: Commented lines successfully
Started: 08:13:09.809454
Duration: 25.587 ms
Changes:
----------
/etc/fstab:
updated
结果:该行仍未被注释掉。注意Salt安装后/etc/fstab
中的最后一行:
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=69cb98f5-5325-4168-a28c-c1219081ae16 /boot xfs defaults 0 0
/dev/mapper/rhel-home /home xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
~
问题:
尽管Salt的成功输出,为什么不会注释掉这条线?
文档说我需要包含前导^
锚点,但是不匹配行的开头?如何使用^
进行正则表达式工作,并且还匹配出现在行中间的单词swap
?
其他信息:
答案 0 :(得分:1)
不确定为什么它最初没有工作,但这是正常的正则表达式:^(\/).*swap.*$
。这匹配任何以/
开头且包含单词swap
的行。
这是完整的盐步骤:
Permanently Disable Swap Memory:
file.comment:
- name: /etc/fstab
- regex: ^(\/).*swap.*$