Spec-Zone.ru › Ansible

Модуль community.general.nmcli — управление сетью

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

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

Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.general.nmcli.

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примеры

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

  • Управление сетевыми устройствами. Создание, изменение и управление различными подключениями и типами устройств, например ethernet, team, bond, vlan и другими.
  • В системах CentOS 8 и Fedora >=29 необходимые компоненты можно установить с помощью следующих пакетов: NetworkManager.
  • В системах CentOS 7 и Fedora <=28 необходимые компоненты можно установить с помощью следующих пакетов: NetworkManager-tui.
  • В системах Ubuntu и Debian необходимые компоненты можно установить с помощью следующих пакетов: network-manager.
  • В openSUSE необходимые компоненты можно установить с помощью следующих пакетов: NetworkManager.

Требования

Следующие требования должны быть выполнены на узле, на котором выполняется этот модуль.

  • nmcli

Параметры

Параметр

Комментарии

addr_gen_mode6

string

добавлено в community.general 4.2.0

Настройка метода создания адреса для автоматической настройки адресов IPv6 без сохранения состояния.

default и default-or-eui64 добавлены в community.general 6.5.0.

Варианты:

  • "default"
  • "default-or-eui64"
  • "eui64"
  • "stable-privacy"

ageingtime

integer

Используется только с bridge — [ageing-time <0-1000000>] время устаревания MAC-адреса Ethernet в секундах.

По умолчанию: 300

arp_interval

integer

Используется только с bond — интервал ARP.

arp_ip_target

string

Используется только с bond — целевой IP-адрес ARP.

autoconnect

boolean

Должно ли соединение запускаться при загрузке системы.

Можно ли автоматически активировать профиль соединения.

Варианты:

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

autoconnect_priority

integer

добавлено в community.general 11.0.0

Приоритет профиля соединения для автоматического подключения. Если задан, предпочтение отдается профилям соединения с более высоким приоритетом.

autoconnect_retries

integer

добавлено в community.general 11.0.0

Количество повторных попыток автоматического подключения.

conn_name

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

Имя, используемое для вызова соединения. Шаблон: <type>[-<ifname>][-<num>].

conn_reload

boolean

добавлено в community.general 9.5.0

Следует ли перезагрузить соединение, если оно было изменено.

Варианты:

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

dhcp_client_id

string

Идентификатор DHCP-клиента, отправляемый DHCP-серверу.

dns4

list / elements=string

Список из не более чем 3 DNS-серверов.

Записи должны быть адресами IPv4, например 192.0.2.53.

dns4_ignore_auto

boolean

добавлено в community.general 3.2.0

Игнорировать автоматически настроенные серверы имен IPv4.

Варианты:

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

dns4_options

list / elements=string

добавлено в community.general 7.2.0

Список параметров DNS.

dns4_search

list / elements=string

Список доменов поиска DNS.

dns6

list / elements=string

Список из не более чем 3 DNS-серверов.

Записи должны быть адресами IPv6, например 2001:4860:4860::8888.

dns6_ignore_auto

boolean

добавлено в community.general 3.2.0

Игнорировать автоматически настроенные серверы имен IPv6.

Варианты:

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

dns6_options

list / elements=string

добавлено в community.general 7.2.0

Список параметров DNS.

dns6_search

list / elements=string

Список доменов поиска DNS.

downdelay

integer

Используется только с bond — задержка отключения.

egress

string

Используется только с VLAN — сопоставление приоритетов исходящего трафика VLAN.

fail_over_mac

string

добавлено в community.general 10.3.0

Используется только с bond — fail_over_mac.

Варианты:

  • "none"
  • "active"
  • "follow"

flags

string

Используется только с VLAN — флаги.

forwarddelay

integer

Используется только с bridge — [forward-delay <2-30>] задержка пересылки STP в секундах.

По умолчанию: 15

gsm

dictionary

добавлено в community.general 3.7.0

Конфигурация соединения GSM.

Обратите внимание, что список атрибутов подопций может различаться в зависимости от версии NetworkManager/nmcli, установленной на узле.

Актуальный список поддерживаемых атрибутов можно найти здесь: https://networkmanager.dev/docs/api/latest/settings-gsm.html.

Например, чтобы использовать apn, pin, username и password: {apn: provider.apn, pin: 1234, username: apn.username, password: apn.password}.

apn

string

Имя точки доступа GPRS, определяющее APN, используемое при установлении сеанса передачи данных в сети на основе GSM.

APN часто определяет, как тарифицируется использование сети пользователем и получает ли пользователь доступ к Интернету или только к закрытой сети провайдера, поэтому важно использовать правильный APN для тарифного плана мобильного широкополосного доступа.

В соответствии с разделом 14.9 GSM 03.60, APN может состоять только из символов a-z, 0-9, ., и -.

auto-config

boolean

Если true, такие параметры, как gsm.apn, gsm.username или gsm.password, по умолчанию принимают значения, соответствующие сети, в которой модем регистрируется согласно базе данных поставщиков услуг мобильной широкополосной связи.

Варианты:

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

device-id

string

Уникальный идентификатор устройства (предоставляемый службой управления WWAN), к которому применяется это соединение.

Если указан, соединение применяется только к заданному устройству.

home-only

boolean

Если true, разрешены только соединения с домашней сетью.

Соединения с роуминговыми сетями не устанавливаются.

Варианты:

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

mtu

integer

Если значение ненулевое, передавать только пакеты указанного размера или меньше, разбивая более крупные пакеты на несколько кадров Ethernet.

По умолчанию: 0

network-id

string

Идентификатор сети (формат GSM LAI, то есть MCC-MNC) для принудительной регистрации в определенной сети.

Если указан идентификатор сети, NetworkManager пытается принудительно зарегистрировать устройство только в указанной сети.

Это можно использовать, чтобы устройство не переходило в роуминг, если прямое управление роумингом устройства недоступно.

number

string

Устаревший параметр, ранее использовавшийся для помощи в установлении сеансов передачи данных PPP на модемах GSM.

password

string

Пароль для аутентификации в сети, если он требуется.

Многие провайдеры не требуют пароль или принимают любой пароль.

Если пароль требуется, укажите его здесь.

password-flags

integer

Флаги NMSettingSecretFlags, указывающие, как обрабатывать свойство gsm.password.

Допустимы следующие варианты: 0 NONE: система отвечает за предоставление и хранение этого секрета (по умолчанию), 1 AGENT_OWNED: за предоставление и хранение этого секрета отвечает пользовательский агент секретов; когда секрет потребуется, агентам будет предложено получить его 2 NOT_SAVED: этот секрет не следует сохранять, но его следует запрашивать у пользователя при каждом обращении 4 NOT_REQUIRED: в ситуациях, когда невозможно автоматически определить необходимость секрета (некоторым VPN- и PPP-провайдерам требуются не все секреты), этот флаг указывает, что конкретный секрет не требуется.

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 4

pin

string

Если SIM-карта заблокирована PIN-кодом, ее необходимо разблокировать до выполнения любых других операций.

Укажите здесь PIN-код, чтобы разрешить работу устройства.

pin-flags

integer

Флаги NMSettingSecretFlags, указывающие, как обрабатывать свойство gsm.pin.

Варианты NMSettingSecretFlags см. в gsm.password-flags.

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 4

sim-id

string

Уникальный идентификатор SIM-карты (предоставляемый службой управления WWAN), к которой применяется это соединение.

Если указан, соединение применяется к любому устройству, также разрешенному параметром gsm.device-id, в котором установлена SIM-карта с соответствующим идентификатором.

sim-operator-id

string

Строка MCC/MNC, например 310260 или 21601I, идентифицирующая конкретного оператора мобильной сети, к которому применяется это соединение.

Если указана, соединение применяется к любому устройству, также разрешенному параметрами gsm.device-id и gsm.sim-id, в котором установлена SIM-карта, зарегистрированная у указанного оператора.

username

string

Имя пользователя для аутентификации в сети, если оно требуется.

Многие провайдеры не требуют имени пользователя или принимают любое имя пользователя.

Если имя пользователя требуется, укажите его здесь.

gw4

string

Шлюз IPv4 для этого интерфейса.

Используйте формат 192.0.2.1.

Этот параметр несовместим с параметром never_default4.

gw4_ignore_auto

boolean

добавлено в community.general 3.2.0

Игнорировать автоматически настроенные маршруты IPv4.

Варианты:

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

gw6

string

Шлюз IPv6 для этого интерфейса.

Используйте формат 2001:db8::1.

gw6_ignore_auto

boolean

добавлено в community.general 3.2.0

Игнорировать автоматически настроенные маршруты IPv6.

Варианты:

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

hairpin

boolean

Используется только с ‘bridge-slave’ — «режим hairpin» для ведомого интерфейса, позволяющий отправлять кадры обратно через тот же ведомый интерфейс, на котором они были получены.

В community.general 7.0.0 значение по умолчанию изменено на false. Ранее оно было true.

Варианты:

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

hellotime

integer

Используется только с bridge — [hello-time <1-10>] интервал hello STP в секундах.

По умолчанию: 2

ifname

string

Интерфейс, к которому привязывается соединение.

Соединение применимо только к интерфейсу с этим именем.

Для соединений, не зависящих от интерфейса, можно использовать специальное значение *.

Аргумент ifname обязателен для всех типов соединений, кроме bond, team, bridge, vlan и vpn.

Если параметр не задан, для всех типов соединений, кроме vpn, он по умолчанию принимает значение conn_name; для vpn параметр удаляется.

ignore_unsupported_suboptions

boolean

добавлено в community.general 3.6.0

Игнорировать подопции, недопустимые или не поддерживаемые установленной на узле версией NetworkManager/nmcli.

В настоящее время это касается только параметров wifi и wifi_sec.

Варианты:

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

infiniband_mac

string

добавлено в community.general 10.6.0

MAC-адрес устройств Infiniband IPoIB.

ingress

string

Используется только с VLAN — сопоставление приоритетов входящего трафика VLAN.

ip4

list / elements=string

Список адресов IPv4 для этого интерфейса.

Используйте формат 192.0.2.24/24 или 192.0.2.24.

Если параметр задан, а method4 не указан, автоматически установить ipv4.method в значение manual.

ip6

list / elements=string

Список адресов IPv6 для этого интерфейса.

Используйте формат abbe::cafe/128 или abbe::cafe.

Если параметр задан, а method6 не указан, автоматически установить ipv6.method в значение manual.

ip_privacy6

string

добавлено в community.general 4.2.0

Если параметр включён, ядро создаёт временный адрес IPv6 в дополнение к общедоступному адресу.

Варианты:

  • "disabled"
  • "prefer-public-addr"
  • "prefer-temp-addr"
  • "unknown"

ip_tunnel_dev

string

Используется с GRE/IPIP/SIT — родительское устройство туннеля GRE/IPIP/SIT; можно указать ifname.

ip_tunnel_input_key

string

добавлено в community.general 3.6.0

Ключ, используемый для входящих пакетов туннеля.

Используется только, если type=gre.

ip_tunnel_local

string

Используется с GRE/IPIP/SIT — локальный IP-адрес GRE/IPIP/SIT.

ip_tunnel_output_key

string

добавлено в community.general 3.6.0

Ключ, используемый для исходящих пакетов туннеля.

Используется только, если type=gre.

ip_tunnel_remote

string

Используется с GRE/IPIP/SIT — IP-адрес назначения GRE/IPIP/SIT.

mac

string

MAC-адрес подключения.

Обратите внимание: для этого требуется относительно новая функция ядра, изначально появившаяся в основном ядре версии 3.15.

macvlan

dictionary

добавлено в community.general 6.6.0

Конфигурация подключения MAC VLAN.

Обратите внимание: список атрибутов подопций может различаться в зависимости от установленной на узле версии NetworkManager/nmcli.

Актуальный список поддерживаемых атрибутов можно найти здесь: https://networkmanager.dev/docs/api/latest/settings-macvlan.html.

mode

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

Режим macvlan, определяющий механизм взаимодействия между несколькими macvlan на одном нижележащем устройстве.

Допустимы следующие варианты: 1 vepa, 2 bridge, 3 private, 4 passthru и 5 source.

Варианты:

  • 1
  • 2
  • 3
  • 4
  • 5

parent

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

Если указано, задаёт имя родительского интерфейса или UUID родительского подключения, на основе которого следует создать этот интерфейс MAC-VLAN. Если это свойство не задано, подключение должно содержать параметр «802-3-ethernet» со свойством «mac-address».

promiscuous

boolean

Следует ли перевести интерфейс в неразборчивый режим.

Варианты:

  • false
  • true

tap

boolean

Должен ли интерфейс быть MACVTAP.

Варианты:

  • false
  • true

master

string

Ведущий <master (ifname, UUID подключения или conn_name) профиля подключения ведущего моста, team, bond или ovs-port.

Обязательно, если задано slave_type.

maxage

integer

Используется только с bridge — [max-age <6-42>], максимальный возраст сообщения STP в секундах.

По умолчанию: 20

may_fail4

boolean

добавлено в community.general 3.3.0

Если требуется настроить ip4 до достижения network-online.target, установите для этого параметра значение false.

Этот параметр применяется, если method4 не равно disabled.

Варианты:

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

method4

string

добавлено в community.general 2.2.0

Метод настройки IPv4.

Если задано ip4, значение ipv4.method автоматически устанавливается в manual, и этот параметр не требуется.

Варианты:

  • "auto"
  • "link-local"
  • "manual"
  • "shared"
  • "disabled"

method6

string

добавлено в community.general 2.2.0

Метод настройки IPv6.

Если задано ip6, значение ipv6.method автоматически устанавливается в manual, и этот параметр не требуется.

disabled добавлено в community.general 3.3.0.

Варианты:

  • "ignore"
  • "auto"
  • "dhcp"
  • "link-local"
  • "manual"
  • "shared"
  • "disabled"

miimon

integer

Используется только с bond — miimon.

Если параметр не задан, по умолчанию используется значение 100.

mode

string

Тип устройства или сетевого подключения, создаваемого для bond или bridge.

Варианты:

  • "802.3ad"
  • "active-backup"
  • "balance-alb"
  • "balance-rr" ← (по умолчанию)
  • "balance-tlb"
  • "balance-xor"
  • "broadcast"

mtu

integer

MTU подключения, например 9000. Это значение нельзя применить при создании интерфейса; оно устанавливается после его создания.

Можно использовать при изменении Team, VLAN и Ethernet (в планах — реализация поддержки wifi, gsm, pppoe, infiniband).

Если параметр не задан, по умолчанию используется значение 1500.

never_default4

boolean

добавлено в community.general 2.0.0

Использовать в качестве маршрута по умолчанию.

Этот параметр несовместим с параметром gw4.

Варианты:

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

path_cost

integer

Используется только с «bridge-slave» — [<1-65535>], стоимость порта STP для пунктов назначения, использующих этот подчинённый интерфейс.

По умолчанию: 100

primary

string

Используется только с bond и задаёт имя основного интерфейса (для режима «active-backup»); обычно это ‘ifname’.

priority

integer

Используется только с «bridge» — задаёт приоритет STP.

По умолчанию: 128

route_metric4

integer

добавлено в community.general 2.0.0

Задаёт метрику маршрутов IPv4, настроенных на интерфейсе.

route_metric6

integer

добавлено в community.general 4.4.0

Задаёт метрику маршрутов IPv6, настроенных на интерфейсе.

routes4

list / elements=string

добавлено в community.general 2.0.0

Список маршрутов IPv4.

Используйте формат 192.0.3.0/24 192.0.2.1.

Чтобы указать более сложные маршруты, используйте параметр routes4_extended.

routes4_extended

list / elements=dictionary

Список маршрутов IPv4.

cwnd

integer

Ограничение окна перегрузки.

ip

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

IP-адрес или префикс маршрута.

Используйте формат 192.0.3.0/24.

metric

integer

Метрика маршрута.

mtu

integer

Если значение не равно нулю, передаются только пакеты указанного размера или меньше.

next_hop

string

Используйте формат 192.0.2.1.

onlink

boolean

Считать, что следующий узел непосредственно подключён к этому каналу, даже если он не соответствует ни одному префиксу интерфейса.

Варианты:

  • false
  • true

table

integer

Таблица, в которую следует добавить этот маршрут.

Значение по умолчанию зависит от ipv4.route-table.

tos

integer

Тип обслуживания.

routes6

list / elements=string

добавлено в community.general 4.4.0

Список маршрутов IPv6.

Используйте формат fd12:3456:789a:1::/64 2001:dead:beef::1.

Чтобы указать более сложные маршруты, используйте параметр routes6_extended.

routes6_extended

list / elements=dictionary

Список маршрутов IPv6 с параметрами.

cwnd

integer

Ограничение окна перегрузки.

ip

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

IP-адрес или префикс маршрута.

Используйте формат fd12:3456:789a:1::/64.

metric

integer

Метрика маршрута.

mtu

integer

Если значение не равно нулю, передаются только пакеты указанного размера или меньше.

next_hop

string

Используйте формат 2001:dead:beef::1.

onlink

boolean

Считать, что следующий узел непосредственно подключён к этому каналу, даже если он не соответствует ни одному префиксу интерфейса.

Варианты:

  • false
  • true

table

integer

Таблица, в которую следует добавить этот маршрут.

Значение по умолчанию зависит от ipv6.route-table.

routing_rules4

list / elements=string

добавлено в community.general 3.3.0

Аналогично команде ip rule add, но при этом всегда требуется указывать приоритет.

routing_rules6

list / elements=string

добавлено в community.general 12.3.0

Аналогично команде ip rule add, но при этом всегда требуется указывать приоритет.

runner

string

добавлено в community.general 3.4.0

Тип устройства или сетевого подключения, создаваемого для team.

Варианты:

  • "broadcast"
  • "roundrobin" ← (по умолчанию)
  • "activebackup"
  • "loadbalance"
  • "lacp"

runner_fast_rate

boolean

добавлено в community.general 6.5.0

Параметр задаёт частоту, с которой партнёр по каналу получает запрос на передачу пакетов LACPDU. Если значение равно true, пакеты отправляются раз в секунду. В противном случае они отправляются каждые 30 секунд.

Допустимо только для runner=lacp.

Варианты:

  • false
  • true

runner_hwaddr_policy

string

добавлено в community.general 3.4.0

Задаёт политику установки аппаратных адресов устройства team и портовых устройств на протяжении всего срока существования team.

Варианты:

  • "same_all"
  • "by_active"
  • "only_active"

slave_type

string

добавлено в community.general 7.0.0

Тип устройства ведущего подключения для этого подчинённого устройства (например, bond).

Тип ovs-port добавлен в community.general 8.6.0.

Варианты:

  • "bond"
  • "bridge"
  • "team"
  • "ovs-port"
  • "vrf"

slavepriority

integer

Используется только с «bridge-slave» — [<0-63>], приоритет STP этого подчинённого устройства.

По умолчанию: 32

sriov

dictionary

добавлено в community.general 10.1.0

Позволяет настроить параметры SR-IOV.

Актуальный список поддерживаемых атрибутов можно найти здесь: https://networkmanager.pages.freedesktop.org/NetworkManager/NetworkManager/settings-sriov.html.

autoprobe-drivers

integer

Выполнять ли автоматическое обнаружение виртуальных функций с помощью совместимого драйвера.

eswitch-encap-mode

integer

Выбрать поддержку инкапсуляции eswitch.

eswitch-inline-mode

integer

Выбрать режим inline-mode eswitch для устройства.

eswitch-mode

integer

Выбрать режим eswitch для устройства.

total-vfs

integer

Количество создаваемых виртуальных функций. Сведения о максимальном количестве поддерживаемых VF см. в документации к сетевой карте.

vfs

string

Дескрипторы виртуальных функций в формате: INDEX [ATTR=VALUE[ ATTR=VALUE]...].

Можно указать несколько VF, разделив их запятыми, например 2 mac=00:11:22:33:44:55 spoof-check=true,3 vlans=100.

ssid

string

добавлено в community.general 3.0.0

Имя беспроводного маршрутизатора или точки доступа.

state

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

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

Использование state=present создает подключение, которое автоматически активируется.

Использование state=up и state=down не изменяет подключение с помощью других параметров. Эти состояния добавлены в community.general 9.5.0.

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

  • "absent"
  • "present"
  • "up"
  • "down"

stp

boolean

Используется только с мостом и определяет, включен ли для него протокол связующего дерева (STP).

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

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

table

integer

добавлено в community.general 10.4.0

Используется только с VRF — номер таблицы VRF.

transport_mode

string

добавлено в community.general 5.8.0

Этот параметр задает тип подключения для устройств Infiniband IPoIB.

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

  • "datagram"
  • "connected"

type

string

Тип создаваемого или изменяемого устройства либо сетевого подключения.

Тип dummy добавлен в community.general 3.5.0.

Тип gsm добавлен в community.general 3.7.0.

Тип infiniband добавлен в community.general 2.0.0.

Тип loopback добавлен в community.general 8.1.0.

Тип macvlan добавлен в community.general 6.6.0.

Тип ovs-bridge добавлен в community.general 8.6.0.

Тип ovs-interface добавлен в community.general 8.6.0.

Тип ovs-port добавлен в community.general 8.6.0.

Тип wireguard добавлен в community.general 4.3.0.

Тип vpn добавлен в community.general 5.1.0.

Тип vrf добавлен в community.general 10.4.0.

Использование bond-slave, bridge-slave или team-slave подразумевает тип подключения ethernet с соответствующим параметром slave_type.

Для управления подключением не Ethernet, связанным с bond, bridge или team, рассмотрите возможность использования параметра slave_type.

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

  • "bond"
  • "bond-slave"
  • "bridge"
  • "bridge-slave"
  • "dummy"
  • "ethernet"
  • "generic"
  • "gre"
  • "infiniband"
  • "ipip"
  • "macvlan"
  • "sit"
  • "team"
  • "team-slave"
  • "vlan"
  • "vxlan"
  • "wifi"
  • "gsm"
  • "wireguard"
  • "ovs-bridge"
  • "ovs-port"
  • "ovs-interface"
  • "vpn"
  • "vrf"
  • "loopback"

updelay

integer

Используется только с bond — задержка перед активацией.

vlandev

string

Используется только с VLAN — родительское устройство этого VLAN; можно указать ifname.

vlanid

integer

Используется только с VLAN — идентификатор VLAN в диапазоне <0-4095>.

vpn

dictionary

добавлено в community.general 5.1.0

Настройка VPN-подключения (PPTP и L2TP).

Чтобы использовать L2TP, убедитесь, что на узле установлены network-manager-l2tp и network-manager-l2tp-gnome, если на узле есть графический интерфейс.

gateway

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

Шлюз подключения. Это может быть IP-адрес (например, 192.0.2.1) или FQDN-адрес (например, vpn.example.com).

ipsec-enabled

boolean

Включить или отключить туннель IPSec к узлу L2TP.

Этот параметр необходим, если vpn.service-type имеет значение org.freedesktop.NetworkManager.l2tp.

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

  • false
  • true

ipsec-psk

string

Предварительно согласованный ключ в кодировке base64.

Для кодирования можно использовать это выражение Ansible Jinja2: "0s{{ '[YOUR PRE-SHARED KEY]' | ansible.builtin.b64encode }}".

Используется только, если vpn.ipsec-enabled=true.

password-flags

integer

Флаги NMSettingSecretFlags, указывающие, как обрабатывать свойство vpn.password.

Допустимы следующие значения: 0 NONE: система отвечает за предоставление и хранение этого секрета (значение по умолчанию); 1 AGENT_OWNED: пользовательский агент секретов отвечает за предоставление и хранение этого секрета; когда он потребуется, агентам будет предложено получить его; 2 NOT_SAVED: этот секрет не следует сохранять, при необходимости его нужно каждый раз запрашивать у пользователя; 4 NOT_REQUIRED: в случаях, когда невозможно автоматически определить необходимость секрета (некоторым VPN- и PPP-провайдерам нужны не все секреты), этот флаг указывает, что конкретный секрет не требуется.

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

  • 0 ← (значение по умолчанию)
  • 1
  • 2
  • 4

permissions

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

Пользователь, которому разрешено использовать подключение.

service-type

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

Определяет тип службы подключения.

user

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

Имя пользователя, предоставленное администратором VPN.

vxlan_id

integer

Используется только с VXLAN — идентификатор VXLAN.

vxlan_local

string

Используется только с VXLAN — локальный IP-адрес VXLAN.

vxlan_parent

string

добавлено в community.general 12.2.0

Используется только с VXLAN — родительское устройство VXLAN (обязательно при использовании группового удаленного адреса).

vxlan_remote

string

Используется только с VXLAN — IP-адрес назначения VXLAN.

wifi

dictionary

добавлено в community.general 3.5.0

Конфигурация Wi-Fi-подключения.

Обратите внимание, что список атрибутов подопций может различаться в зависимости от версии NetworkManager/nmcli, установленной на узле.

Актуальный список поддерживаемых атрибутов см. здесь: https://networkmanager.dev/docs/api/latest/settings-802-11-wireless.html.

Например, чтобы создать Wi-Fi-подключение в режиме скрытой точки доступа: {hidden: true, mode: ap}.

ap-isolation

integer

Настраивает изоляцию точки доступа, запрещающую обмен данными между подключенными к ней беспроводными устройствами.

Этому свойству можно задать значение, отличное от -1, только если интерфейс настроен в режиме точки доступа.

Если задано значение 1, устройства не могут обмениваться данными друг с другом. Это повышает безопасность, защищая устройства от атак со стороны других клиентов сети. В то же время устройства не смогут получать доступ к общим ресурсам в той же беспроводной сети, например к файлам и принтерам.

Если задано значение 0, устройства могут обмениваться данными друг с другом.

Если задано значение -1, используется глобальное значение по умолчанию; если глобальное значение по умолчанию не указано, предполагается 0.

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

  • -1 ← (значение по умолчанию)
  • 0
  • 1

assigned-mac-address

string

Новое поле для клонированного MAC-адреса.

Это может быть аппаратный адрес в ASCII-представлении или одно из специальных значений: preserve, permanent, random или stable.

Это поле заменяет устаревшее поле wifi.cloned-mac-address в D-Bus, которое может содержать только явные аппаратные адреса.

Обратите внимание, что это свойство существует только в API D-Bus. В libnm и nmcli оно по-прежнему называется cloned-mac-address.

band

string

Диапазон частот 802.11 для сети.

Одно из значений: a для 5 ГГц 802.11a или bg для 2,4 ГГц 802.11.

Этот параметр ограничивает подключение к сети Wi-Fi указанным диапазоном. Например, если задано a, устройство не подключится к той же сети в диапазоне 2,4 ГГц, даже если настройки сети совместимы.

Эта настройка зависит от возможностей конкретного драйвера и может работать не со всеми драйверами.

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

  • "a"
  • "bg"

bssid

string

Если задано, устройство подключается только к указанной точке доступа.

Поддержка этой возможности в значительной степени зависит от драйвера, и она доступна не на всех устройствах.

Обратите внимание: это свойство не управляет BSSID, используемым при создании сети Ad-Hoc, и вряд ли будет управлять им в будущем.

channel

integer

Беспроводной канал для Wi-Fi-подключения.

Устройство подключается к Wi-Fi-сети (или создает сеть Ad-Hoc) только на указанном канале.

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

По умолчанию: 0

cloned-mac-address

string

Это поле D-Bus устарело; вместо него рекомендуется использовать wifi.assigned-mac-address, который более гибок и позволяет задавать специальные варианты, например random.

В libnm и nmcli это поле называется cloned-mac-address.

generate-mac-address-mask

string

При настройке wifi.cloned-mac-address в значение random или stable по умолчанию изменяются все биты MAC-адреса и создается локально администрируемый индивидуальный MAC-адрес. Это свойство позволяет указать биты, которые должны оставаться неизменными.

Обратите внимание: младший бит первого MAC-адреса всегда сбрасывается, чтобы создать индивидуальный MAC-адрес.

Если свойство имеет значение null, его можно переопределить настройкой подключения по умолчанию.

Если значение по-прежнему равно null или представляет собой пустую строку, по умолчанию создается локально администрируемый индивидуальный MAC-адрес.

Если значение содержит один MAC-адрес, он используется в качестве маски. Установленные биты маски заполняются текущим MAC-адресом устройства, а сброшенные биты рандомизируются.

Значение FE:FF:FF:00:00:00 означает сохранение OUI текущего MAC-адреса и рандомизацию только младших 3 байтов с помощью алгоритма random или stable.

Если после маски значение содержит еще один MAC-адрес, он используется вместо текущего MAC-адреса для заполнения битов, которые не должны рандомизироваться.

Например, значение FE:FF:FF:00:00:00 68:F7:28:00:00:00 задает для OUI MAC-адреса значение 68:F7:28, а младшие биты рандомизируются.

Значение 02:00:00:00:00:00 00:00:00:00:00:00 создает полностью рандомизированный встроенный MAC-адрес с глобальным администрированием.

Если значение содержит более одного дополнительного MAC-адреса, один из них выбирается случайным образом. Например, 02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00 создает полностью рандомизированный MAC-адрес со случайным выбором локального или глобального администрирования.

hidden

boolean

Если задано true, указывает, что сеть не передает широковещательные сообщения и скрывает свой SSID. Работает как в режиме инфраструктуры, так и в режиме точки доступа.

В режиме инфраструктуры для более надежного обнаружения скрытых сетей используются различные обходные решения, например сканирование SSID с помощью пробных запросов. Однако такие обходные решения выявляют присущую сетям со скрытым SSID уязвимость, поэтому использовать их следует с осторожностью.

В режиме точки доступа созданная сеть не передает свой SSID.

Обратите внимание: пометка сети как скрытой может создать угрозу конфиденциальности для вас (в режиме инфраструктуры) или клиентских станций (в режиме точки доступа), поскольку явные пробные запросы легко распознаются в эфире.

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

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

mac-address

string

Если задано, это подключение применяется только к Wi-Fi-устройству, постоянный MAC-адрес которого совпадает с указанным.

Это свойство не изменяет MAC-адрес устройства (например, для подмены MAC-адреса).

mac-address-blacklist

list / elements=string

Список постоянных MAC-адресов Wi-Fi-устройств, к которым это подключение не должно применяться.

Каждый MAC-адрес следует указывать в стандартной шестнадцатеричной записи с двоеточиями (например, 00:11:22:33:44:55).

mac-address-randomization

integer

Одно из значений: 0 (не рандомизировать, если только пользователь не задал глобальное значение по умолчанию, предписывающее рандомизацию, и суппликант ее не поддерживает), 1 (никогда не рандомизировать MAC-адрес) или 2 (всегда рандомизировать MAC-адрес).

Это свойство устарело; вместо него используйте wifi.cloned-mac-address.

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

  • 0 ← (значение по умолчанию)
  • 1
  • 2

mode

string

Режим сети Wi-Fi. Если значение не указано, предполагается infrastructure.

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

  • "infrastructure" ← (значение по умолчанию)
  • "mesh"
  • "adhoc"
  • "ap"

mtu

integer

Если значение не равно нулю, передаются только пакеты указанного размера или меньше; более крупные пакеты разбиваются на несколько кадров Ethernet.

По умолчанию: 0

powersave

integer

Одно из значений: 2 (отключить энергосбережение Wi-Fi), 3 (включить энергосбережение Wi-Fi), 1 (не менять текущую настройку) или 0 (использовать глобально настроенное значение).

Все остальные значения зарезервированы.

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

  • 0 ← (значение по умолчанию)
  • 1
  • 2
  • 3

rate

integer

Если значение отлично от нуля, устройству предписывается использовать для связи с точкой доступа только указанную скорость передачи данных.

Единицы измерения — Кбит/с, например, 5500 = 5,5 Мбит/с.

Это свойство в значительной степени зависит от драйвера, и не все устройства поддерживают настройку фиксированной скорости передачи данных.

По умолчанию: 0

tx-power

integer

Если значение отлично от нуля, устройству предписывается использовать указанную мощность передачи.

Единицы измерения — дБм.

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

По умолчанию: 0

wake-on-wlan

integer

Параметры NMSettingWirelessWakeOnWLan, которые нужно включить. Не все устройства поддерживают все параметры.

Можно указать любую комбинацию из NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY (0x2), NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT (0x4), NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC (0x8), NM_SETTING_WIRELESS_WAKE_ON_WLAN_GTK_REKEY_FAILURE (0x10), NM_SETTING_WIRELESS_WAKE_ON_WLAN_EAP_IDENTITY_REQUEST (0x20), NM_SETTING_WIRELESS_WAKE_ON_WLAN_4WAY_HANDSHAKE (0x40), NM_SETTING_WIRELESS_WAKE_ON_WLAN_RFKILL_RELEASE (0x80), NM_SETTING_WIRELESS_WAKE_ON_WLAN_TCP (0x100) или специальных значений 0x1 (для использования глобальных настроек) и 0x8000 (для отключения управления Wake-on-LAN в NetworkManager).

Чтобы объединить несколько параметров, необходимо указать сумму их значений.

По умолчанию: 1

wifi_sec

dictionary

добавлено в community.general 3.0.0

Настройки безопасности Wi-Fi-подключения.

Обратите внимание: список атрибутов подопций может различаться в зависимости от версии NetworkManager/nmcli, установленной на узле.

Актуальный список поддерживаемых атрибутов можно найти здесь: https://networkmanager.dev/docs/api/latest/settings-802-11-wireless-security.html.

Например, чтобы использовать распространённую аутентификацию WPA-PSK с паролем: {key-mgmt: wpa-psk, psk: my_password}.

auth-alg

string

При использовании WEP (то есть если wifi_sec.key-mgmt равно none или ieee8021x) укажите здесь требуемый точкой доступа алгоритм аутентификации 802.11.

Одно из значений: open для открытой системы, shared для общего ключа или leap для Cisco LEAP.

При использовании Cisco LEAP (то есть если wifi_sec.key-mgmt=ieee8021x и wifi_sec.auth-alg=leap) необходимо указать свойства wifi_sec.leap-username и wifi_sec.leap-password.

Варианты:

  • "open"
  • "shared"
  • "leap"

fils

integer

Указывает, нужно ли включить для подключения быструю первоначальную настройку соединения (Fast Initial Link Setup, 802.11ai).

Одно из значений: 0 (использовать глобальное значение по умолчанию), 1 (отключить FILS), 2 (включить FILS, если его поддерживают supplicant и точка доступа) или 3 (включить FILS и завершить работу с ошибкой, если он не поддерживается).

Если задано значение 0 и глобальное значение по умолчанию не установлено, FILS включается по возможности.

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 3

group

list / elements=string

Список алгоритмов группового шифрования/шифрования широковещательных передач, который запрещает подключение к сетям Wi-Fi, не использующим ни один из перечисленных алгоритмов.

Для максимальной совместимости оставьте это свойство пустым.

Варианты:

  • "wep40"
  • "wep104"
  • "tkip"
  • "ccmp"

key-mgmt

string

Управление ключами, используемое для подключения.

Одно из значений: none (WEP или отсутствие защиты паролем), ieee8021x (динамический WEP), owe (Opportunistic Wireless Encryption), wpa-psk (WPA2 + WPA3 Personal), sae (только WPA3 Personal), wpa-eap (WPA2 + WPA3 Enterprise) или wpa-eap-suite-b-192 (только WPA3 Enterprise).

Это свойство необходимо задавать для любого Wi-Fi-подключения, использующего защиту.

Варианты:

  • "none"
  • "ieee8021x"
  • "owe"
  • "wpa-psk"
  • "sae"
  • "wpa-eap"
  • "wpa-eap-suite-b-192"

leap-password

string

Пароль для входа в устаревшие подключения LEAP (то есть если wifi_sec.key-mgmt=ieee8021x и wifi_sec.auth-alg=leap).

leap-password-flags

list / elements=integer

Флаги, указывающие, как обрабатывать свойство wifi_sec.leap-password.

leap-username

string

Имя пользователя для входа в устаревшие подключения LEAP (то есть если wifi_sec.key-mgmt=ieee8021x и wifi_sec.auth-alg=leap).

pairwise

list / elements=string

Список алгоритмов попарного шифрования, который запрещает подключение к сетям Wi-Fi, не использующим ни один из перечисленных алгоритмов.

Для максимальной совместимости оставьте это свойство пустым.

Варианты:

  • "tkip"
  • "ccmp"

pmf

integer

Указывает, нужно ли включить для подключения защищённые кадры управления (Protected Management Frames, 802.11w).

Одно из значений: 0 (использовать глобальное значение по умолчанию), 1 (отключить PMF), 2 (включить PMF, если его поддерживают supplicant и точка доступа) или 3 (включить PMF и завершить работу с ошибкой, если он не поддерживается).

Если задано значение 0 и глобальное значение по умолчанию не установлено, PMF включается по возможности.

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 3

proto

list / elements=string

Список строк, задающих разрешённые версии протокола WPA.

Каждый элемент может иметь значение wpa (разрешить WPA) или rsn (разрешить WPA2/RSN).

Если значение не задано, разрешены подключения WPA и RSN.

Варианты:

  • "wpa"
  • "rsn"

psk

string

Предварительно установленный ключ для сетей WPA.

Для WPA-PSK это либо парольная фраза ASCII длиной от 8 до 63 символов, которая хешируется для получения фактического ключа (как указано в стандарте 802.11i), либо ключ в виде 64 шестнадцатеричных символов.

В сетях WPA3-Personal для аутентификации SAE используется парольная фраза произвольной длины.

psk-flags

list / elements=integer

Флаги, указывающие, как обрабатывать свойство wifi_sec.psk.

wep-key-flags

list / elements=integer

Флаги, указывающие, как обрабатывать свойства wifi_sec.wep-key0, wifi_sec.wep-key1, wifi_sec.wep-key2 и wifi_sec.wep-key3.

wep-key-type

integer

Определяет способ интерпретации ключей WEP.

Допустимые значения: 1 — в этом случае ключ представляет собой шестнадцатеричную строку длиной 10 или 26 символов либо пароль ASCII длиной 5 или 13 символов; или 2 — в этом случае парольная фраза задаётся в виде строки и хешируется с помощью фактически используемого метода MD5 для получения ключа WEP.

Варианты:

  • 1
  • 2

wep-key0

string

Ключ WEP с индексом 0. Это ключ WEP, используемый в большинстве сетей.

Описание интерпретации этого ключа см. в свойстве wifi_sec.wep-key-type.

wep-key1

string

Ключ WEP с индексом 1. Большинство сетей не используют этот индекс WEP.

Описание интерпретации этого ключа см. в свойстве wifi_sec.wep-key-type.

wep-key2

string

Ключ WEP с индексом 2. Большинство сетей не используют этот индекс WEP.

Описание интерпретации этого ключа см. в свойстве wifi_sec.wep-key-type.

wep-key3

string

Ключ WEP с индексом 3. Большинство сетей не используют этот индекс WEP.

Описание интерпретации этого ключа см. в свойстве wifi_sec.wep-key-type.

wep-tx-keyidx

integer

При использовании статического WEP (то есть если wifi_sec.key-mgmt=none) и нестандартного индекса ключа WEP на точке доступа укажите здесь этот индекс.

Допустимые значения: от 0 (ключ по умолчанию) до 3.

Обратите внимание, что некоторые потребительские точки доступа (например, Linksys WRT54G) нумеруют ключи от 1 до 4.

Варианты:

  • 0 ← (по умолчанию)
  • 1
  • 2
  • 3

wps-method

integer

Флаги, указывающие, какой режим WPS следует использовать, если он вообще используется.

Обычно нет необходимости менять значение по умолчанию: NetworkManager автоматически определяет по возможностям точки доступа, можно ли начать регистрацию WPS.

WPS можно отключить, задав для этого свойства значение 1.

По умолчанию: 0

wireguard

dictionary

добавлено в community.general 4.3.0

Настройки подключения WireGuard.

Обратите внимание: список атрибутов подопций может различаться в зависимости от версии NetworkManager/nmcli, установленной на узле.

Актуальный список поддерживаемых атрибутов можно найти здесь: https://networkmanager.dev/docs/api/latest/settings-wireguard.html.

Например, чтобы настроить порт прослушивания: {listen-port: 12345}.

fwmark

integer

32-битная метка fwmark для исходящих пакетов.

Использование fwmark необязательно и по умолчанию отключено. Значение 0 отключает эту функцию.

Обратите внимание: включение wireguard.ip4-auto-default-route или wireguard.ip6-auto-default-route означает автоматический выбор fwmark.

ip4-auto-default-route

boolean

Включает ли специальную обработку маршрута IPv4 по умолчанию.

Если параметр включён, маршрут IPv4 по умолчанию из wireguard.peer-routes помещается в отдельную таблицу маршрутизации и добавляются два правила маршрутизации по политикам.

Число fwmark также используется в качестве таблицы маршрутизации для маршрута по умолчанию; если fwmark равен нулю, автоматически выбирается свободная метка fwmark/таблица. Это соответствует поведению wg-quick с Table=auto и функции, которую WireGuard называет «улучшенной маршрутизацией на основе правил».

Варианты:

  • false
  • true

ip6-auto-default-route

boolean

Как wireguard.ip4-auto-default-route, но для маршрута IPv6 по умолчанию.

Варианты:

  • false
  • true

listen-port

integer

Порт прослушивания подключения WireGuard. Если он не задан, при активации интерфейса порт выбирается случайным образом.

mtu

integer

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

Если значение равно нулю, используется MTU по умолчанию. Обратите внимание: в отличие от настройки MTU в wg-quick, это значение не учитывает текущие маршруты на момент активации.

peer-routes

boolean

Следует ли автоматически добавлять маршруты для диапазонов AllowedIPs узлов-пиров.

Если задано true (значение по умолчанию), NetworkManager автоматически добавляет маршруты в таблицы маршрутизации в соответствии с ipv4.route-table и ipv6.route-table. Обычно эту автоматизацию рекомендуется оставить включённой.

Если задано false, такие маршруты автоматически не добавляются. В этом случае можно настроить статические маршруты в ipv4.routes и ipv6.routes соответственно.

Обратите внимание: если AllowedIPs узла-пира равен 0.0.0.0/0 или ::/0, а параметр ipv4.never-default или ipv6.never-default профиля включён, маршрут для этого узла-пира автоматически не добавляется.

Варианты:

  • false
  • true

private-key

string

256-битный закрытый ключ в кодировке Base64.

private-key-flags

integer

NMSettingSecretFlags, указывающие, как обрабатывать свойство wireguard.private-key.

Варианты:

  • 0
  • 1
  • 2

xmit_hash_policy

string

добавлено в community.general 5.6.0

Используется только с типом xmit_hash_policy для bond.

zone

string

добавлено в community.general 2.0.0

Уровень доверия подключения.

При изменении этого свойства у уже активированного подключения изменения вступают в силу немедленно.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: full

Может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект.

diff_mode

Поддержка: full

В режиме сравнения возвращает подробную информацию об изменениях (или возможных изменениях в check_mode).

Примеры

# These examples are using the following inventory:
#
# ## Directory layout:
#
# |_/inventory/cloud-hosts
# |           /group_vars/openstack-stage.yml
# |           /host_vars/controller-01.openstack.host.com
# |           /host_vars/controller-02.openstack.host.com
# |_/playbook/library/nmcli.py
# |          /playbook-add.yml
# |          /playbook-del.yml
# ```
#
# ## inventory examples
# ### groups_vars
# ```yml
# ---
# #devops_os_define_network
# storage_gw: "192.0.2.254"
# external_gw: "198.51.100.254"
# tenant_gw: "203.0.113.254"
#
# #Team vars
# nmcli_team:
#   - conn_name: tenant
#     ip4: '{{ tenant_ip }}'
#     gw4: '{{ tenant_gw }}'
#   - conn_name: external
#     ip4: '{{ external_ip }}'
#     gw4: '{{ external_gw }}'
#   - conn_name: storage
#     ip4: '{{ storage_ip }}'
#     gw4: '{{ storage_gw }}'
# nmcli_team_slave:
#   - conn_name: em1
#     ifname: em1
#     master: tenant
#   - conn_name: em2
#     ifname: em2
#     master: tenant
#   - conn_name: p2p1
#     ifname: p2p1
#     master: storage
#   - conn_name: p2p2
#     ifname: p2p2
#     master: external
#
# #bond vars
# nmcli_bond:
#   - conn_name: tenant
#     ip4: '{{ tenant_ip }}'
#     gw4: ''
#     mode: balance-rr
#   - conn_name: external
#     ip4: '{{ external_ip }}'
#     gw4: ''
#     mode: balance-rr
#   - conn_name: storage
#     ip4: '{{ storage_ip }}'
#     gw4: '{{ storage_gw }}'
#     mode: balance-rr
# nmcli_bond_slave:
#   - conn_name: em1
#     ifname: em1
#     master: tenant
#   - conn_name: em2
#     ifname: em2
#     master: tenant
#   - conn_name: p2p1
#     ifname: p2p1
#     master: storage
#   - conn_name: p2p2
#     ifname: p2p2
#     master: external
#
# #ethernet vars
# nmcli_ethernet:
#   - conn_name: em1
#     ifname: em1
#     ip4:
#       - '{{ tenant_ip }}'
#       - '{{ second_tenant_ip }}'
#     gw4: '{{ tenant_gw }}'
#   - conn_name: em2
#     ifname: em2
#     ip4: '{{ tenant_ip1 }}'
#     gw4: '{{ tenant_gw }}'
#   - conn_name: p2p1
#     ifname: p2p1
#     ip4: '{{ storage_ip }}'
#     gw4: '{{ storage_gw }}'
#   - conn_name: p2p2
#     ifname: p2p2
#     ip4: '{{ external_ip }}'
#     gw4: '{{ external_gw }}'
# ```
#
# ### host_vars
# ```yml
# ---
# storage_ip: "192.0.2.91/23"
# external_ip: "198.51.100.23/21"
# tenant_ip: "203.0.113.77/23"
# second_tenant_ip: "204.0.113.77/23"
# ```


## playbook-add.yml example

- hosts: openstack-stage
  remote_user: root
  tasks:

    - name: Install needed network manager libs
      ansible.builtin.package:
        name:
          - NetworkManager-libnm
          - nm-connection-editor
          - libsemanage-python
          - policycoreutils-python
        state: present

##### Working with all cloud nodes - Teaming
    - name: Try nmcli add team - conn_name only & ip4 gw4
      community.general.nmcli:
        type: team
        conn_name: '{{ item.conn_name }}'
        ip4: '{{ item.ip4 }}'
        gw4: '{{ item.gw4 }}'
        state: present
      with_items:
        - '{{ nmcli_team }}'

    - name: Try nmcli add teams-slave
      community.general.nmcli:
        type: team-slave
        conn_name: '{{ item.conn_name }}'
        ifname: '{{ item.ifname }}'
        master: '{{ item.master }}'
        state: present
      with_items:
        - '{{ nmcli_team_slave }}'

##### Working with all cloud nodes - Bonding
    - name: Try nmcli add bond - conn_name only & ip4 gw4 mode
      community.general.nmcli:
        type: bond
        conn_name: '{{ item.conn_name }}'
        ip4: '{{ item.ip4 }}'
        gw4: '{{ item.gw4 }}'
        mode: '{{ item.mode }}'
        state: present
      with_items:
        - '{{ nmcli_bond }}'

    - name: Try nmcli add bond-slave
      community.general.nmcli:
        type: bond-slave
        conn_name: '{{ item.conn_name }}'
        ifname: '{{ item.ifname }}'
        master: '{{ item.master }}'
        state: present
      with_items:
        - '{{ nmcli_bond_slave }}'

##### Working with all cloud nodes - Ethernet
    - name: Try nmcli add Ethernet - conn_name only & ip4 gw4
      community.general.nmcli:
        type: ethernet
        conn_name: '{{ item.conn_name }}'
        ip4: '{{ item.ip4 }}'
        gw4: '{{ item.gw4 }}'
        state: present
      with_items:
        - '{{ nmcli_ethernet }}'

## playbook-del.yml example
- hosts: openstack-stage
  remote_user: root
  tasks:

    - name: Try nmcli del team - multiple
      community.general.nmcli:
        conn_name: '{{ item.conn_name }}'
        state: absent
      with_items:
        - conn_name: em1
        - conn_name: em2
        - conn_name: p1p1
        - conn_name: p1p2
        - conn_name: p2p1
        - conn_name: p2p2
        - conn_name: tenant
        - conn_name: storage
        - conn_name: external
        - conn_name: team-em1
        - conn_name: team-em2
        - conn_name: team-p1p1
        - conn_name: team-p1p2
        - conn_name: team-p2p1
        - conn_name: team-p2p2

    - name: Add an Ethernet connection with static IP configuration
      community.general.nmcli:
        conn_name: my-eth1
        ifname: eth1
        type: ethernet
        ip4: 192.0.2.100/24
        gw4: 192.0.2.1
        state: present

    - name: Add an Team connection with static IP configuration
      community.general.nmcli:
        conn_name: my-team1
        ifname: my-team1
        type: team
        ip4: 192.0.2.100/24
        gw4: 192.0.2.1
        state: present
        autoconnect: true

    - name: Optionally, at the same time specify IPv6 addresses for the device
      community.general.nmcli:
        conn_name: my-eth1
        ifname: eth1
        type: ethernet
        ip4: 192.0.2.100/24
        gw4: 192.0.2.1
        ip6: 2001:db8::cafe
        gw6: 2001:db8::1
        state: present

    - name: Add two IPv4 DNS server addresses
      community.general.nmcli:
        conn_name: my-eth1
        type: ethernet
        dns4:
          - 192.0.2.53
          - 198.51.100.53
        state: present

    - name: Make a profile usable for all compatible Ethernet interfaces
      community.general.nmcli:
        ctype: ethernet
        name: my-eth1
        ifname: '*'
        state: present

    - name: Change the property of a setting e.g. MTU
      community.general.nmcli:
        conn_name: my-eth1
        mtu: 9000
        type: ethernet
        state: present

    - name: Change the property of a setting e.g. MTU and reload connection
      community.general.nmcli:
        conn_name: my-eth1
        mtu: 1500
        type: ethernet
        state: present
        conn_reload: true

    - name: Disable connection
      community.general.nmcli:
        conn_name: my-eth1
        state: down

    - name: Reload and enable connection
      community.general.nmcli:
        conn_name: my-eth1
        state: up
        conn_reload: true

    - name: Add second ip4 address
      community.general.nmcli:
        conn_name: my-eth1
        ifname: eth1
        type: ethernet
        ip4:
          - 192.0.2.100/24
          - 192.0.3.100/24
        state: present

    - name: Add second ip6 address
      community.general.nmcli:
        conn_name: my-eth1
        ifname: eth1
        type: ethernet
        ip6:
          - 2001:db8::cafe
          - 2002:db8::cafe
        state: present

    - name: Add VxLan
      community.general.nmcli:
        type: vxlan
        conn_name: vxlan_test1
        vxlan_id: 16
        vxlan_local: 192.168.1.2
        vxlan_remote: 192.168.1.5

    - name: Add VxLan via multicast on a bridge
      community.general.nmcli:
        type: vxlan
        conn_name: vxlan_test2
        vxlan_id: 17
        vxlan_parent: eth1
        vxlan_local: 192.168.1.2
        vxlan_remote: 239.192.0.17
        slave_type: bridge
        master: br0

    - name: Add gre
      community.general.nmcli:
        type: gre
        conn_name: gre_test1
        ip_tunnel_dev: eth0
        ip_tunnel_local: 192.168.1.2
        ip_tunnel_remote: 192.168.1.5

    - name: Add ipip
      community.general.nmcli:
        type: ipip
        conn_name: ipip_test1
        ip_tunnel_dev: eth0
        ip_tunnel_local: 192.168.1.2
        ip_tunnel_remote: 192.168.1.5

    - name: Add sit
      community.general.nmcli:
        type: sit
        conn_name: sit_test1
        ip_tunnel_dev: eth0
        ip_tunnel_local: 192.168.1.2
        ip_tunnel_remote: 192.168.1.5

    - name: Add zone
      community.general.nmcli:
        type: ethernet
        conn_name: my-eth1
        zone: external
        state: present

# nmcli exits with status 0 if it succeeds and exits with a status greater
# than zero when there is a failure. The following list of status codes may be
# returned:
#
#     - 0 Success - indicates the operation succeeded
#     - 1 Unknown or unspecified error
#     - 2 Invalid user input, wrong nmcli invocation
#     - 3 Timeout expired (see --wait option)
#     - 4 Connection activation failed
#     - 5 Connection deactivation failed
#     - 6 Disconnecting device failed
#     - 7 Connection deletion failed
#     - 8 NetworkManager is not running
#     - 9 nmcli and NetworkManager versions mismatch
#     - 10 Connection, device, or access point does not exist.

- name: Create the wifi connection
  community.general.nmcli:
    type: wifi
    conn_name: Brittany
    ifname: wlp4s0
    ssid: Brittany
    wifi_sec:
      key-mgmt: wpa-psk
      psk: my_password
    autoconnect: true
    state: present

- name: Create a hidden AP mode wifi connection
  community.general.nmcli:
    type: wifi
    conn_name: ChocoMaster
    ifname: wlo1
    ssid: ChocoMaster
    wifi:
      hidden: true
      mode: ap
    autoconnect: true
    state: present

- name: Create a gsm connection
  community.general.nmcli:
    type: gsm
    conn_name: my-gsm-provider
    ifname: cdc-wdm0
    gsm:
      apn: my.provider.apn
      username: my-provider-username
      password: my-provider-password
      pin: my-sim-pin
    autoconnect: true
    state: present

- name: Create a macvlan connection
  community.general.nmcli:
    type: macvlan
    conn_name: my-macvlan-connection
    ifname: mymacvlan0
    macvlan:
      mode: 2
      parent: eth1
    autoconnect: true
    state: present

- name: Create a wireguard connection
  community.general.nmcli:
    type: wireguard
    conn_name: my-wg-provider
    ifname: mywg0
    wireguard:
      listen-port: 51820
      private-key: my-private-key
    autoconnect: true
    state: present

- name: >-
    Create a VPN L2TP connection for ansible_user to connect on vpn.example.com
    authenticating with user 'brittany' and pre-shared key as 'Brittany123'
  community.general.nmcli:
    type: vpn
    conn_name: my-vpn-connection
    vpn:
      permissions: "{{ ansible_user }}"
      service-type: org.freedesktop.NetworkManager.l2tp
      gateway: vpn.example.com
      password-flags: 2
      user: brittany
      ipsec-enabled: true
      ipsec-psk: "0s{{ 'Brittany123' | ansible.builtin.b64encode }}"
    autoconnect: false
    state: present

## Creating bond attached to bridge example
- name: Create bond attached to bridge
  community.general.nmcli:
    type: bond
    conn_name: bond0
    slave_type: bridge
    master: br0
    state: present

- name: Create master bridge
  community.general.nmcli:
    type: bridge
    conn_name: br0
    method4: disabled
    method6: disabled
    state: present

## Creating vlan connection attached to bridge
- name: Create master bridge
  community.general.nmcli:
    type: bridge
    conn_name: br0
    state: present

- name: Create VLAN 5
  community.general.nmcli:
    type: vlan
    conn_name: eth0.5
    slave_type: bridge
    master: br0
    vlandev: eth0
    vlanid: 5
    state: present

## Creating VRF and adding VLAN interface to it
- name: Create VRF
  community.general.nmcli:
    type: vrf
    ifname: vrf10
    table: 10
    state: present
    conn_name: vrf10
    method4: disabled
    method6: disabled

- name: Create VLAN interface inside VRF
  community.general.nmcli:
    conn_name: "eth0.124"
    type: vlan
    vlanid: "124"
    vlandev: "eth0"
    master: "vrf10"
    slave_type: vrf
    state: "present"
    ip4: '192.168.124.50'
    gw4: '192.168.124.1'

## Defining ip rules while setting a static IP
## table 'production' is set with id 200 in this example.
- name: Set Static ips for interface with ip rules and routes
  community.general.nmcli:
    type: ethernet
    conn_name: 'eth0'
    ip4: '192.168.1.50'
    gw4: '192.168.1.1'
    state: present
    routes4_extended:
      - ip: "0.0.0.0/0"
        next_hop: "192.168.1.1"
        table: "production"
    routing_rules4:
      - "priority 0 from 192.168.1.50 table 200"

## Creating an OVS bridge and attaching a port
- name: Create OVS Bridge
  community.general.nmcli:
    conn_name: ovs-br-conn
    ifname: ovs-br
    type: ovs-bridge
    state: present

- name: Create OVS Port for OVS Bridge Interface
  community.general.nmcli:
    conn_name: ovs-br-interface-port-conn
    ifname: ovs-br-interface-port
    master: ovs-br
    type: ovs-port
    state: present

## Adding an ethernet interface to an OVS bridge port
- name: Add Ethernet Interface to OVS Port
  community.general.nmcli:
    conn_name: eno1
    ifname: eno1
    master: ovs-br-interface-port
    slave_type: ovs-port
    type: ethernet
    state: present

Авторы

  • Chris Long (@alcamie101)

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

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Запросить новую функцию
  • Связь

© 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/community/general/nmcli_module.html

Spec-Zone.ru

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