cisco.iosxr.iosxr_user – Управление совокупностью локальных пользователей на устройстве Cisco IOS XR
Примечание
Этот плагин входит в коллекцию cisco.iosxr (версия 1.2.0).
Для его установки используйте: ansible-galaxy collection install cisco.iosxr.
Для использования в playbook, укажите: cisco.iosxr.iosxr_user.
Добавлен в версии 1.0.0: cisco.iosxr
Обзор
- Этот модуль обеспечивает декларативное управление локальными именами пользователей, настроенными на сетевых устройствах. Он позволяет playbooks управлять как отдельными именами пользователей, так и совокупностью имен пользователей в текущей рабочей конфигурации. Он также поддерживает удаление имен пользователей из конфигурации, которые не определены явно.
Примечание
У этого модуля есть соответствующий плагин действий.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- 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.псевдонимы: пользователи, коллекция | ||
| admin boolean |
| Переходит в режим администрирования для внесения изменений в конфигурацию устройства. Применимо только при использовании транспорта network_cli | |
| configured_password строка | Пароль, который нужно настроить на устройстве Cisco IOS XR. Пароль должен быть предоставлен в открытом виде. Пароль шифруется на устройстве при использовании cli и Ansible при использовании netconf с помощью того же метода хеширования MD5 с размером соли 3. Обратите внимание, что этот параметр отличается от provider password. | ||
| group строка | Настраивает группу для имени пользователя в рабочей конфигурации устройства. Аргумент принимает строковое значение, определяющее имя группы. Этот аргумент не проверяет, настроена ли группа на устройстве. псевдонимы: роль | ||
| 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 строка | Настраивает группу для имени пользователя в рабочей конфигурации устройства. Аргумент принимает строковое значение, определяющее имя группы. Этот аргумент не проверяет, настроена ли группа на устройстве. псевдонимы: роль | ||
| 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 |
| Since passwords are encrypted in the device running config, this argument will instruct the module when to change the password. When set to always, the password will always be updated in the device and when set to on_create the password will be updated only if the username is created. | |
Примечания
Примечание
- Этот модуль работает с соединениями
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 list / elements=string | always | Список команд режима конфигурации для отправки устройству Пример: ['username ansible secret password group sysadmin', 'username admin secret admin'] |
| xml list / elements=string | always (пустой список, если нет 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/cisco/iosxr/iosxr_user_module.html