Dell-Networking.dellos-system
系统角色
此角色帮助配置全局系统属性,并针对 dellos6、dellos9 和 dellos10 进行了抽象。它具体允许为所有三个 dellos 配置主机名和启用密码。此外,dellos9 支持配置管理路由、哈希算法、时钟、终端线路、横幅和重载类型。
dellos-system 角色需要通过 SSH 连接与 Dell EMC 网络设备建立连接。您可以使用任何内置的操作系统连接变量。
安装
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 |
布尔值: 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 目标前缀(IPv4 格式为 A.B.C.D,IPv6 格式为 A:B:C:D::E) | dellos9 |
management_rt.ipv4 |
布尔值: true*,false | 指定管理路由是 IPv4 还是 IPv6 地址;如果为 false 或未定义,IP 设置为 IPv6 | dellos9 |
management_rt.state |
字符串: absent,present* | 如果设置为 absent,则删除管理路由 | dellos9 |
line_terminal |
字典 | 配置终端线路(参考 line_terminal.* ) |
dellos9 |
line_terminal.<terminal> |
字典 | 配置主终端或虚拟终端线路(控制台 |
dellos9 |
<terminal>.exec_timeout |
字符串 | 配置 EXEC 超时时间( |
dellos9 |
<terminal>.exec_banner |
布尔值: true,false* | 配置 EXEC 横幅 | dellos9 |
<terminal>.login_banner |
布尔值: true,false* | 配置登录横幅 | dellos9 |
<terminal>.motd_banner |
布尔值: true,false* | 配置每日信息(MOTD)横幅 | dellos9 |
service_passwd_encryption |
布尔值: 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 |
布尔值: true,false | 配置正面确认 | dellos9 |
login.ack_prompt |
字符串 | 配置正面确认提示 | dellos9 |
login.keyboard_interactive |
布尔值: true,false | 配置交互式键盘提示 | dellos9 |
login.banner_text |
字符串 | 配置登录横幅的文本;'c |
dellos9 |
banner.exec |
字符串 | 配置 EXEC 过程创建横幅的文本;'c |
dellos9 |
banner.motd |
字符串 | 配置每日信息横幅的文本;'c |
dellos9 |
load_balance |
字典 | 配置全局流量负载均衡(参考 load_balance.* ) |
dellos9、dellos10 |
load_balance.ingress_port |
布尔值: true,false | 指定是否使用源端口 ID 进行哈希算法 | dellos9、dellos10 |
load_balance.tcp_udp |
布尔值: true,false | 配置是否在数据包中使用 TCP/UDP 端口进行哈希算法 | dellos9 |
load_balance.ip_selection |
列表 | 配置用于哈希算法的 IPv4 键字段;与 dellos9 设备的 load_balance.tcp_udp 相互排斥(参考 ip_selection.* ) |
dellos9、dellos10 |
ip_selection.field |
字符串 | 配置用于哈希算法的 IPv4 键字段 | dellos9、dellos10 |
ip_selection.state |
字符串: absent,present* | 如果设置为 absent,则删除 IPv4 键字段 | dellos9、dellos10 |
load_balance.ipv6_selection |
列表 | 配置用于哈希算法的 IPv6 键字段;与 dellos9 设备的 load_balance.tcp_udp 相互排斥(参考 ipv6_selection.* ) |
dellos9、dellos10 |
ipv6_selection.field |
字符串 | 配置用于哈希算法的 IPv6 键字段 | dellos9、dellos10 |
ipv6_selection.state |
字符串: absent,present* | 如果设置为 absent,则删除 IPv6 键字段 | dellos9、dellos10 |
load_balance.mac_selection |
列表 | 配置用于哈希算法的 MAC 键字段(参考 mac_selection.* ) |
dellos10 |
mac_selection.field |
字符串 | 配置用于哈希算法的 MAC 键字段 | dellos10 |
mac_selection.state |
字符串: absent,present* | 如果设置为 absent,则删除 MAC 键字段 | 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* | 如果设置为 absent,则删除 TCP UDP 端口 | 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 |
布尔值: 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 |
布尔值: true,false* | 配置是否需要下载配置/脚本文件 | dellos9 |
reload_type.dhcp_timeout |
整数 | 配置 DHCP 超时时间(0 到 50 分钟) | dellos9 |
reload_type.retry_count |
整数 | 配置图像和配置下载的重试次数(0 到 6) | dellos9 |
reload_type.relay |
布尔值: true,false* | 配置在 DHCP 客户端数据包中添加 option82 | dellos9 |
reload_type.relay_remote_id |
字符串 | 配置自定义远程 ID | dellos9 |
reload_type.vendor_class_identifier |
布尔值: true,false* | 配置 DHCP option60 的厂商类标识符 | dellos9 |
注意:星号(*)表示如果未指定,则为默认值。
连接变量
Ansible Dell EMC 网络角色需要连接信息以建立与您清单中节点的通信。此信息可以存在于 Ansible 的 group_vars 或 host_vars 目录中,或者在库存或 playbook 本身中。
键 | 必需 | 选择 | 描述 |
---|---|---|---|
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 设置为否,则此键不适用 |
|
ansible_network_os |
是 | dellos6/dellos9/dellos10, null* | 载入正确的终端和 cliconf 插件与远程设备进行通信 |
注意:星号(*)表示如果未指定,则为默认值。
依赖项
dellos-system 角色基于包含在 Ansible 核心代码中的模块。这些模块在 Ansible 版本 2.2.0 中添加。
示例 playbook
此示例使用 dellos-system 角色 完全设置 NTP 服务器、主机名、启用密码、管理路由、哈希算法、时钟、终端线路、横幅和重载类型。它创建一个带有交换机详细信息和相应变量的 hosts 文件。hosts 文件应该定义 ansible_network_os 变量,附对应的 Dell EMC 网络操作系统名称。
当 dellos_cfg_generate 设置为 true 时,该变量将在 build_dir 路径中生成配置命令作为 .part 文件。默认情况下,变量设置为 false。系统角色会编写一个只引用 dellos-system 角色的简单 playbook。通过包含该角色,您将自动获得配置系统功能的所有任务的访问权限。
示例 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
设置系统的简单 playbook - 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.dellos-system