Spec-Zone.ru › Ansible

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

Примечание

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

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

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

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

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

Описание

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

Требования

Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется этот модуль.

  • nmcli

Параметры

Параметр

Комментарии

addr_gen_mode6

string

added in 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 ← (default)

conn_name

string / required

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

conn_reload

boolean

added in community.general 9.5.0

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

Варианты:

  • false ← (default)
  • true

dhcp_client_id

string

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

dns4

list / elements=string

Список из до 3 DNS-серверов.

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

dns4_ignore_auto

boolean

added in community.general 3.2.0

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

Варианты:

  • false ← (default)
  • true

dns4_options

list / elements=string

added in 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

added in community.general 3.2.0

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

Варианты:

  • false ← (default)
  • true

dns6_options

list / elements=string

added in community.general 7.2.0

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

dns6_search

list / elements=string

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

downdelay

integer

Используется только с bond - downdelay.

egress

string

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

flags

string

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

forwarddelay

integer

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

Значение по умолчанию: 15

gsm

словарь

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

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

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

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

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

apn

строка

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

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

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

auto-config

булево

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

Выбор:

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

device-id

строка

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

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

home-only

булево

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

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

Выбор:

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

mtu

целое число

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

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

network-id

строка

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

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

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

number

строка

Устаревшее значение, которое раньше помогало устанавливать сессии PPP для GSM-модемов.

password

строка

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

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

Но если пароль требуется, он указывается здесь.

password-flags

целое число

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

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

Выбор:

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

pin

строка

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

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

pin-flags

целое число

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

См. gsm.password-flags для вариантов NMSettingSecretFlags.

Выбор:

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

sim-id

строка

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

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

sim-operator-id

строка

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

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

username

строка

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

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

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

gw4

строка

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

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

Этот параметр исключает параметр never_default4.

gw4_ignore_auto

boolean

added in community.general 3.2.0

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

Choices:

  • false ← (default)
  • true

gw6

string

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

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

gw6_ignore_auto

boolean

added in community.general 3.2.0

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

Choices:

  • false ← (default)
  • true

hairpin

boolean

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

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

Choices:

  • false ← (default)
  • true

hellotime

integer

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

Default: 2

ifname

string

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

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

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

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

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

ignore_unsupported_suboptions

boolean

added in community.general 3.6.0

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

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

Choices:

  • false ← (default)
  • true

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

added in community.general 4.2.0

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

Choices:

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

ip_tunnel_dev

string

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

ip_tunnel_input_key

string

added in community.general 3.6.0

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

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

ip_tunnel_local

string

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

ip_tunnel_output_key

string

added in 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

added in community.general 6.6.0

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

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

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

режим

целое число / обязательно

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

Разрешены следующие варианты: 1 vepa, 2 bridge, 3 private, 4 passthru и 5 source

Варианты:

  • 1
  • 2
  • 3
  • 4
  • 5

родитель

строка / обязательно

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

promiscuous

логическое значение

Указывает, должен ли интерфейс быть помещён в режим promiscuous.

Варианты:

  • false
  • true

tap

логическое значение

Указывает, должен ли интерфейс быть MACVTAP.

Варианты:

  • false
  • true

главный

строка

Главный интерфейс <master (имя_интерфейса, или UUID подключения или имя_подключения)> для моста, команды, бонда, подключения master ovs-port.

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

макс_возраст

целое число

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

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

может_провадится4

логическое значение

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

Если вам необходимо ip4 сконфигурировать до того, как будет достигнуто network-online.target, установите этот параметр в false.

Этот параметр применяется, когда method4 не disabled.

Варианты:

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

метод4

строка

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

Метод конфигурации для IPv4.

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

Варианты:

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

метод6

строка

добавлено в 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

целое число

Используется только с бондом - miimon.

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

режим

строка

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

Варианты:

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

mtu

целое число

MTU подключения, например, 9000. Не может быть применено при создании интерфейса и используется после создания интерфейса.

Может использоваться при модификации команды, VLAN, Ethernet (будущие планы по реализации wifi, gsm, pppoe, infiniband)

Этот параметр по умолчанию 1500 при отсутствии.

никогда_по_умолчанию4

логическое значение

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

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

Этот параметр взаимоисключающий с параметром gw4.

Варианты:

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

стоимость_пути

целое число

Используется только с ‘bridge-slave’ - [<1-65535>] - стоимость порта STP для адресатов через этот slave.

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

первичный

строка

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

приоритет

целое число

Используется только с ‘мост’ - задаёт приоритет STP.

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

метрика_маршрута4

целое число

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

Установить уровень метрики маршрутов ipv4, сконфигурированных на интерфейсе.

route_metric6

integer

added in community.general 4.4.0

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

routes4

list / elements=string

added in 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 / required

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

added in 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 / required

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

added in community.general 3.3.0

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

runner

string

added in community.general 3.4.0

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

Варианты:

  • "broadcast"
  • "roundrobin" ← (default)
  • "activebackup"
  • "loadbalance"
  • "lacp"

runner_fast_rate

boolean

added in community.general 6.5.0

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

Доступен только для runner=lacp.

Варианты:

  • false
  • true

runner_hwaddr_policy

string

added in community.general 3.4.0

Определяет политику задания MAC-адресов устройства группы и портовых устройств на протяжении всего жизненного цикла группы.

Варианты:

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

slave_type

string

added in community.general 7.0.0

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

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

Варианты:

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

slavepriority

integer

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

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

ssid

string

added in community.general 3.0.0

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

state

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

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

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

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

Варианты:

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

stp

boolean

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

Варианты:

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

transport_mode

string

added in 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.

Использование 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"
  • "loopback"

updelay

integer

Используется только с bond - updelay.

vlandev

string

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

vlanid

integer

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

vpn

dictionary

added in 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

Предопределённый ключ (PSK) в кодировке 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_remote

string

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

wifi

dictionary

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

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

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

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

Например, для создания скрытой точки доступа WiFi: {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 подключения.

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

Поскольку номера каналов перекрываются между диапазонами, это свойство также требует, чтобы свойство 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. Это работает как в режиме инфраструктуры, так и в режиме AP.

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

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

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

Варианты:

  • 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 (никогда не рандомизировать, если пользователь не установил глобальное значение по умолчанию для рандомизации, и supplicant поддерживает рандомизацию), 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

Настройка безопасности WiFi соединения.

Обратите внимание, что список атрибутов дополнительных параметров может варьироваться в зависимости от версии 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, требуемый AP.

Один из open для Open System, shared для Shared Key или 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

Указывает, следует ли включать Быструю начальную настройку связи (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 (Условное беспроводное шифрование), 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

Указывает, следует ли включать Защищенные фреймы управления (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-символьную шестнадцатеричную строку, либо 5- или 13-символьный пароль ASCII; или 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 отключает fwmark.

Обратите внимание, что включение 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

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

зона

строка

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

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

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

Атрибуты

Атрибут

Поддержка

Описание

режим_проверки

Поддержка: полная

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

режим_сравнения

Поддержка: полная

Возвращает подробности о том, что изменилось (или, возможно, что необходимо изменить в 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
      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 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

## 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/nmcli_module.html

Spec-Zone.ru

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