Сетка цвпс: Производитель сетки — «СеткаМСК», основной производитель ЦПВС для дизайна и мебели в Москве

Сетка ЦПВС белый цинк 37х13х1,5мм карта 1,25м х 2,5м


Ваш город: Не выбрано



Вход | Регистрация


  • Каталог товаров
  • /

  • Общестроительные материалы
  • /

  • Металлопрокат
  • /

  • Сетка

  • Описание

  • Характеристики


  • Акции


  • Модификации


  • Услуги и сервисы


  • Похожие товары


  • Эксперты


  • Отзывы

Для увеличения картинки нажмите на изображение




Артикул:




Цена за:
м2



850. 30 ₽


Цена за:
шт (3.125 м2)



2 657.19 ₽

0 ₽

экономия
0 ₽






м2









шт

шт м2шт (3. 125 м2)

В наличии



Назначение: универсальнаяштукатурнаяуниверсальная



Покрытие: белый цинкбез покрытиябелый цинк



Размер ячейки, мм: 37х1310х1010х415х720х1020х2030х1230х3045х3050х206х337х1362х286х6



Размер, мм: карта 1,25м х 2,5мкарта 1,25м х 2,5мкарта 1,25м х 6мкарта 2м х 1мрулон 1,25м х 10мрулон 1,25м х 12мрулон 1,25м х 15мрулон 1,25м х 25мрулон 1,25м х 35мрулон 1,25м х 5,5мрулон 1,25м х 8мрулон 1м х 10мрулон 1м х 15мрулон 1м х 5м


Итоговая сумма:




—>
2 657.19 ₽





Порядок оплаты







СравнитьВ сравнении



В закладкиВ закладках



Купить в 1 клик
В корзину
В корзине


  • Ключевые особенности товара


  • Оцените свойства товара до покупки


  • Покупайте выгодно


  • Другие варианты товара


  • Для комфортной покупки


  • Из других коллекций


  • Задайте вопросы профессионалам


  • Что говорят наши клиенты о товаре




Сетка цпвс в форме карта повышает ударную прочность несущих стен, защищает от образования трещин при внешних воздействиях и внутренней вибрации. Универсальная ЦПВС сетка выпускается в виде карта 1,25м х 2,5м и полностью соответствует требованиям ТУ 1205-001-90850245-2015. Размер каждой ячейки 37х13мм при типе проволоки не установлено и толщине прутка 1,5мм. Сетка производитсяв России белый цинк.


Общие характеристики ?

Код 1С ?
:УТ-00250843Статус товара ?
:Цена по запросуТип ?
:СеткаТип сетки ?
:ЦПВСКоллекция ?
:ЦПВССтрана-производитель ?
:РоссияПокрытие ?
:белый цинкТип проволоки ?
:не установленоСоответствует требованиям ?
:ТУ 1205-001-90850245-2015


Применение ?

Назначение ?
:универсальная


Внешний вид ?

Форма ?
:карта


Размеры и вес ?

Длина, м ?
:2,5Ширина, м ?
:1,25Размер, мм ?
:карта 1,25м х 2,5мРазмер ячейки, мм ?
:37х13Диаметр прутка, мм ?
:1,5Толщина перемычки, мм ?
:1,5Ширина перемычки, мм ?
:1,5Вес м2, кг :1,21

Что такое сетка ПВС и ЦПВС — PVL

Сетка армирующая ПВС – просечно-вытяжная сетка – современный профессиональный материал нового поколения с широкими функциональными возможностями. Это высокотехнологичная альтернатива традиционным металлическим сеткам, имеющая множество сфер применения.

Изготавливается ЦПВС – цельнометаллическая просечно-вытяжная сетка из нержавеющей или оцинкованной стали, алюминия, различных сплавов. Согласно технологии изготовления металлический лист одновременно равномерно просекается и растягивается. Потери материала в процессе производства исключены. Сетка ЦПВС производится практически без отходов, что удешевляет конечную стоимость продукта. Готовое изделие представляет собой металлическую сетку с ячейками ромбовидной, круглой, квадратной или другой формы.

ЦПВС используют в строительной сфере (армирование любых поверхностей, армирование штукатурных слоев, армирование под укладку кафеля, укрепление теплоизоляции и т.д.), городском благоустройстве, для изготовления заборов, ограждений, антивадальных защит различных объектов, вольеров для животных и птиц, мебели, деталей интерьера и т.д.

Особенности и преимущества

Основные особенности сетки ЦПВС (ПВС) обусловлены технологией изготовления. Благодаря использованию листового металла сетка имеет цельную структуру без наличия сварных швов. Ее полотно состоит из ячеек, расположенных в одной плоскости с естественной трехмерной структурой. В отличие от плетеных сеток ЦПВС обеспечивает плотную фиксацию штукатурных масс к несущей поверхности и выдерживает более высокие нагрузки, что имеет большое значение при использовании данного материала при организации систем ограждения. Даже в случае нарушения целостности одного из элементов полотна, вся сетка не распускается, как это происходит с другими сетками.

К преимуществам сетки ЦПВС следует отнести следующие:

  • широкое разнообразие типоразмеров металсетки (от 10х10 до 100х50) и конфигурации ячеек;
  • высокая механическая прочность, гибкость;
  • отличные эксплуатационные характеристики;
  • огнестойкость, соответствие всем требованиям пожарной безопасности;
  • повышенная стойкость к агрессивным составляющим штукатурных смесей, воздействию неблагоприятных атмосферных факторов, коррозионная стойкость;
  • возможность усилить «антивандальные» характеристики сетки ЦПВС, благодаря чему ее можно применять там, где ранее традиционно использовались только арматурные сварные сетки;
  • имеет прозрачную структуру, хорошо пропускает свет и воздух – важный фактор для изготовления ограждений для растений, вольеров и клеток для животных;
  • небольшой вес, просечно-вытяжная цельнометаллическая сетка в 2,5 раза легче по сравнению со сварными и ткаными сетками;
  • легкие и компактные рулоны ЦПВС в любом необходимом количестве легко транспортируются до объекта строительства;
  • простота монтажа и эксплуатации;
  • доступная цена.

Сетка ЦПВС или рабица?

При выборе материала для армирования поверхностей и других строительно-ремонтных работ, изготовления ограждений, мебели, оборудования для торговых точек и промышленных предприятий, а также других изделий необходимо взвесить все плюсы и минусы предлагаемых производителями вариантов. Среди наиболее популярных и востребованных – просечно-вытяжная сетка и сетка рабица.

Проводя сравнение сетки ЦПВС с рабицей, следует отметить более высокую прочность ЦПВС, нерасплетаемость ячеек, более высокую декоративность и это притом, что стоимость рабицы и ЦПВС является сравнимой.

Кроме того, использование сетки ЦПВС обеспечивает экономию расходных материалов. Это именно тот вариант, который можно считать оптимальным соотношением «цена-качество». Изделия из просечно-вытяжной цельнометаллической сетки отличаются высокой надежностью и долговечностью.

Сетка ЦПВС свободно продается в торговых точках (стройбазы “Петрович”, “Стройудача”, “Максидом” и других), и с покупкой данного материала проблем не возникает. Чтобы обеспечить максимальную экономию средств можно связаться с производителем «Сетка СПб» напрямую и заказать необходимый объем продукции по самым выгодным ценам с доставкой. Продажа сетки осуществляется от 1 рулона. Заказы доставляются в любые регионы России.

данных сетки VPS во время выполнения — запросы функций

Merijn_Kersten

#1

Мы с моей командой рассматриваем возможность создания физической игры на основе местоположения, в которой было бы очень полезно иметь доступ к сетке местоположения VPS после его успешной локализации. Можно ли загрузить сетку (версию с низким разрешением), которая подключена к указанной путевой точке / местоположению VPS?

Умайя_Доддамани1

#2

Здравствуйте, Мерджин,

Спасибо за интерес к этой функции.

Вы можете загрузить только сетку для вашего частного местоположения VPS, которую вы можете использовать для целей разработки. Пожалуйста, обратитесь к ссылке downloading-meshes, чтобы узнать, как вы можете загрузить данные частной сетки.
Мы рекомендуем вам создавать свои собственные личные сканы на месте и сохранять их в двоичный файл для переноса в ваш собственный проект, следуя этому руководству.
Также см. документацию Advanced Tutorial: Meshing and Collisions, где можно использовать компонент ARMeshManager в сочетании с префабом сетки MeshColliderChunk (шаг 6) для создания сетки среды во время выполнения, которая поддерживает обнаружение столкновений.
Это позволит вашим игрокам взаимодействовать с окружающей средой с помощью GameObjects с поддержкой физики и поможет вам убедиться, что сетка столкновений отражает текущую среду, вместо того, чтобы полагаться на потенциально устаревшее сканирование из службы VPS.

Надеюсь, это поможет.

Мерийн_Керстен

#3

Спасибо за быстрый ответ!
Я уже сделал несколько приложений с сеткой в ​​​​реальном времени, которые имеют коллизии, это работало довольно хорошо, но на более медленных устройствах сначала требовалось некоторое время для сканирования среды, поэтому я надеялся, что мы сможем загрузить предварительно отсканированную сетку из VPS.

Ваша идея сохранить частные сканы и загрузить их в полезную нагрузку местоположения VPS сработает для наших частных путевых точек, так что я попробую!
Также я понимаю, что эта ситуация довольно специфична, и ваши опасения по поводу устаревших сеток вполне обоснованы, что я не учел, задавая вопрос.

Агостино_Реддел

#4

Hej @Merijn_Kersten, в настоящее время я столкнулся с той же проблемой, и мне интересно, есть ли у вас какие-либо обновления, которыми вы могли бы поделиться!
Вы пытались сохранить свои личные сканы и загрузить их в полезную нагрузку местоположения VPS?
Заранее спасибо!

Мерийн_Керстен

#5

Привет @Agostino_Reddel !
В итоге я интегрировал инструмент удаленного авторинга в свои проекты, это бета-функция Lightship. Но отсюда то же самое решение, загрузка частной или общедоступной сетки, добавление к ней коллайдера сетки и продолжение создания сетки, чтобы он мог медленно заполнять пробелы.
Теперь вы также можете отдавать приоритет сетке вдали, таким образом, качество будет немного ниже, но это полезно для больших пространств.
Если у вас нет доступа к этой бета-функции, вы можете спросить об этом в разногласиях или локализовать, используя этот метод: Origin Anchor для частных тестовых сеток

Автоматизация настройки мультисерверной сетки Wireguard с помощью ansible · Блог Джахера Муссы

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

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

Поскольку это побочный проект, я использую дешевые VPS-серверы от нескольких хостеров: Scaleway и Hetzner в Европе, Vultr и Digital Ocean для других регионов, ….

Сюда не входят облачные решения, например. Многорегиональный пиринг VPC AWS.

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

Wireguard — очень популярная VPN, и существует множество качественных руководств по настройке сетки между несколькими серверами, например:

  • Страница Arch Linux Wireguard
  • WireGuard с системной сетью (fr)

Это было здорово для начала, но мне нужно было автоматизировать всю процедуру с помощью ansible.
Мне удалось это сделать, и я подумал, что объяснение того, как я это сделал, может оказаться полезным для других, особенно с настройкой предварительных ключей, что было немного сложно.

Совместимость

Плейбук работает на Ubuntu, но может быть легко адаптирован к другим дистрибутивам.
Он был протестирован с Ubuntu 18.04 и 20.04.

Инвентарь

Вот пример инвентаря.
В данном конкретном случае в нем перечислены 3 виртуальные машины от Hetzner.

 все:
  хосты:
    А:
      ansible_ssh_user: корень
      ansible_host: xxx.xx.xxx.x
      ansible_ssh_port: 22
      wireguard_ip: 10.0.1.100
    Б:
      ansible_ssh_user: корень
      ansible_host: xxx. xx.xxx.xx
      ansible_ssh_port: 22
      wireguard_ip: 10.0.1.101
    С:
      ansible_ssh_user: корень
      ansible_host: хх.ххх.хх.ххх
      ansible_ssh_port: 22
      wireguard_ip: 10.0.1.102
  вары:
    ansible_become_method: su
    wireguard_mask_bits: 8
    wireguard_port: 51871
 

Помимо переменных ansible ( ansible_ssh_user , ansible_host , ansible_ssh_port , …), необходимо настроить некоторые специфические переменные wireguard:

  • wireguard_ip для каждого хоста. класс A частных IP-адресов в этом примере.
  • wireguard_mask_bits глобальная переменная. 8 в данном случае, что соответствует количеству битов в сетевом префиксе, т.е. тому, что идет после / в нотации CIDR.
  • wireguard_port глобальная переменная. 51871 в данном случае, что соответствует UDP-порту wireguard.

Плейбук

Я решил настроить сетку с помощью плоского плейбука, без ролей.

Вот как это выглядит:

 ---
- хозяева: все
  any_errors_fatal: правда
  собрать_факты: да
  задачи:
    - название: пакеты обновлений
      подходящий:
        update_cache: да
        cache_valid_time: 3600
      стать: да
    - ...другие задачи
 

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

1. Установка wireguard

Не требует пояснений: Wireguard необходимо установить на каждом хосте.

 - название: Установить защитный кожух
  подходящий:
    Название: WireGuard
    состояние: присутствует
  стать: да
 

2. Создание пар открытого/закрытого ключей

Для каждого хоста, если это еще не сделано, сгенерируйте пару открытого/закрытого ключей и сохраните их в /etc/wireguard/publickey и /etc/wireguard/privatekey соответственно.

Также зарегистрируйте обе переменные wireguard_public_key и wireguard_private_key .

 - имя: Создать пару ключей Wireguard
  оболочка: wg genkey | тройник /etc/wireguard/privatekey | общедоступный ключ | тройник /etc/wireguard/publickey
  аргументы:
    создает: /etc/wireguard/privatekey
  стать: да
- имя: зарегистрировать закрытый ключ
  оболочка: кошка /etc/wireguard/privatekey
  регистрация: wireguard_private_key
  изменено_когда: ложь
  стать: да
- имя: зарегистрировать открытый ключ
  оболочка: кошка /etc/wireguard/publickey
  регистрация: wireguard_public_key
  изменено_когда: ложь
  стать: да
 

Обратите внимание, что создает , который сообщает ansible пропустить выполнение wg genkey , если пара ключей уже была сгенерирована.
Идемпотентная пьеса FTW!

3. Создание предварительных общих ключей

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

Здесь все становится сложнее: нам нужно сгенерировать 1 предварительный общий ключ для каждой пары серверов.

Например, учитывая 3 сервера A , B и C , нам нужно 3 предварительно общих ключа:

  • Один для A <-> B
  • Один для A <-> C
  • Один для B <-> C

Итак, в отличие от пар открытый/закрытый ключ, простой with_items: groups['all'] не подойдет.

Мне потребовалось некоторое время, чтобы понять, как добиться этого с помощью ansible.

Что я сделал, так это:

 - имя: сгенерировать Preshared keykeypair
  оболочка: "wg genpsk > /etc/wireguard/psk-{{ item }}"
  аргументы:
    создает: "/etc/wireguard/psk-{{ item }}"
  когда: inventory_hostname < элемент
  with_items: "{{ групп['все'] }}"
  стать: да
- имя: зарегистрировать предварительный ключ
  оболочка: "cat /etc/wireguard/psk-{{ item }}"
  зарегистрируйтесь: wireguard_preshared_key
  изменено_когда: ложь
  когда: inventory_hostname < элемент
  with_items: "{{ групп['все'] }}"
  стать: да
 

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

Вот это да. Это был полный рот.

Назад к примеру с 3 хостами с A , B и C :

Playbook начинает перебирать эти 3:

  • host= A
    • задача перебирает хосты:
      • item= A , A < A не держится, пропустить
      • item= B , A < B действительно хранится, создайте общий ключ и сохраните его в /etc/wireguard/psk-B на хосте A
      • item= C , A < C действительно хранится, создайте общий ключ и сохраните его в /etc/wireguard/psk-C на хосте A
  • хост = Б
    • задача перебирает хосты:
      • item= A , B < A не держится, пропустить
      • item= B , B < B не держится, пропустить
      • item= C , B < C действительно хранится, создайте общий ключ и сохраните его в /etc/wireguard/psk-C на хосте B
  • хост = C
    • задача перебирает хосты:
      • item= A , C < A не держится, пропустить
      • item= B , C < B не держится, пропустить
      • item= B , C < C не держится, пропустить

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

Затем playbook считывает сгенерированные ключи и регистрирует их в переменной wireguard_preshared_key .

Ansible, столкнувшись с регистр в сочетании с with_items заполнит переменную в виде списка со следующей структурой:

на хосте A :

 {
  Результаты: [
    {элемент: A, пропущено: правда},
    { item: B, "stdout": "предварительно общий ключ A<->B"},
    { item: C, "stdout": "предварительно общий ключ A<->C"}
  ]
}
 

на хосте B :

 {
  Результаты: [
    {элемент: A, пропущено: правда},
    {элемент: B, пропущено: правда},
    { элемент: C, "stdout": "предварительный общий ключ B<->C"}
  ]
}
 

на хосте C :

 {
  Результаты: [
    {элемент: A, пропущено: правда},
    {элемент: B, пропущено: правда},
    {элемент: C, пропущено: правда}
  ]
}
 

Затем playbook массирует эту структуру данных, чтобы преобразовать ее в словарь:

 - имя: массаж предварительных общих ключей
  set_fact: "wireguard_preshared_keys={{ wireguard_preshared_keys|по умолчанию({}) | объединить( {item. item: item.stdout} ) }}"
  когда: item.skipped не определен
  with_items: "{{ wireguard_preshared_key.results }}"
  стать: да
 

Новая переменная wireguard_preshared_keys имеет следующую структуру:

на хосте A :

 {
  B: "предварительный общий ключ A<->B"
  C: "предварительный общий ключ A<->C"
}
 

на хосте B :

 {
  C: "предварительный общий ключ B<->C"
}
 

в хосте C :

 не определено
 

Это облегчит использование на следующих этапах.

4. Настройка сети wg0

Использование systemd-network:

 - имя: Настройка устройства wg0
  шаблон:
    источник: ./templates/systemd.netdev
    место назначения: /etc/systemd/network/99-wg0.netdev
    владелец: корень
    группа: systemd-сеть
    режим: 0640
  стать: да
  уведомить: перезагрузка сети systemd
- название: Настройка сети WG0
  шаблон:
    источник: . /templates/systemd.network
    место назначения: /etc/systemd/network/99-wg0.network
    владелец: корень
    группа: systemd-сеть
    режим: 0640
  стать: да
  уведомить: перезагрузка сети systemd
 

Playbook настраивает:

A.

wg0 виртуальное сетевое устройство

Дескриптор сетевого устройства /etc/systemd/network/99-wg0.netdev создается с использованием следующего (jinja2) шаблона:

 [NetDev ]
Имя=wg0
Вид=Wireguard
Описание=WireGuard туннель wg0
[Проволока]
ListenPort={{wireguard_port}}
PrivateKey={{ wireguard_private_key.stdout }}
{% для одноранговых узлов в группах['all'] %}
{% if peer != inventory_hostname %}
[Узел WireGuard]
PublicKey={{ hostvars[peer].wireguard_public_key.stdout }}
PresharedKey={{ wireguard_preshared_keys[peer] if inventory_hostname < peer else hostvars[peer].wireguard_preshared_keys[inventory_hostname] }}
AllowedIPs={{ hostvars[peer].wireguard_ip }}/32
Endpoint={{ hostvars[peer]. ansible_host }}:{{ wireguard_port }}
ПостоянныйKeepalive=25
{% конец%}
{% конец для %}
 

Шаблон:

  • настраивает порт Wireguard UDP
  • настраивает закрытый ключ wireguard (текущего хоста)
  • для каждого (другого) хоста
    • добавить запись [WireGuardPeer]
    • настроить PublicKey с открытым ключом партнера, полученным с помощью hostvars[peer].wireguard_public_key.stdout
    • настроить разрешенных IP-адресов с помощью частного/Wireguard IP-адреса однорангового узла, полученного с помощью {{ hostvars[peer].wireguard_ip }}
    • настроить Endpoint с общедоступным IP-адресом партнера, полученным с помощью {{hostvars[peer].ansible_host }}::{{ wireguard_port }}
    • настроить PresharedKey <- это снова сложная часть
    • настройте PersistentKeepalive на 25 (секунд) <- это важно, иначе межузловые соединения будут часто обрываться, и единственным способом их восстановления является взаимное пингование хостов друг друга

Для предварительного общего ключа шаблон использует следующее выражение для извлечения правильного ключа из правильного хоста:

 wireguard_preshared_keys[peer] if inventory_hostname < peer
 else hostvars[peer]. wireguard_preshared_keys[inventory_hostname]
 
B.

wg0 виртуальная сеть

Дескриптор сети /etc/systemd/network/99-wg0.network создается с использованием следующего (jinja2) шаблона:

 [Match]
Имя=wg0
[Сеть]
Адрес = {{ wireguard_ip }}/{{ wireguard_mask_bits }}
 

5. Перезапустите systemd-networkd

В качестве обработчика:

 обработчиков:
  - имя: перезагрузка сети systemd
    оказание услуг:
      имя: systemd-networkd
      состояние: перезапущен
      включено: да
    стать: да
 

Бонусные баллы: UFW

Чтобы заблокировать систему, включите UFW с политикой по умолчанию ;
уфв:
правило: разрешить
порт: "{{ ansible_ssh_port }}"
прототип: TCP
стать: да
- имя: Установить ведение журнала ufw
уфв:
залогиниться"
стать: да
- имя: межузловое подключение Wireguard UFW
уфв:
правило: разрешить
src: "{{ hostvars[item].wireguard_ip }}"
with_items: "{{ групп['все'] }}"
стать: yes и item != inventory_hostname
- название: Отклонить все и включить UFW
уфв:
состояние: включено
политика: отклонить
журнал: да
стать: да

Не забудьте открыть порт SSH, иначе вы будете заблокированы на машинах

Полная картина

Вы можете найти всю пьесу в этом сопутствующем репозитории Github

Но вот в любом случае, чтобы сэкономить один клик:

 ---
- хозяева: все
any_errors_fatal: правда
собрать_факты: да
задачи:
- название: пакеты обновлений
подходящий:
update_cache: да
cache_valid_time: 3600
стать: да
- имя: Разрешить SSH в UFW
уфв:
правило: разрешить
порт: "{{ ansible_ssh_port }}"
прототип: TCP
стать: да
- имя: Установить ведение журнала ufw
уфв:
залогиниться"
стать: да
- имя: межузловое подключение Wireguard UFW
уфв:
правило: разрешить
src: "{{ hostvars[item]. wireguard_ip }}"
with_items: "{{ групп['все'] }}"
стать: yes и item != inventory_hostname
- название: Отклонить все и включить UFW
уфв:
состояние: включено
политика: отклонить
журнал: да
стать: да
- название: Установить wireguard
подходящий:
Название: WireGuard
состояние: присутствует
стать: да
- name: Создать пару ключей Wireguard
оболочка: wg genkey | тройник /etc/wireguard/privatekey | общедоступный ключ | тройник /etc/wireguard/publickey
аргументы:
создает: /etc/wireguard/privatekey
стать: да
- имя: зарегистрировать закрытый ключ
оболочка: кошка /etc/wireguard/privatekey
регистрация: wireguard_private_key
изменено_когда: ложь
стать: да
- имя: зарегистрировать открытый ключ
оболочка: кошка /etc/wireguard/publickey
регистрация: wireguard_public_key
изменено_когда: ложь
стать: да
- имя: сгенерировать пару ключей Preshared keykeypair
оболочка: "wg genpsk > /etc/wireguard/psk-{{ item }}"
аргументы:
создает: "/etc/wireguard/psk-{{ item }}"
когда: inventory_hostname < элемент with_items: "{{ групп['все'] }}" стать: да - имя: зарегистрировать предварительный ключ оболочка: "cat /etc/wireguard/psk-{{ item }}" зарегистрируйтесь: wireguard_preshared_key изменено_когда: ложь когда: inventory_hostname < элемент with_items: "{{ групп['все'] }}" стать: да - имя: массаж предварительных ключей set_fact: "wireguard_preshared_keys={{ wireguard_preshared_keys|по умолчанию({}) | объединить( {item.