Формула tpl-yb-settings-formula

Формула-шаблон для управления настройками веб-браузера Yandex.

Доступные состояния

Состояние tpl-yb-settings

Мета-состояние (состояние, которое включает в себя другие состояния).

Устанавливает политики Яндекс-браузера. Имеет зависимость от tpl-yb-settings.install через список include.

Состояние tpl-yb-settings.install

Загружает управляемые и рекомендуемые файлы политик в файловую системы агента.

Состояние tpl-yb-settings.clean

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

Пример файла pillar.example

tpl-yb-settings:
  # Override map.jinja
  lookup:
    # Переопределите значение map.jinja
    policies:
      # Задайте параметры управляемых политик
      managed:
        # Задайте имя файла с управляемыми политиками (.json), который будет помещен в файловую систему агента
        name: "managed_policies"
        # Задайте имя файла с управляемыми политиками (.json) для загрузки на агент, этот файл может быть помещен как на
        # сервере управления, так и на сервере HTTP(S) или FTP server. Значение может быть пустой строкой
        source: "salt://tpl-yb-settings/files/managed_policies.json"
      # Задайте параметры рекомендуемых политик
      recommended:
        # SЗадайте имя файла с рекомендуемыми политиками (.json), который будет помещен в файловую систему агента
        name: "recommended_policies"
        # Задайте имя файла с рекомендуемыми политиками (.json) для загрузки на агент, этот файл может быть помещен как на
        # сервере управления, так и на сервере HTTP(S) или FTP server. Значение может быть пустой строкой
        source: "salt://tpl-yb-settings/files/recommended_policies.json"

Написание формулы типа tpl-yb-settings

  1. Скопируйте формулу-шаблон (tpl-yb-settings) в новую директорию с новым названием (my-yb-settings):

    $ tar -xvf ~/Downloads/inno-lcm-salt-formulas-0.11.0.tar.gz \
        --strip-components 3 \
        -C ~/ \
        ./formulas/tpl-yb-settings-formula/tpl-yb-settings
    $ cp -R ~/tpl-yb-settings/ ~/my-yb-settings && cd ~/my-yb-settings
  2. Измените файл ./files/managed_policies.json, добавив в него политики, которые нужно принудительно применить на устройствах пользователей.

    В качестве примера рассмотрим добавление нескольких разрешающих и запрещающую по умолчанию все доступы URL политик:

    {
        "URLBlocklist": ["*"],
        "URLAllowlist": [
          "browser://policy",
          "duckduckgo.com",
          "https://yandex.ru/pogoda",
          "file://*"
        ]
    }
  3. Измените файл ./files/recommended_policies.json, добавив в него политики:

    {
        "HomepageLocation": "https://duckduckgo.com"
    }
  4. В файле состояний install.sls (установка политик) измените ID состояний:

    # -*- coding: utf-8 -*-
    # vim: ft=sls
    
    {#- Get the `tplroot` from `tpldir` #}
    {%- set tplroot = tpldir.split('/')[0] %}
    {%- from tplroot ~ "/map.jinja" import mapdata as tplybsettings with context %}
    
    {%- if tplybsettings.policies.managed.source %}
    
    my-yb-settings-install-file-managed-policies-managed:
      file.managed:
        - name: "/etc/opt/yandex/browser/policies/managed/{{ tplybsettings.policies.managed.name }}.json"
        - source: {{ tplybsettings.policies.managed.source }}
        - skip_verify: True
        - makedirs: True
    
    {%- endif %}
    
    {%- if tplybsettings.policies.recommended.source %}
    
    my-yb-settings-install-file-managed-policies-recommended:
      file.managed:
        - name: "/etc/opt/yandex/browser/policies/recommended/{{ tplybsettings.policies.recommended.name }}.json"
        - source: {{ tplybsettings.policies.recommended.source }}
        - skip_verify: True
        - makedirs: True
    
    {%- endif %}
  5. В файле состояний clean.sls (удаление политик) измените ID состояний:

    # -*- coding: utf-8 -*-
    # vim: ft=sls
    
    {#- Get the `tplroot` from `tpldir` #}
    {%- set tplroot = tpldir.split('/')[0] %}
    {%- from tplroot ~ "/map.jinja" import mapdata as tplybsettings with context %}
    
    {%- if tplybsettings.policies.managed.source %}
    
    my-yb-settings-clean-file-absent-policies-managed:
      file.absent:
        - name: "/etc/opt/yandex/browser/policies/managed/{{ tplybsettings.policies.managed.name }}.json"
    
    {%- endif %}
    
    {%- if tplybsettings.policies.recommended.source %}
    
    my-yb-settings-clean-file-absent-policies-recommended:
      file.absent:
        - name: "/etc/opt/yandex/browser/policies/recommended/{{ tplybsettings.policies.recommended.name }}.json"
    
    {%- endif %}
  6. Измените файл map.jinja(словарь со значениями по умолчанию):

    1. Измените имя ключа для словаря в хранилище Pillar, используемого для динамического переопределения значений по умолчанию.

    2. Измените значения policies.managed.source и policies.recommended.source и расположение файлов политик file_name.

      {% set mapdata = salt['grains.filter_by']({
          'default': {
              'policies': {
                  'managed': {
                      'name': 'managed_policies',
                      'source': 'salt://my-yb-settings/files/managed_policies.json',
                  },
                  'recommended': {
                      'name': 'recommended_policies',
                      'source': 'salt://my-yb-settings/files/recommended_policies.json',
                  },
              },
          },
      }, merge=salt['pillar.get']('my-yb-settings:lookup'), base='default') %}
После того как формула будет написана, следуйте инструкциям по работе с формулой.