ansible - 针对无效用户的 Ansible Cisco 配置合规性检查
问题描述
我正在尝试使用 Ansible 验证 Cisco 配置。我希望能够判断是否配置了除有效用户之外的任何用户。
有效用户:用户名 admin,用户名只读
无效用户:用户名secretbackdoor
我试图创建一个用户列表,然后标记任何无效的用户。我到目前为止的代码如下:
---
- hosts: cisco
gather_facts: no
tasks:
- name: show run
ios_command:
commands:
- show run
register: cisco_show_run
- name: list_cisco_usernames
set_fact: cisco_usernames="{{ cisco_show_run.stdout[0] | regex_findall('username (\S+)', multiline=True) }}"
- name: print usernames
debug:
msg: {{ item }}
with_items: "{{ cisco_usernames }}"
这将打印出三个用户。不知道下一步该去哪里。
解决方案
“设置理论过滤器”可能是下一个选项。例如
- hosts: localhost
vars:
valid_users: [admin, readonly]
invalid_users: [secretbackdoor]
cisco_usernames: [admin, readonly, secretbackdoor]
tasks:
- name: Display users not in valid_users
debug:
msg: Not among valid users {{ not_valid }}
when: not_valid|length > 0
vars:
not_valid: "{{ cisco_usernames|difference(valid_users) }}"
- name: Display users in invalid_users
debug:
msg: Among invalid users {{ not_valid }}
when: not_valid|length > 0
vars:
not_valid: "{{ cisco_usernames|intersect(invalid_users) }}"
给出(删节)
ok: [localhost] =>
msg: Not among valid users ['secretbackdoor']
ok: [localhost] =>
msg: Among invalid users ['secretbackdoor']
推荐阅读
- python - 保存期间将一个模型字段计数的值保存到同一模型的另一个字段
- inline - 有没有办法为 quill js 构建一个嵌套的内联印迹?
- php - 自定义插件访问订阅者角色 - 权限被拒绝
- dart - 如何获得特定的集合
DartType 用于分析器? - long-path - 在 Windows 10 主页上启用长路径
- python - 如何在 countvectorizer 中使用 max_features 参数对某些特征进行优先级排序
- ios - 在不同机器上的 M1 反应本机(firebase)上构建失败
- javascript - 在没有 webpack 的情况下使用 PhysxJS——没有碰撞物理工作
- oracle - 将 OWB11gR1(11.1.0.7) 升级到 OWB11gR2(11.2.0.4) 时,存储库创建失败
- javascript - JSDoc如何在自动完成对话框中获取参数/道具评论?