Политика добавления описания ОС с версией Astra Linux

LimeAcid

Привилегированный
Регистрация
04.01.25
Сообщения
10
Реакции
5
Код:
{% set id = 'rbta_ldap_custom_gp_host_test_gpo' %}
{% set node = salt['grains.get']('nodename') %}
{% set gpo = salt['pillar.get']('aldpro-hosts:' + node + ':' + id) %}
{# Получаем строку с версией Asrtra Linux #}
{% set astra_build = salt['grains.get']('astra_version:build') %}
{# Присваиваем переменной host полное доменное имя ПК #}
{%- set host = salt['grains.get']('fqdn') %}


{% if gpo %}

set_version:
    cmd.run:
        - name: ipa host-mod '{{ host }}' --setattr=nsosversion='Astra Linux {{ astra_build }}'
        - unless: ipa host-show '{{ host }}' --raw --all | grep 'nsosversion' | grep '{{ astra_build }}'

{% endif %}
 

Вложения

  • photo_2025-09-14_08-58-46.jpg
    photo_2025-09-14_08-58-46.jpg
    50.4 KB · Просмотры: 43
Последнее редактирование модератором:
Хотел по аналогии реализовать политику, которая бы записывала MAC-адрес хоста в атрибут macaddress, но получаю ошибку:
ipa: ERROR: Недостаточно прав для доступа: Insufficient 'write' privilege to the 'macAddress' attribute of entry

Есть у кого мысли?

YAML:
{% set id = 'rbta_ldap_custom_gp_host_macaddress' %}
{% set node = salt['grains.get']('nodename') %}
{% set gpo = salt['pillar.get']('aldpro-hosts:' + node + ':' + id) %}

{% if gpo %}

{%- set host = salt['grains.get']('fqdn') %}
{%- set mac_address = salt['cmd.run'](
    'ip link show | awk \'/ether/ {print $2}\' | head -n 1',
    python_shell=True
).strip() %}

{% if mac_address %}

{{ id }}:
  cmd.run:
    - name: ipa host-mod '{{ host }}' --setattr=macaddress='{{ mac_address }}'
    - unless: ipa host-show '{{ host }}' --raw --all | grep 'macaddress' | grep '{{ mac_address }}'

{% endif %}
{% endif %}
 
Последнее редактирование:
Решение есть. Но нужно acl в ldap править. Ищу более адекватное решение.
 
Для МАС можно так:
eth0 - это e Аста 1.7
enp3s0 - это у Астра 1.8

Обратите внимание! МАК переводится в верхний регистр иначе не отработает unless

{%- set host = salt['grains.get']('fqdn') %}

{% if "eth" in salt['grains.get']('ip_interfaces') %}
{% set host_mac = salt['network.hw_addr']('eth0')|upper %}
{% else %}
{% set host_mac = salt['network.hw_addr']('enp3s0')|upper %}
{% endif %}

set_mac:
cmd.run:
- name: ipa host-mod '{{ host }}' --setattr=macaddress='{{ host_mac }}'
- unless: ipa host-show '{{ host }}' --raw --all | grep '{{ host_mac }}'

Чтобы MAC добавился нужны права на запись...

На данный момент я нашел решение только изменением acl на контейнер computers в ldap через Apache Directory Studio

В эту ACL добавляем macaddress.

(targetattr="usercertificate || krblastpwdchange || description || l || nshostlocation || nshardwareplatform || nsosversion")(version 3.0; acl "Hosts can modify their own certs and keytabs"; allow(write) userdn = "ldap:///self";)

Я настоятельно рекомендую очень подумать нужно ли вам это!!!
 
Код:
[MSNAPBACK]1240[/MSNAPBACK] [USER=894]@LimeAcid[/USER], можно добавить новую (targetattr="macaddress")(version 3.0; acl "Hosts can modify their own certs and keytabs"; allow(write) userdn = "ldap:///self";)
 
Последнее редактирование:
Назад
Сверху Снизу