Ansible 替换大配置文件中的值
Ansible replace a value in big config file
我有一个超过 3000 行的配置文件,我只需要 change/replace 几个参数。
因为配置文件很大。我无法使用模板。
需要帮助替换以下参数。
gateway-config {
enable = true
host-name = "car-cache"
port = 202
batch-size = 100
patterns = ["^((test))"]
type = LINE
prefix = "stats."${auth}".service"
}
k9-config {
enable = true
send-enable = false
host-name = ${auth}
connection-timeout = 120000
read-timeout = 60000
proxy = ""
project = "Networking"
period = 120
我只需要在某些配置上将 enable = false
替换为 enable = true
,但是当我使用替换模块时,整个 enable = false
在配置文件中被替换。
你能用替换模块吗:
---
- name: Replace variable
replace:
path: "/etc/repli.conf"
after: "hite-config {"
regexp: "enable = false"
replace: "enable = true"
您实际上可以将 replace module 与 after
和 before
参数一起使用:
- name: Replace between the expressions (requires Ansible >= 2.4)
replace:
path: /path/to/your/file
after: 'gateway-config {'
before: '}'
regexp: '^(\s*enable = )false$'
replace: '\g<1>true'
我有一个超过 3000 行的配置文件,我只需要 change/replace 几个参数。 因为配置文件很大。我无法使用模板。
需要帮助替换以下参数。
gateway-config {
enable = true
host-name = "car-cache"
port = 202
batch-size = 100
patterns = ["^((test))"]
type = LINE
prefix = "stats."${auth}".service"
}
k9-config {
enable = true
send-enable = false
host-name = ${auth}
connection-timeout = 120000
read-timeout = 60000
proxy = ""
project = "Networking"
period = 120
我只需要在某些配置上将 enable = false
替换为 enable = true
,但是当我使用替换模块时,整个 enable = false
在配置文件中被替换。
你能用替换模块吗:
---
- name: Replace variable
replace:
path: "/etc/repli.conf"
after: "hite-config {"
regexp: "enable = false"
replace: "enable = true"
您实际上可以将 replace module 与 after
和 before
参数一起使用:
- name: Replace between the expressions (requires Ansible >= 2.4)
replace:
path: /path/to/your/file
after: 'gateway-config {'
before: '}'
regexp: '^(\s*enable = )false$'
replace: '\g<1>true'