Ansible Проверка соответствия конфигурации Cisco для недействительных пользователей - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь проверить конфигурацию Cisco с помощью Ansible. Я хочу иметь возможность узнать, были ли настроены какие-либо пользователи, кроме действительных.

Допустимые пользователи: имя пользователя 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 }}"

Это распечатает трех пользователей. Не знаю, где go дальше.

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Следующим вариантом может быть «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']
0 голосов
/ 06 августа 2020

Спасибо за это. Ваше решение работает нормально. Я поставил первый вариант, так как не всегда знаю, что такое «неправильные» пользователи.

...