cisco.iosxr.iosxr_user – Управление совокупностью локальных пользователей на устройстве Cisco IOS XR
Примечание
Этот плагин является частью коллекции cisco.iosxr (версия 1.2.1).
Для его установки используйте: ansible-galaxy collection install cisco.iosxr.
Для использования в книге задач укажите: cisco.iosxr.iosxr_user.
Новое в версии 1.0.0: of cisco.iosxr
Обзор
- Этот модуль обеспечивает декларативное управление локальными именами пользователей, настроенными на сетевых устройствах. Он позволяет книгам задач управлять либо отдельными именами пользователей, либо совокупностью имён пользователей в текущей рабочей конфигурации. Он также поддерживает удаление имён пользователей из конфигурации, которые не определены явно.
Примечание
У этого модуля есть соответствующий плагин действий.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ncclient >= 0.5.3 при использовании netconf
- lxml >= 4.1.1 при использовании netconf
- base64 при использовании public_key_contents или public_key
- paramiko при использовании public_key_contents или public_key
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| admin boolean |
| Переходит в режим администрирования для внесения изменений в конфигурацию устройства. Применимо только при использовании транспорта network_cli | |
| aggregate список / элементы=словарь | Набор объектов имен пользователей, которые необходимо настроить на удалённом устройстве Cisco IOS XR. Элементы списка могут быть именем пользователя или хешем из имени пользователя и свойств. Этот аргумент взаимоисключающий с аргументом name.Псевдонимы: users, collection | ||
| admin boolean |
| Переходит в режим администрирования для внесения изменений в конфигурацию устройства. Применимо только при использовании транспорта network_cli | |
| configured_password строка | Пароль, который необходимо настроить на устройстве Cisco IOS XR. Пароль должен быть предоставлен в открытом виде. Пароль шифруется на устройстве при использовании cli и Ansible при использовании netconf с использованием той же техники хеширования MD5 с размером соли 3. Обратите внимание, что этот параметр отличается от provider password. | ||
| group строка | Настраивает группу для имени пользователя в рабочей конфигурации устройства. Аргумент принимает строковое значение, определяющее имя группы. Этот аргумент не проверяет, была ли группа настроена на устройстве. Псевдонимы: role | ||
| groups список / элементы=строка | Настраивает группы для имени пользователя в рабочей конфигурации устройства. Аргумент принимает список имён групп. Этот аргумент не проверяет, была ли группа настроена на устройстве. Он похож на команду aggregate для имён пользователей, но позволяет настраивать несколько групп для пользователя(ей). | ||
| name строка / обязательно | Имя пользователя, которое необходимо настроить на устройстве Cisco IOS XR. Этот аргумент принимает строковое значение и взаимоисключающий с аргументом aggregate . Обратите внимание, что этот параметр отличается от provider username. | ||
| public_key строка | Настраивает содержимое файла открытого ключа для загрузки на узел IOS-XR. Это позволяет пользователям входить в систему с помощью соответствующего закрытого ключа. IOS-XR принимает только файлы, декодированные в base64, поэтому они будут декодированы и загружены на узел. Обратите внимание, что это требует файла открытого ключа OpenSSL, сгенерированные PuTTy файлы не подойдут! Взаимоисключающий с public_key_contents. Если используется с несколькими пользователями в агрегатах, то один и тот же файл ключа используется для всех пользователей. | ||
| public_key_contents строка | Настраивает содержимое файла открытого ключа для загрузки на узел IOS-XR. Это позволяет пользователям входить в систему с помощью соответствующего закрытого ключа. IOS-XR принимает только файлы, декодированные в base64, поэтому они будут декодированы и загружены на узел. Обратите внимание, что это требует файла открытого ключа OpenSSL, сгенерированные PuTTy файлы не подойдут! Взаимоисключающий с public_key. Если используется с несколькими пользователями в агрегатах, то один и тот же файл ключа используется для всех пользователей. | ||
| state строка |
| Настраивает состояние определения имени пользователя, связанное с рабочей конфигурацией устройства. При значении present имя пользователя(ей) должно быть настроено в активной конфигурации устройства, а при значении absent имя пользователя(ей) не должно быть в активной конфигурации устройства. | |
| update_password строка |
| Поскольку пароли зашифрованы в конфигурации устройства, этот аргумент указывает модулю, когда нужно изменить пароль. При значении always, пароль всегда будет обновлён на устройстве, а при значении on_create, пароль будет обновлён только в случае создания имени пользователя. | |
| configured_password строка | Пароль, который необходимо настроить на устройстве Cisco IOS XR. Пароль должен быть предоставлен в открытом виде. Пароль шифруется на устройстве при использовании cli и Ansible при использовании netconf с использованием той же техники хеширования MD5 с размером соли 3. Обратите внимание, что этот параметр отличается от provider password. | ||
| group строка | Настраивает группу для имени пользователя в рабочей конфигурации устройства. Аргумент принимает строковое значение, определяющее имя группы. Этот аргумент не проверяет, была ли группа настроена на устройстве. Псевдонимы: role | ||
| groups список / элементы=строка | Настраивает группы для имени пользователя в рабочей конфигурации устройства. Аргумент принимает список имён групп. Этот аргумент не проверяет, была ли группа настроена на устройстве. Он похож на команду aggregate для имён пользователей, но позволяет настраивать несколько групп для пользователя(ей). | ||
| name строка | Имя пользователя, которое необходимо настроить на устройстве Cisco IOS XR. Этот аргумент принимает строковое значение и взаимоисключающий с аргументом aggregate . Обратите внимание, что этот параметр отличается от provider username. | ||
| provider словарь | Устаревший Начиная с Ansible 2.5, рекомендуем использовать connection: network_cli.Для получения дополнительной информации, обратитесь к Руководству по сети. Объект словаря, содержащий детали подключения. | ||
| host строка | Указывает имя или адрес DNS хоста для подключения к удалённому устройству через указанный транспорт. Значение host используется в качестве адреса назначения для транспорта. | ||
| password строка | Указывает пароль для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_PASSWORD. | ||
| port целое число | Указывает порт для создания соединения с удалённым устройством. | ||
| ssh_keyfile путь | Указывает SSH ключ для аутентификации подключения к удалённому устройству. Это значение является путём к ключу, используемому для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_SSH_KEYFILE. | ||
| timeout целое число | Указывает таймаут в секундах для связи с сетевым устройством для подключения или отправки команд. Если таймаут истечёт до завершения операции, модуль выдаст ошибку. | ||
| transport строка |
| Указывает тип транспорта, используемого для соединения. | |
| username строка | Настраивает имя пользователя для аутентификации подключения к удалённому устройству. Это значение используется для аутентификации сеанса SSH. Если значение не указано в задаче, вместо него используется значение переменной окружения ANSIBLE_NET_USERNAME. | ||
| public_key строка | Настраивает содержимое файла открытого ключа для загрузки на узел IOS-XR. Это позволяет пользователям входить в систему с помощью соответствующего закрытого ключа. IOS-XR принимает только файлы, декодированные в base64, поэтому они будут декодированы и загружены на узел. Обратите внимание, что это требует файла открытого ключа OpenSSL, сгенерированные PuTTy файлы не подойдут! Взаимоисключающий с public_key_contents. Если используется с несколькими пользователями в агрегатах, то один и тот же файл ключа используется для всех пользователей. | ||
| public_key_contents строка | Настраивает содержимое файла открытого ключа для загрузки на узел IOS-XR. Это позволяет пользователям входить в систему с помощью соответствующего закрытого ключа. IOS-XR принимает только файлы, декодированные в base64, поэтому они будут декодированы и загружены на узел. Обратите внимание, что это требует файла открытого ключа OpenSSL, сгенерированные PuTTy файлы не подойдут! Взаимоисключающий с public_key. Если используется с несколькими пользователями в агрегатах, то один и тот же файл ключа используется для всех пользователей. | ||
| purge boolean |
| Указывает модулю рассматривать определение ресурса как абсолютное. Он удалит все ранее настроенные имена пользователей на устройстве, за исключением пользователя `admin` и текущего набора пользователей. | |
| state строка |
| Настраивает состояние определения имени пользователя, связанное с рабочей конфигурацией устройства. При значении present имя пользователя(ей) должно быть настроено в активной конфигурации устройства, а при значении absent имя пользователя(ей) не должно быть в активной конфигурации устройства. | |
| update_password string |
| Так как пароли зашифрованы в конфигурации устройства, этот аргумент укажет модулю, когда следует изменить пароль. При установке значения always, пароль всегда будет обновляться на устройстве, а при установке значения on_create, пароль будет обновлён только в том случае, если имя пользователя создано. | |
Примечания
Примечание
- Этот модуль работает с подключением
network_cliиnetconf. См. параметры платформы IOS-XR. - Тестировалось на IOS XRv 6.1.3
- Дополнительную информацию об использовании Ansible для управления сетевыми устройствами см. в Руководстве по сетям Ansible
- Дополнительную информацию об использовании Ansible для управления устройствами Cisco см. на странице интеграции Cisco.
Примеры
- name: create a new user
cisco.iosxr.iosxr_user:
name: ansible
configured_password: mypassword
state: present
- name: create a new user in admin configuration mode
cisco.iosxr.iosxr_user:
name: ansible
configured_password: mypassword
admin: true
state: present
- name: remove all users except admin
cisco.iosxr.iosxr_user:
purge: true
- name: set multiple users to group sys-admin
cisco.iosxr.iosxr_user:
aggregate:
- name: netop
- name: netend
group: sysadmin
state: present
- name: set multiple users to multiple groups
cisco.iosxr.iosxr_user:
aggregate:
- name: netop
- name: netend
groups:
- sysadmin
- root-system
state: present
- name: Change Password for User netop
cisco.iosxr.iosxr_user:
name: netop
configured_password: '{{ new_password }}'
update_password: always
state: present
- name: Add private key authentication for user netop
cisco.iosxr.iosxr_user:
name: netop
state: present
public_key_contents: "{{ lookup('file', '/home/netop/.ssh/id_rsa.pub' }}"
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| commands список / элементы=строка | всегда | Список команд конфигурационного режима, которые необходимо отправить устройству Пример: ['username ansible secret password group sysadmin', 'username admin secret admin'] |
| xml список / элементы=строка | всегда (пустой список, если нет xml rpc для отправки) | xml rpc NetConf, отправленные на устройство с транспортом netconf
Пример: ['<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> <aaa xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-lib-cfg"> <usernames xmlns="http://cisco.com/ns/yang/Cisco-IOS-XR-aaa-locald-cfg"> <username xc:operation="merge"> <name>test7</name> <usergroup-under-usernames> <usergroup-under-username> <name>sysadmin</name> </usergroup-under-username> </usergroup-under-usernames> <secret>$1$ZsXC$zZ50wqhDC543ZWQkkAHLW0</secret> </username> </usernames> </aaa> </config>'] |
Авторы
- Trishna Guha (@trishnaguha)
- Sebastiaan van Doesselaar (@sebasdoes)
- Kedar Kekan (@kedarX)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/cisco/iosxr/iosxr_user_module.html