问题描述
想知道如何使用Ansible命令在CloudLinux 7上正确运行以下CloudLinux Imunify360命令(类似于CentOS7)。用户尝试了不同的方法来“转义”命令中的冒号,但无论如何都无法正确运行,即使YAML语法检查器显示它是正确的。
imunify360-agent config update '{"MALWARE_SCANNING": {"rapid_scan": true}}'
imunify360-agent config update '{"MALWARE_SCANNING": {"default_action": "cleanup"}, "MALWARE_SCAN_SCHEDULE":{"interval": "week"}}'
imunify360-agent config update '{"MALWARE_SCANNING": {"enable_scan_inotify": true}}'
来源:https://blog.imunify360.com/new-default-settings-for-imunify360
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在使用Ansible命令时,可以使用单引号来解决冒号转义的问题。以下是使用Ansible命令运行Imunify360命令的步骤:
- 在Ansible playbook中创建一个任务(task)。
- 使用
command
模块来运行Imunify360命令。 - 在命令中使用单引号来包裹参数。
以下是一个示例Ansible playbook的代码:
- name: Enable rapid scan
command: imunify360-agent config update '{"MALWARE_SCANNING": {"rapid_scan": true}}'
- name: Cleanup scan schedule
command: imunify360-agent config update '{"MALWARE_SCANNING": {"default_action": "cleanup"}, "MALWARE_SCAN_SCHEDULE":{"interval": "week"}}'
- name: Enable scan inotify
command: imunify360-agent config update '{"MALWARE_SCANNING": {"enable_scan_inotify": true}}'
在上面的示例中,我们创建了三个任务,分别用于启用快速扫描、清理扫描计划和启用inotify扫描。在每个任务的command
属性中,我们使用单引号来包裹Imunify360命令的参数。
方案2
使用折叠块标量(>)可以更方便地避免转义问题。
另一种方法是使用折叠块标量(>
)来运行Imunify360命令。折叠块标量通常用于多行字符串,因为它们会将换行符替换为一个空格,但它们不会解析转义序列,因此不需要进行转义。
以下是使用折叠块标量运行Imunify360命令的示例:
- name: Enable rapid scan
command: >-
imunify360-agent config update '{"MALWARE_SCANNING": {"rapid_scan": true}}'
- name: Cleanup scan schedule
command: >-
imunify360-agent config update '{"MALWARE_SCANNING": {"default_action": "cleanup"}, "MALWARE_SCAN_SCHEDULE":{"interval": "week"}}'
- name: Enable scan inotify
command: >-
imunify360-agent config update '{"MALWARE_SCANNING": {"enable_scan_inotify": true}}'
在上面的示例中,我们使用折叠块标量(>-
)来定义每个任务的命令。这将确保命令中的冒号不会被解析为转义字符。
请注意,使用折叠块标量时,末尾的换行符不会被删除,因此我们可以在每个命令的末尾添加一个连字符(-
)来删除换行符。
以上是使用Ansible命令更新imunify360设置的两种解决方案。根据您的需求和偏好,选择适合您的方法即可。