针对无效用户的 Ansible Cisco 配置合规性检查
Ansible Cisco configuration compliance check for invalid users
我正在尝试使用 Ansible 验证 Cisco 配置。我想知道是否配置了除有效用户以外的任何用户。
有效用户:
用户名管理员,
用户名只读
无效用户:
用户名秘密后门
我尝试创建一个用户列表,然后标记所有无效的用户。到目前为止我的代码如下:
---
- 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 }}"
这将打印出三个用户。不确定下一步要去哪里。
"Set Theory Filters" 可能是下一个选项。例如
- 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']
谢谢。您的解决方案工作正常。我选择了第一个选项,因为我并不总是知道 'incorrect' 用户是什么。
我正在尝试使用 Ansible 验证 Cisco 配置。我想知道是否配置了除有效用户以外的任何用户。
有效用户: 用户名管理员, 用户名只读
无效用户: 用户名秘密后门
我尝试创建一个用户列表,然后标记所有无效的用户。到目前为止我的代码如下:
---
- 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 }}"
这将打印出三个用户。不确定下一步要去哪里。
"Set Theory Filters" 可能是下一个选项。例如
- 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']
谢谢。您的解决方案工作正常。我选择了第一个选项,因为我并不总是知道 'incorrect' 用户是什么。