dellos-system
Роль системы
Эта роль упрощает настройку глобальных атрибутов системы и является абстрактной для dellos6, dellos9 и dellos10. Она позволяет настраивать имя хоста и пароль доступа для всех трех dellos. Кроме того, dellos9 поддерживает настройку маршрута управления, алгоритма хеширования, часов, терминала, баннера и типа перезагрузки.
Роль dellos-system требует подключения по SSH для связи с устройством Dell EMC Networking. Вы можете использовать любую из встроенных переменных подключения операционной системы.
Установка
ansible-galaxy install Dell-Networking.dellos-system
Переменные роли
- Роль абстрагирована с помощью переменной ansible_network_os, которая может принимать значения dellos9, dellos6 и dellos10.
- Если dellos_cfg_generate установлено в true, переменная генерирует команды конфигурации роли в файл.
- Любая переменная роли с соответствующей переменной состояния, установленной в absent, отменяет конфигурацию этой переменной.
- Установка пустого значения для любой переменной отменяет соответствующую конфигурацию.
- Переменные и их значения чувствительны к регистру.
Ключи dellos_system
Ключ | Тип | Описание | Поддержка |
---|---|---|---|
hostname |
строка | Настраивает имя хоста для устройства (без команды отмены) | dellos9, dellos6, dellos10 |
unique_hostname |
boolean: true,false* | Настраивает уникальное имя хоста на коммутаторе | dellos9 |
enable_password |
строка | Настраивает пароль доступа | dellos6, dellos9 |
mtu |
целое число | Настраивает максимальный размер передаваемого пакета (MTU) для всех интерфейсов | dellos6 |
hardware_forwarding |
строка: scaled-l2,scaled-l3-routes,scaled-l3-hosts | Настраивает режим аппаратной пересылки | dellos10 |
management_rt |
список | Настраивает маршрут управления | dellos9 |
management_rt.ip |
строка (обязательная) | Настраивает префикс IP-адреса для маршрута управления (формат A.B.C.D для IPv4, A:B:C:D::E для IPv6) | dellos9 |
management_rt.ipv4 |
boolean: true*,false | Указывает, является ли маршрут управления адресом IPv4 или IPv6; если false или неопределено, IP устанавливается как IPv6 | dellos9 |
management_rt.state |
строка: absent,present* | Удаляет маршрут управления, если установлен в absent | dellos9 |
line_terminal |
словарь | Настраивает терминал (см. line_terminal.* ) |
dellos9 |
line_terminal.<terminal> |
словарь | Настраивает основной или виртуальный терминал (консоль <номер_линии> или vty <номер_линии> значения) | dellos9 |
<terminal>.exec_timeout |
строка | Настраивает тайм-аут EXEC (<мин> <сек> значения) | dellos9 |
<terminal>.exec_banner |
boolean: true,false* | Настраивает баннер EXEC | dellos9 |
<terminal>.login_banner |
boolean: true,false* | Настраивает баннер входа | dellos9 |
<terminal>.motd_banner |
boolean: true,false* | Настраивает баннер сообщения дня | dellos9 |
service_passwd_encryption |
boolean: true,false | Настраивает шифрование паролей системы | dellos9 |
hash_algo |
словарь | Настраивает команды алгоритма хеширования (см. hash_algo.* ) |
dellos9, dellos10 |
hash_algo.algo |
список | Настраивает алгоритм хеширования (см. algo.* ) |
dellos9, dellos10 |
algo.name |
строка (обязательная) | Настраивает название алгоритма хеширования | dellos9, dellos10 |
algo.mode |
строка (обязательная) | Настраивает режим алгоритма хеширования | dellos9, dellos10 |
algo.stack_unit |
целое число | Настраивает стековой единицу для алгоритма хеширования | dellos9 |
algo.port_set |
целое число | Настраивает набор портов для алгоритма хеширования | dellos9 |
algo.state |
строка: absent,present* | Удаляет алгоритм хеширования, если установлен в absent | dellos9, dellos10 |
hash_algo.seed |
список | Настраивает семя для алгоритма хеширования (см. seed.* ) |
dellos9 |
seed.value |
целое число (обязательное) | Настраивает значение семени для алгоритма хеширования | dellos9 |
seed.stack_unit |
целое число | Настраивает стековую единицу для семени алгоритма хеширования | dellos9 |
seed.port_set |
целое число | Настраивает набор портов для семени алгоритма хеширования | dellos9 |
seed.state |
строка: absent,present* | Удаляет семя алгоритма хеширования, если установлен в absent | dellos9 |
banner |
словарь | Настраивает глобальные команды баннера (см. banner.* ) |
dellos9 |
banner.login |
словарь | Настраивает баннер входа (см. login.* ) |
dellos9 |
login.ack_enable |
boolean: true,false | Настраивает положительное подтверждение | dellos9 |
login.ack_prompt |
строка | Настраивает подсказку для положительного подтверждения | dellos9 |
login.keyboard_interactive |
boolean: true,false | Настраивает интерактивную клавиатурную подсказку | dellos9 |
login.banner_text |
строка | Настраивает текст баннера для баннера входа; формат 'c <текст-баннера> c', где 'c' - разделяющий символ | dellos9 |
banner.exec |
строка | Настраивает текст баннера для создания процесса EXEC; 'c <текст-баннера> c', где 'c' - разделяющий символ для dellos9 | dellos9 |
banner.motd |
строка | Настраивает текст баннера для баннера сообщения дня; 'c <текст-баннера> c', где 'c' - разделяющий символ для dellos9 | dellos9 |
load_balance |
словарь | Настраивает глобальное распределение нагрузки трафика (см. load_balance.* ) |
dellos9, dellos10 |
load_balance.ingress_port |
boolean: true,false | Указывает, использовать ли идентификатор исходного порта для алгоритма хеширования | dellos9, dellos10 |
load_balance.tcp_udp |
boolean: true, false | Настраивает использование TCP/UDP портов в пакетах для алгоритма хеширования | dellos9 |
load_balance.ip_selection |
список | Настраивает поля ключей IPv4 для использования в алгоритме хеширования; исключает использование load_balance.tcp_udp для устройств dellos9 (см. ip_selection.* ) |
dellos9, dellos10 |
ip_selection.field |
строка | Настраивает поля ключей IPv4 для использования в алгоритме хеширования | dellos9, dellos10 |
ip_selection.state |
строка: absent,present* | Удаляет поля ключей IPv4, если установлено в absent | dellos9, dellos10 |
load_balance.ipv6_selection |
список | Настраивает поля ключей IPv6 для использования в алгоритме хеширования; исключает использование load_balance.tcp_udp для устройств dellos9 (см. ipv6_selection.* ) |
dellos9, dellos10 |
ipv6_selection.field |
строка | Настраивает поля ключей IPv6 для использования в алгоритме хеширования | dellos9, dellos10 |
ipv6_selection.state |
строка: absent,present* | Удаляет поля ключей IPv6, если установлено в absent | dellos9, dellos10 |
load_balance.mac_selection |
список | Настраивает поля ключей MAC для использования в алгоритме хеширования (см. mac_selection.* ) |
dellos10 |
mac_selection.field |
строка | Настраивает поля ключей MAC для использования в алгоритме хеширования | dellos10 |
mac_selection.state |
строка: absent,present* | Удаляет поля ключей MAC, если установлено в absent | dellos10 |
load_balance.tcp_udp_selection |
список | Настраивает TCP UDP порты для конфигураций балансировки нагрузки (см. tcp_udp_selection.* ) |
dellos10 |
tcp_udp_selection.field |
строка | Настраивает поля TCP UDP портов для использования в алгоритме хеширования | dellos10 |
tcp_udp_selection.state |
строка: absent,present* | Удаляет TCP UDP порты, если установлено в absent | dellos10 |
load_balance.tunnel |
словарь | Настраивает поля ключей туннеля для использования в алгоритме хеширования (см. tunnel.* ) |
dellos9 |
tunnel.hash_field |
список | Настраивает выбор полей хеширования (см. hash_field.* ) |
dellos9 |
hash_field.name |
строка (обязательная) | Настраивает выбор поля хеширования | dellos9 |
hash_field.header |
строка | Настраивает заголовок для балансировки нагрузки | dellos9 |
hash_field.state |
строка: absent,present* | Удаляет выбор поля ключа хеширования, если установлен в absent | dellos9 |
clock |
словарь | Настраивает часы (см. clock.* ) |
dellos9 |
clock.summer_time |
словарь | Настраивает летнее (переход на летнее время) время (см. summer_time.* ) |
dellos9 |
summer_time.timezone_name |
строка (обязательная) | Настраивает название часового пояса | dellos9 |
summer_time.type |
строка (обязательная) | Настраивает абсолютное или периодическое летнее время | dellos9 |
summer_time.start_datetime |
строка | Настраивает начальную дату и время; формат <день> <месяц> <год> <часы:минуты> | dellos9 |
summer_time.end_datetime |
строка | Настраивает конечную дату и время; формат <день> <месяц> <год> <часы:минуты> | dellos9 |
summer_time.offset_mins |
целое число | Настраивает смещение минут для добавления (от 1 до 1440) | dellos9 |
summer_time.state |
строка: absent,present* | Удаляет часы летнего времени, если установлено в absent | dellos9 |
clock.timezone |
словарь | Настраивает часовой пояс (см. timezone.* ) |
dellos9 |
timezone.name |
строка (обязательная) | Настраивает название часового пояса | dellos9 |
timezone.offset_hours |
целое число | Настраивает смещение часов для добавления (-23 до 23) | dellos9 |
timezone.offset_mins |
целое число | Настраивает смещение минут для добавления (от 0 до 59) | dellos9 |
timezone.state |
строка: absent,present* | Удаляет часовой пояс, если установлен в absent | dellos9 |
reload_type |
словарь | Настраивает тип перезагрузки (см. reload_type.* ) |
dellos9 |
reload_type.auto_save |
boolean: true,false* | Настраивает опцию автосохранения для загруженного конфигурационного/скриптового файла | dellos9 |
reload_type.boot_type |
строка: bmp-reload,normal-reload | Настраивает тип загрузки | dellos9 |
reload_type.boot_type_state |
строка: absent,present* | Удаляет тип загрузки, если установлен в absent | dellos9 |
reload_type.config_scr_download |
boolean: true,false* | Настраивает необходимость загрузки конфигурационного/скриптового файла | dellos9 |
reload_type.dhcp_timeout |
целое число | Настраивает тайм-аут DHCP в минутах (от 0 до 50) | dellos9 |
reload_type.retry_count |
целое число | Настраивает количество повторных попыток для загрузки образа и конфигурации (от 0 до 6) | dellos9 |
reload_type.relay |
boolean: true,false* | Настраивает добавление option82 в пакеты DHCP-клиента | dellos9 |
reload_type.relay_remote_id |
строка | Настраивает пользовательский удаленный ID | dellos9 |
reload_type.vendor_class_identifier |
boolean: true,false* | Настраивает идентификатор класса поставщика для опции DHCP option60 | dellos9 |
ПРИМЕЧАНИЕ: Звездочка (*) обозначает значение по умолчанию, если ничего не указано.
Переменные соединения
Роли Ansible Dell EMC Networking требуют информацию для подключения, чтобы установить связь с узлами в вашем инвентаре. Эта информация может находиться в директориях group_vars или host_vars, или в инвентаре, или в самом плейбуке.
Ключ | Обязательно | Выборы | Описание |
---|---|---|---|
ansible_host |
да | Указывает имя хоста или адрес для подключения к удаленному устройству по указанному протоколу | |
ansible_port |
нет | Указывает порт, используемый для подключения к удаленному устройству; если значение не указано, используется опция ANSIBLE_REMOTE_PORT; по умолчанию 22 | |
ansible_ssh_user |
нет | Указывает имя пользователя, используемое для аутентификации при входе в CLI для подключения к удаленному устройству; если значение не указано, используется значение переменной окружения ANSIBLE_REMOTE_USER | |
ansible_ssh_pass |
нет | Указывает пароль для аутентификации при подключении к удаленному устройству | |
ansible_become |
нет | да, нет* | Инструктирует модуль войти в привилегированный режим на удаленном устройстве перед отправкой любых команд; если значение не указано, используется значение переменной окружения ANSIBLE_BECOME, и устройство пытается выполнить все команды в непривилегированном режиме |
ansible_become_method |
нет | enable, sudo* | Инструктирует модуль позволить указать метод повышения прав для обработки эскалации привилегий; если значение не указано, используется значение переменной окружения ANSIBLE_BECOME_METHOD |
ansible_become_pass |
нет | Указывает пароль для входа в привилегированный режим на удаленном устройстве, если необходимо; если ansible_become установлено в no, этот ключ не применим |
|
ansible_network_os |
да | dellos6/dellos9/dellos10, null* | Загружает правильные плагины терминала и cliconf для связи с удаленным устройством |
ПРИМЕЧАНИЕ: Звездочка (*) обозначает значение по умолчанию, если ничего не указано.
Зависимости
Роль dellos-system основана на модулях, включенных в основной код Ansible. Эти модули были добавлены в версии Ansible 2.2.0.
Пример плейбука
Этот пример использует роль dellos-system, чтобы полностью настроить NTP сервер, имя хоста, пароль доступа, маршрут управления, алгоритм хеширования, часы, терминал, баннер и тип перезагрузки. Он создает файл hosts с деталями коммутатора и соответствующими переменными. Файл hosts должен определять переменную ansible_network_os с соответствующим именем ОС сетевого управления Dell EMC.
Когда dellos_cfg_generate установлено в true, переменная генерирует команды конфигурации в виде файла .part в пути build_dir. По умолчанию переменная установлена в false. Роль системы записывает простой плейбук, который только ссылается на роль dellos-system. Включив роль, вы автоматически получаете доступ ко всем задачам для настройки системных функций.
Пример файла hosts
leaf1 ansible_host=<ip_address>
Пример host_vars/leaf1
hostname: leaf1
ansible_become: yes
ansible_become_method: xxxxx
ansible_become_pass: xxxxx
ansible_ssh_user: xxxxx
ansible_ssh_pass: xxxxx
ansible_network_os: dellos9
build_dir: ../temp/dellos9
dellos_system:
hostname: host1
unique_hostname: True
enable_password: dell
service_passwd_encryption: true
banner:
exec: t hai t
login:
ack_enable: true
ack_prompt: testbanner
keyboard_interactive: true
banner_text: cloginbannerc
motd: t ansibletest t
hash_algo:
algo:
- name: lag
mode: xor1
stack_unit: 0
port_set: 0
state: present
- name: ecmp
mode: xor1
stack_unit: 0
port_set: 0
state: present
seed:
- value: 3
stack_unit: 0
port_set: 0
state: present
- value: 2
state: present
load_balance:
ingress_port: true
ip_selection:
- field: vlan dest-ip
state: present
ipv6_selection:
- field: dest-ipv6 vlan
state: present
tunnel:
hash_field:
- name: mac-in-mac
header: tunnel-header-mac
state: present
clock:
summer_time:
timezone_name: PST
type: date
start_datetime: 2 jan 1993 22:33
end_datetime: 3 jan 2017 22:33
offset_mins: 20
timezone:
name: IST
offset_hours: -5
offset_mins: 20
reload_type:
auto_save: true
boot_type: normal-reload
boot_type_state: absent
config_scr_download: true
dhcp_timeout: 5
retry_count: 3
relay: true
relay_remote_id: ho
vendor_class_identifier: aa
management_rt:
- ip: 10.16.148.254
state: present
ipv4: True
line_terminal:
vty 0:
exec_timeout: 40
exec_banner: true
vty 1:
exec_timeout: 40 200
motd_banner: true
Простой плейбук для настройки системы - leaf.yaml
- hosts: leaf1
roles:
- Dell-Networking.dellos-system
Запуск
ansible-playbook -i hosts leaf.yaml
(c) 2017 Dell Inc. или её дочерние компании. Все права защищены.
The dellos-system role facilitates the configuration of system attributes in devices running Dell EMC Networking Operating Systems.
ansible-galaxy install Dell-Networking/ansible-role-dellos-system