仅当 Ubuntu 服务器上启用了 ufw 时,我才需要运行一些任务。
伪代码如下所示:
- name: detect if ufw is enabled
magical_module: ???
register: ufw_is_enabled
- name: my task
when: ufw_is_enabled
Run Code Online (Sandbox Code Playgroud)
我只看到这个不优雅的解决方案:
ufs statusroot@test:~# ufw status
Status: inactive
Run Code Online (Sandbox Code Playgroud)
也许启用 ufw 时有一些文件?在这种情况下,就可以使用stat模块了。还有其他解决方案吗?
大致如下:
- name: check whether ufw status is active
shell: ufw status
changed_when: false
register: ufw_check
- debug:
msg: "{{ ufw_check }}"
- name: do something if ufw is enabled
shell: echo
when: "'inactive' not in ufw_check.stdout"
Run Code Online (Sandbox Code Playgroud)
确保使用become: true,因为需要 root 权限才能成功执行该命令。
要使用 UFW 模块管理系统,请参阅此 Ansible 模块
例如,您可以在想要禁用 UFW 的系统上禁用它:
- name: Disable UFW on hosts
ufw:
state: disabled # unloads firewall and disables firewall on boot.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |