Spec-Zone.ru › Ansible

Модуль cisco.ios.ios_user — модуль для управления группами локальных пользователей.

Примечание

Этот модуль входит в коллекцию cisco.ios (версия 11.4.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install cisco.ios.

Чтобы использовать коллекцию в плейбуке, укажите: cisco.ios.ios_user.

Добавлено в cisco.ios 1.0.0

  • Краткое описание
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Этот модуль обеспечивает декларативное управление локальными именами пользователей, настроенными на сетевых устройствах. Он позволяет плейбукам управлять отдельными именами пользователей или их группой в текущей активной конфигурации. Также поддерживается удаление из конфигурации имен пользователей, которые не были указаны явно.

Примечание

Для этого модуля имеется соответствующий плагин действий.

Псевдонимы: user

Параметры

Параметр

Комментарии

aggregate

псевдонимы: users, collection

list / элементы=dictionary

Набор объектов имен пользователей для настройки на удаленном устройстве Cisco IOS. Элементы списка могут быть как именами пользователей, так и хешами с именем пользователя и его свойствами. Этот аргумент взаимоисключающий с аргументом name.

configured_password

string

Пароль для настройки на устройстве Cisco IOS. Пароль необходимо указать в открытом виде; на устройстве он будет зашифрован. Обратите внимание, что этот параметр отличается от provider password.

hashed_password

dictionary

Этот параметр позволяет настраивать хешированные пароли на устройствах Cisco IOS.

type

integer / обязательный

Указывает тип хеша (например, 5 для MD5, 8 для PBKDF2 и т. д.)

Для работы этой функции устройство должно поддерживать требуемый тип хеша

value

string / обязательный

Фактическое значение хешированного пароля для настройки на устройстве

name

string / обязательный

Имя пользователя для настройки на устройстве Cisco IOS. Этот аргумент принимает строковое значение и является взаимоисключающим с аргументом aggregate. Обратите внимание, что этот параметр отличается от provider username.

nopassword

boolean

Определяет имя пользователя без назначения пароля. Это позволит пользователю входить в систему без проверки паролем.

Допустимые значения:

  • false
  • true

password_type

string

Этот аргумент определяет, будет ли настроен параметр ‘password’ или ‘secret’.

Допустимые значения:

  • "secret"
  • "password"

privilege

integer

Аргумент privilege задает уровень привилегий пользователя при входе в систему. Этот аргумент принимает целочисленные значения от 1 до 15.

purge_keys

boolean

Поскольку на устройствах cisco.ios для каждого пользователя допускается не более двух ключей, этот параметр позволяет удалять ключи, не переданные в параметре sshkey, чтобы записать передаваемые новые ключи.

Будут удалены все ранее настроенные ключи sshkeys пользователя, которые не совпадают с предоставленным списком sshkey; исключение составляет пользователь `admin`.

Работает только при состоянии ‘present’ и если задан параметр ‘sshkey’

Допустимые значения:

  • false
  • true

sshkey

list / элементы=string

Указывает до двух открытых ключей SSH для настройки указанного имени пользователя.

Этот аргумент принимает допустимое значение ключа SSH.

state

string

Задает состояние определения имени пользователя относительно рабочей конфигурации устройства. Если указано present, имена пользователей должны быть в активной конфигурации устройства; если указано absent, их не должно быть в активной конфигурации устройства

Допустимые значения:

  • "present"
  • "absent"

update_password

string

Поскольку пароли зашифрованы в текущей конфигурации устройства, этот аргумент указывает модулю, когда следует менять пароль. Если задано значение always, пароль будет обновляться на устройстве всегда; если задано on_create, пароль будет обновлен только при создании имени пользователя.

Допустимые значения:

  • "on_create"
  • "always"

view

псевдонимы: role

string

Настраивает представление для имени пользователя в текущей конфигурации устройства. Аргумент принимает строковое значение, задающее имя представления. Этот аргумент не проверяет, настроено ли представление на устройстве.

configured_password

string

Пароль для настройки на устройстве Cisco IOS. Пароль необходимо указать в открытом виде; на устройстве он будет зашифрован. Обратите внимание, что этот параметр отличается от provider password.

hashed_password

dictionary

Этот параметр позволяет настраивать хешированные пароли на устройствах Cisco IOS.

type

integer / обязательный

Указывает тип хеша (например, 5 для MD5, 8 для PBKDF2 и т. д.)

Для работы этой функции устройство должно поддерживать требуемый тип хеша

value

string / обязательный

Фактическое значение хешированного пароля для настройки на устройстве

name

string

Имя пользователя для настройки на устройстве Cisco IOS. Этот аргумент принимает строковое значение и является взаимоисключающим с аргументом aggregate. Обратите внимание, что этот параметр отличается от provider username.

nopassword

boolean

Определяет имя пользователя без назначения пароля. Это позволит пользователю входить в систему без проверки паролем.

Допустимые значения:

  • false
  • true

password_type

string

Этот аргумент определяет, будет ли настроен параметр ‘password’ или ‘secret’.

Допустимые значения:

  • "secret" ← (по умолчанию)
  • "password"

privilege

integer

Аргумент privilege задает уровень привилегий пользователя при входе в систему. Этот аргумент принимает целочисленные значения от 1 до 15.

purge

boolean

Указывает модулю считать определение ресурса исчерпывающим. Будут удалены все ранее настроенные на устройстве имена пользователей, кроме пользователя `admin` (текущий заданный набор пользователей).

Допустимые значения:

  • false ← (по умолчанию)
  • true

purge_keys

boolean

Поскольку на устройствах cisco.ios для каждого пользователя допускается не более двух ключей, этот параметр позволяет удалять ключи, не переданные в параметре sshkey, чтобы записать передаваемые новые ключи.

Будут удалены все ранее настроенные ключи sshkeys пользователя, которые не совпадают с предоставленным списком sshkey; исключение составляет пользователь `admin`.

Работает только при состоянии ‘present’ и если задан параметр ‘sshkey’

Допустимые значения:

  • false ← (по умолчанию)
  • true

sshkey

list / элементы=string

Указывает до двух открытых ключей SSH для настройки указанного имени пользователя.

Этот аргумент принимает допустимое значение ключа SSH.

state

string

Задает состояние определения имени пользователя относительно рабочей конфигурации устройства. Если указано present, имена пользователей должны быть в активной конфигурации устройства; если указано absent, их не должно быть в активной конфигурации устройства

Допустимые значения:

  • "present" ← (по умолчанию)
  • "absent"

update_password

string

Поскольку пароли зашифрованы в текущей конфигурации устройства, этот аргумент указывает модулю, когда следует менять пароль. Если задано значение always, пароль будет обновляться на устройстве всегда; если задано on_create, пароль будет обновлен только при создании имени пользователя.

Допустимые значения:

  • "on_create"
  • "always" ← (по умолчанию)

view

псевдонимы: role

string

Настраивает представление для имени пользователя в текущей конфигурации устройства. Аргумент принимает строковое значение, задающее имя представления. Этот аргумент не проверяет, настроено ли представление на устройстве.

Примечания

Примечание

  • Проверено на Cisco IOSXE версии 17.3 в CML.
  • Этот модуль работает с подключением network_cli. См. https://docs.ansible.com/ansible/latest/network/user_guide/platform_ios.html
  • Дополнительные сведения об использовании Ansible для управления сетевыми устройствами см. в :ref:`руководстве по сетям Ansible <network_guide>`
  • Дополнительные сведения об использовании Ansible для управления устройствами Cisco см. на `странице интеграции Cisco <https://www.ansible.com/integrations/networks/cisco>`_.

Примеры

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username testuser privilege 15 password 0 password

# Present state create a new user play:
# -------------------------------------

- name: Create a new user
  cisco.ios.ios_user:
    name: ansible
    nopassword: true
    sshkey: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
    state: present

# Task Output
# -----------

# commands:
# - ip ssh pubkey-chain
# - username ansible
# - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora
# - exit
# - exit
# - username ansible nopassword

# After state:
# ------------

# router-ios#show running-config | section username
# username testuser privilege 15 password 0 password
# username ansible nopassword
#   username ansible
#    key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username testuser privilege 15 password 0 password

# Present state create a new user with multiple keys play:
# --------------------------------------------------------

- name: Create a new user with multiple keys
  cisco.ios.ios_user:
    name: ansible
    sshkey:
      - "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
      - "{{ lookup('file', '~/path/to/public_key') }}"
    state: present

# Task Output
# -----------

# commands:
# - ip ssh pubkey-chain
# - username ansible
# - key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora
# - key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora
# - exit
# - exit

# After state:
# ------------

# router-ios#show running-config | section username
# username testuser privilege 15 password 0 password
#   username ansible
#    key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora
#    key-hash ssh-rsa 1985673DCF7FA9A0F374BB97DC2ABB27 test@fedora

# Using purge_keys: true

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username testuser privilege 15 password 0 password
# username ansible nopassword
#   username ansible
#    key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora

# Purge existing keys for a user and write new keys:
# ----------------------------------

- name: Update user by adding new key and purging existing keys
  cisco.ios.ios_user:
    name: ansible
    sshkey:
      - "{{ lookup('file', '~/path/to/public_key') }}"
    purge_keys: true

# Task Output
# -----------

# commands:
# - ip ssh pubkey-chain
# - username ansible
# - no key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora
# - exit
# - exit
# - ip ssh pubkey-chain
# - username ansible
# - key-hash ssh-rsa B2C881222DB43D58A229EDF19D2228A2 test2@fedora
# - exit
# - exit

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username ansible nopassword
#   username ansible
#    key-hash ssh-rsa B2C881222DB43D58A229EDF19D2228A2 test2@fedora

# Using Purge: true

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username testuser privilege 15 password 0 password
# username ansible nopassword
#   username ansible
#    key-hash ssh-rsa 2ABB27BBC33ED53EF7D55037952ABB27 test@fedora

# Purge all users except admin play:
# ----------------------------------

- name: Remove all users except admin
  cisco.ios.ios_user:
    purge: true

# Task Output
# -----------

# commands:
# - no username testuser
# - no username ansible
# - ip ssh pubkey-chain
# - no username ansible
# - exit

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password

# Using Purge: true

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username testuser privilege 15 password 0 password1
# username testuser1 privilege 15 password 0 password2
# username ansible nopassword

# Purge all users except admin and these listed users play:
# ---------------------------------------------------------

- name: Remove all users except admin and these listed users
  cisco.ios.ios_user:
    aggregate:
      - name: testuser
      - name: testuser1
    purge: true

# Task Output
# -----------


# commands:
# - no username ansible

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username testuser privilege 15 password 0 password1
# username testuser1 privilege 15 password 0 password2

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username netop password 0 password1
# username netend password 0 password2

# Present state set multiple users to privilege level 15 play:
# ------------------------------------------------------------

- name: Set multiple users to privilege level 15
  cisco.ios.ios_user:
    aggregate:
      - name: netop
      - name: netend
    privilege: 15
    state: present

# Task Output
# -----------

# commands:
# - username netop privilege 15
# - username netend privilege 15

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username netop privilege 15 password 0 password1
# username netend privilege 15 password 0 password2

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username netop privilege 15 password 0 oldpassword

# Present state Change Password for User netop play:
# --------------------------------------------

- name: Change Password for User netop
  cisco.ios.ios_user:
    name: netop
    configured_password: "newpassword"
    password_type: password
    update_password: always
    state: present

# Task Output
# -----------

# commands:
# - username netop password newpassword

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username netop privilege 15 password 0 newpassword

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username netop privilege 15 password 0 password
# username netend privilege 15 password 0 password

# Present state set user view/role for users play:
# --------------------------------------------

- name: Set user view/role for users
  cisco.ios.ios_user:
    aggregate:
      - name: netop
      - name: netend
    view: network-admin
    state: present

# Task Output
# -----------

# commands:
# - username netop view network-admin
# - username netend view network-admin

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username netop privilege 15 view network-admin password 0 password
# username netend privilege 15 view network-admin password 0 password

# Using state: present

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password

# Present state create a new user with hashed password play:
# --------------------------------------------------------------

- name: Create a new user with hashed password
  cisco.ios.ios_user:
    name: ansibletest5
    hashed_password:
      type: 9
      value: "thiswillbereplacedwithhashedpassword"
    state: present

# Task Output
# -----------

# commands:
# - username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password
# username ansibletest5 secret 9 thiswillbereplacedwithhashedpassword

# Using state: absent

# Before state:
# -------------

# router-ios#show running-config | section ^username
# username admin privilege 15 password 0 password
# username ansibletest1 password 0 password
# username ansibletest2 secret 9 thiswillbereplacedwithhashedpassword
# username ansibletest3 password 5 thistoowillbereplacedwithhashedpassword

# Absent state remove multiple users play:
# ----------------------------------------

- name: Delete users with aggregate
  cisco.ios.ios_user:
    aggregate:
      - name: ansibletest1
      - name: ansibletest2
      - name: ansibletest3
    state: absent

# Task Output
# -----------

# commands:
# - no username ansibletest1
# - no username ansibletest2
# - no username ansibletest3

# After state:
# ------------

# router-ios#show running-config | section username
# username admin privilege 15 password 0 password

Возвращаемые значения

Общие возвращаемые значения описаны здесь; ниже приведены поля, уникальные для этого модуля:

Ключ

Описание

commands

list / элементы=string

Список команд режима конфигурации, отправляемых устройству

Возвращается: всегда

Пример: ["username ansible secret password", "username admin secret admin"]

Авторы

  • Trishna Guha (@trishnaguha)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/cisco/ios/ios_user_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API