sssd

sssd

Эта роль предназначена для установки и настройки службы SSSD.

Также предусмотрена возможность установки и обновления собственной версии SSSD (из исходников) в зависимости от ваших потребностей.

Требования

Для применения патчей эта роль требует Ansible 2.6.0 или более поздней версии.

Установить (и определить) стабильную версию можно с помощью pip:

pip install ansible==2.7.9

Все требования к платформе перечислены в файле метаданных.

Установка

Рекомендация

Рекомендуется оставаться на версии SSSD 1.6.x. Версия 2.0.0 работает, но мне пришлось добавить несколько патчей, чтобы все заработало. Патчи по сути являются коммитами после первоначального релиза. Мастер-ветка совместима с релизом 1.6.13. Версия 2.0.0 зависит от большего количества пакетов в системах на базе Debian (gir1.2-glib-2.0, libgirepository-1.0-1 и python-gi, pip: pyasn1, pyasn1-modules).

ansible-galaxy install timorunge.sssd[,version]

Примечание для RedHat

Некоторые пакеты, которые устанавливает эта роль, доступны только в репозиториях rhel-6-server-optional-rpms или rhel-7-server-optional-rpms. Вам может потребоваться включить эти репозитории, если вы получите ошибку вида "Не найден пакет, соответствующий 'sssd-dbus'".

Включите этот опциональный репозиторий для RHEL 6:

subscription-manager repos --enable rhel-6-server-optional-rpms

А для RHEL 7:

subscription-manager repos --enable rhel-7-server-optional-rpms

Переменные роли

Эта роль в основном строит рабочий конфигурационный файл для службы SSSD на основе иерархии YAML.

Переменные, которые можно передать этой роли. Краткое описание представлено в этом разделе. Для всех переменных загляните в опции конфигурации SSSD.

# Включить / отключить SSSD как службу
# Тип: Bool
sssd_service_enabled: yes

# Включить DNS-запрос в конфигурации sshd
# Тип: Bool
sssd_manage_sshd_dns_service_lookup: false

# Выберите тип конфигурации: config (`sssd_config`), file (`sssd_config_src_file`)
# или none (отключить генерацию sssd.conf)
# Тип: Str
sssd_config_type: config

# Параметры конфигурации SSSD по умолчанию
# Тип: Dict
sssd_config:
  "domain/example.com":
    access_provider: permit
    auth_provider: local
    id_provider: local
  sssd:
    config_file_version: 2
    services: nss, pam
    domains: example.com

# Конфигурация SSSD из файла по умолчанию
# Тип: Str
sssd_config_src_file: sssd.example.conf

# SSSD из исходников:

# Установить SSSD из исходников:
# Тип: Bool
sssd_from_sources: false

# Определение версии (актуально только если `sssd_from_sources` true):
# Тип: Str
sssd_version: 2.0.0

# Патчи

# В этом разделе вы можете применять пользовательские патчи к SSSD.
# Один пример можно найти в README.md и в директории тестов.
# Тип: Dict
sssd_patches:
  fix-makefile:
    dest_file: Makefile.am
    patch_file: "files/patches/{{ sssd_version }}/fix-makefile.diff"
    state: present

# Опции сборки

# Опции сборки по умолчанию хранятся в `vars/{{ ansible_os_family }}.yml`
# Тип: List
sssd_build_options: "{{ sssd_default_build_options }}"

Примеры

Чтобы не перегружать документ, параметры компиляции из него убраны. Вы можете найти параметры сборки SSSD в этом документе.

1) Настройка SSSD в соответствии с вашими потребностями

- hosts: all
  vars:
    sssd_config:
      "domain/example.com":
        access_provider: permit
        auth_provider: local
        id_provider: local
      sssd:
        config_file_version: 2
        domains: example.com
        services: nss, pam
  roles:
    - timorunge.sssd

2) Пример конфигурации SSSD для FreeIPA

- hosts: all
  vars:
    sssd_config:
      "domain/example.com":
        access_provider: ipa
        auth_provider: ipa
        cache_credentials: true
        chpass_provider: ipa
        id_provider: ipa
        ipa_domain: example.com
        ipa_hostname: debian-eeBahPh3.example.com
        ipa_server: ipa-srv1.example.com
        krb5_store_password_if_offline: true
        ldap_tls_cacert: /etc/ipa/ca.crt
      sssd:
        config_file_version: 2
        domains: example.com
        services: ifp, nss, pam, ssh, sudo
      nss:
        homedir_substring: /home
        memcache_timeout: 600
  roles:
    - timorunge.sssd

3) Сборка и настройка SSSD в соответствии с вашими потребностями

Кроме стандартной установки через пакеты, также возможно собрать SSSD из исходников (в этом примере для систем на базе Debian).

- hosts: all
  vars:
    sssd_from_sources: true
    sssd_version: 2.0.0
    sssd_default_build_options:
      - "--datadir=/usr/share"
      - "--disable-rpath"
      - "--disable-silent-rules"
      - "--disable-static"
      - "--enable-krb5-locator-plugin"
      - "--enable-nsslibdir=/lib/{{ sssd_dpkg_architecture }}"
      - "--enable-pac-responder"
      - "--enable-pammoddir=/lib/{{ sssd_dpkg_architecture }}/security"
      - "--enable-systemtap"
      - "--includedir=/usr/include"
      - "--infodir=/usr/local/share/info"
      - "--libdir=/usr/lib/{{ sssd_dpkg_architecture }}"
      - "--libexecdir=/usr/lib/{{ sssd_dpkg_architecture }}"
      - "--localstatedir=/var"
      - "--mandir=/usr/local/share/man"
      - "--prefix=/usr"
      - "--sysconfdir=/etc"
      - "--with-autofs"
      - "--with-environment-file={{ sssd_environment_file }}"
      - "--with-initscript=systemd"
      - "--with-krb5-conf=/etc/krb5.conf"
      - "--with-krb5-plugin-path=/usr/lib/{{ sssd_dpkg_architecture }}/krb5/plugins/libkrb5"
      - "--with-ldb-lib-dir=/usr/lib/{{ sssd_dpkg_architecture }}/ldb/modules/ldb"
      - "--with-log-path=/var/log/sssd"
      - "--with-pid-path=/var/run"
      - "--with-plugin-path=/usr/lib/{{ sssd_dpkg_architecture }}/sssd"
      - "--with-samba"
      - "--with-secrets-db-path=/var/lib/sss/secrets"
      - "--with-secrets"
      - "--with-ssh"
      - "--with-sudo-lib-path=/usr/lib/{{ sssd_dpkg_architecture }}"
      - "--with-sudo"
      - "--with-systemdunitdir=/lib/systemd/system"
    sssd_config:
      "domain/example.com":
        access_provider: permit
        auth_provider: local
        id_provider: local
      sssd:
        config_file_version: 2
        domains: example.com
        services: nss, pam
  roles:
    - timorunge.sssd

4) Не генерировать никакую конфигурацию

Полезно, если вы используете эту роль в сочетании, например, с сервером FreeIPA или клиентом FreeIPA.

- hosts: all
  vars:
    sssd_config_type: none
    sssd_from_sources: true
    sssd_version: 2.0.0
  roles:
    - timorunge.sssd

5) Применить патчи к коду

- hosts: all
  vars:
    sssd_from_sources: true
    sssd_version: 2.0.0
    sssd_patches:
      fix-makefile:
        dest_file: Makefile.am
        patch_file: "files/patches/{{ sssd_version }}/fix-makefile.diff"
        state: present
    sssd_build_options: "{{ sssd_default_build_options }}"
    sssd_config:
      "domain/example.com":
        access_provider: permit
        auth_provider: local
        id_provider: local
      sssd:
        config_file_version: 2
        domains: example.com
        services: nss, pam
  roles:
    - timorunge.sssd

6) Переопределить шаблоны init.d и systemd

- hosts: all
  vars:
    sssd_init_template: roles/sssd/templates/sssd.service.j2
    sssd_service_template: roles/sssd/templates/sssd.init.j2
    sssd_config:
      "domain/example.com":
        access_provider: permit
        auth_provider: local
        id_provider: local
      sssd:
        config_file_version: 2
        domains: example.com
        services: nss, pam
  roles:
    - timorunge.sssd

Опции конфигурации SSSD

# Формат:
# опция: тип, подтип, обязательность[, по умолчанию]
sssd_config:
  service:
    # Опции, доступные для всех служб
    timeout: int, None, false
    debug: int, None, false
    debug_level: int, None, false
    debug_timestamps: bool, None, false
    debug_microseconds: bool, None, false
    debug_to_files: bool, None, false
    command: str, None, false
    reconnection_retries: int, None, false
    fd_limit: int, None, false
    client_idle_timeout: int, None, false
    responder_idle_timeout: int, None, false
    cache_first: int, None, false
    description: str, None, false

  sssd:
    # Служба мониторинга
    config_file_version: int, None, false
    services: list, str, true, nss, pam
    domains: list, str, true
    sbus_timeout: int, None, false
    re_expression: str, None, false
    full_name_format: str, None, false
    krb5_rcache_dir: str, None, false
    user: str, None, false
    default_domain_suffix: str, None, false
    certificate_verification: str, None, false
    override_space: str, None, false
    disable_netlink: bool, None, false
    enable_files_domain: str, None, false
    domain_resolution_order: list, str, false
    try_inotify: bool, None, false

  nss:
    # Служба имен
    enum_cache_timeout: int, None, false
    entry_cache_nowait_percentage: int, None, false
    entry_negative_timeout: int, None, false
    local_negative_timeout: int, None, false
    filter_users: list, str, false
    filter_groups: list, str, false
    filter_users_in_groups: bool, None, false
    pwfield: str, None, false
    override_homedir: str, None, false
    fallback_homedir: str, None, false
    homedir_substring: str, None, false, /home
    override_shell: str, None, false
    allowed_shells: list, str, false
    vetoed_shells: list, str, false
    shell_fallback: str, None, false
    default_shell: str, None, false
    get_domains_timeout: int, None, false
    memcache_timeout: int, None, false
    user_attributes: str, None, false

  pam:
    # Служба аутентификации
    offline_credentials_expiration: int, None, false
    offline_failed_login_attempts: int, None, false
    offline_failed_login_delay: int, None, false
    pam_verbosity: int, None, false
    pam_response_filter: str, None, false
    pam_id_timeout: int, None, false
    pam_pwd_expiration_warning: int, None, false
    get_domains_timeout: int, None, false
    pam_trusted_users: str, None, false
    pam_public_domains: str, None, false
    pam_account_expired_message: str, None, false
    pam_account_locked_message: str, None, false
    pam_cert_auth: bool, None, false
    pam_cert_db_path: str, None, false
    p11_child_timeout: int, None, false
    pam_app_services: str, None, false
    pam_p11_allowed_services: str, None, false

  sudo:
    # служба sudo
    sudo_timed: bool, None, false
    sudo_inverse_order: bool, None, false
    sudo_threshold: int, None, false

  autofs:
    # Служба autofs
    autofs_negative_timeout: int, None, false

  ssh:
    # Служба ssh
    ssh_hash_known_hosts: bool, None, false
    ssh_known_hosts_timeout: int, None, false
    ca_db: str, None, false

  pac:
    # Ответчик PAC
    allowed_uids: str, None, false
    pac_lifetime: int, None, false

  ifp:
    # Ответчик InfoPipe
    allowed_uids: str, None, false
    user_attributes: str, None, false

  secrets:
    # Служба секретов
    provider: str, None, false
    containers_nest_level: int, None, false
    max_secrets: int, None, false
    max_uid_secrets: int, None, false
    max_payload_size: int, None, false
    # Служба секретов - прокси
    proxy_url: str, None, false
    auth_type: str, None, false
    auth_header_name: str, None, false
    auth_header_value: str, None, false
    forward_headers: list, None, false
    username: str, None, false
    password: str, None, false
    verify_peer: bool, None, false
    verify_host: bool, None, false
    capath: str, None, false
    cacert: str, None, false
    cert: str, None, false
    key: str, None, false

  session_recording:
    # Служба записи сессий
    scope: str, None, false
    users: list, str, false
    groups: list, str, false

  provider:
    # Доступные типы провайдеров
    id_provider: str, None, true
    auth_provider: str, None, false
    access_provider: str, None, false
    chpass_provider: str, None, false
    sudo_provider: str, None, false
    autofs_provider: str, None, false
    hostid_provider: str, None, false
    subdomains_provider: str, None, false
    selinux_provider: str, None, false
    session_provider: str, None, false

  domain:
    # Опции, доступные для всех доменов
    description: str, None, false
    domain_type: str, None, false
    debug: int, None, false
    debug_level: int, None, false
    debug_timestamps: bool, None, false
    command: str, None, false
    min_id: int, None, false
    max_id: int, None, false
    timeout: int, None, false
    enumerate: bool, None, false
    subdomain_enumerate: str, None, false
    offline_timeout: int, None, false
    cache_credentials: bool, None, false
    cache_credentials_minimal_first_factor_length: int, None, false
    use_fully_qualified_names: bool, None, false
    ignore_group_members: bool, None, false
    entry_cache_timeout: int, None, false
    lookup_family_order: str, None, false
    account_cache_expiration: int, None, false
    pwd_expiration_warning: int, None, false
    filter_users: list, str, false
    filter_groups: list, str, false
    dns_resolver_timeout: int, None, false
    dns_discovery_domain: str, None, false
    override_gid: int, None, false
    case_sensitive: str, None, false
    override_homedir: str, None, false
    fallback_homedir: str, None, false
    homedir_substring: str, None, false
    override_shell: str, None, false
    default_shell: str, None, false
    description: str, None, false
    realmd_tags: str, None, false
    subdomain_refresh_interval: int, None, false
    subdomain_inherit: str, None, false
    subdomain_homedir: str, None, false
    cached_auth_timeout: int, None, false
    full_name_format: str, None, false
    re_expression: str, None, false
    auto_private_groups: str, None, false

    # Тайм-ауты кэша записей
    entry_cache_user_timeout: int, None, false
    entry_cache_group_timeout: int, None, false
    entry_cache_netgroup_timeout: int, None, false
    entry_cache_service_timeout: int, None, false
    entry_cache_autofs_timeout: int, None, false
    entry_cache_sudo_timeout: int, None, false
    entry_cache_ssh_host_timeout: int, None, false
    refresh_expired_interval: int, None, false

    # Динамические обновления DNS
    dyndns_update: bool, None, false
    dyndns_ttl: int, None, false
    dyndns_iface: str, None, false
    dyndns_refresh_interval: int, None, false
    dyndns_update_ptr: bool, None, false
    dyndns_force_tcp: bool, None, false
    dyndns_auth: str, None, false
    dyndns_server: str, None, false

  # Специальные провайдеры
  provider/permit:

  provider/permit/access:

  provider/deny:

  provider/deny/access:

Опции сборки SSSD

Обзор опций сборки для SSSD (2.0.0).

`configure' настраивает sssd 2.0.0 для адаптации к различным системам.

Использование: ./configure [OPTION]... [VAR=VALUE]...

Чтобы назначить переменные окружения (например, CC, CFLAGS...), укажите их как
VAR=VALUE.  Смотрите ниже описания некоторых из полезных переменных.

По умолчанию опции задаются в квадратных скобках.

Конфигурация:
  -h, --help              показать эту справку и выйти
      --help=short        показать опции, специфичные для этого пакета
      --help=recursive    показать краткую справку всех включенных пакетов
  -V, --version           показать информацию о версии и выйти
  -q, --quiet, --silent   не печатать сообщения 'checking ...'
      --cache-file=FILE   сохранять результаты тестов в FILE [отключено]
  -C, --config-cache      псевдоним для `--cache-file=config.cache'
  -n, --no-create         не создавать выходные файлы
      --srcdir=DIR        найти исходники в DIR [каталог конфигурации или `..']

Каталоги установки:
  --prefix=PREFIX         устанавливать независимые от архитектуры файлы в PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   устанавливать зависимые от архитектуры файлы в EPREFIX
                          [PREFIX]

По умолчанию, `make install' установит все файлы в
`/usr/local/bin', `/usr/local/lib' и т.д. Вы можете указать
другую префикс установки, отличный от `/usr/local', с помощью `--prefix',
например `--prefix=$HOME'.

Для лучшего контроля используйте следующие опции.

Точная настройка директорий установки:
  --bindir=DIR            пользовательские исполняемые файлы [EPREFIX/bin]
  --sbindir=DIR           исполняемые файлы системного администратора [EPREFIX/sbin]
  --libexecdir=DIR        исполняемые файлы программы [EPREFIX/libexec]
  --sysconfdir=DIR        данные только для чтения для одной машины [PREFIX/etc]
  --sharedstatedir=DIR    изменяемые независимо от архитектуры данные [PREFIX/com]
  --localstatedir=DIR     изменяемые данные для одной машины [PREFIX/var]
  --libdir=DIR            библиотеки объектного кода [EPREFIX/lib]
  --includedir=DIR        Заголовочные файлы C [PREFIX/include]
  --oldincludedir=DIR     Заголовочные файлы C для не-gcc [/usr/include]
  --datarootdir=DIR       корень данных, независимых от архитектуры [PREFIX/share]
  --datadir=DIR           только для чтения данные, независимые от архитектуры [DATAROOTDIR]
  --infodir=DIR           документация info [DATAROOTDIR/info]
  --localedir=DIR         локализованные данные [DATAROOTDIR/locale]
  --mandir=DIR            документация man [DATAROOTDIR/man]
  --docdir=DIR            корень документации [DATAROOTDIR/doc/sssd]
  --htmldir=DIR           html документация [DOCDIR]
  --dvidir=DIR            dvi документация [DOCDIR]
  --pdfdir=DIR            pdf документация [DOCDIR]
  --psdir=DIR             ps документация [DOCDIR]

Имена программ:
  --program-prefix=PREFIX            добавляет PREFIX к именам установленных программ
  --program-suffix=SUFFIX            добавляет SUFFIX к именам установленных программ
  --program-transform-name=PROGRAM   запускает sed PROGRAM на именах установленных программ

Типы систем:
  --build=BUILD     настраивать для сборки на BUILD [определяется автоматически]
  --host=HOST       кросс-компиляция для сборки программ, работающих на HOST [BUILD]

Опциональные функции:
  --disable-option-checking  игнорировать нераспознанные --enable/--with опции
  --disable-FEATURE       не включать FEATURE (то же самое, что --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  включить FEATURE [ARG=yes]
  --enable-dependency-tracking
                          не отклонять медленные извлекатели зависимостей
  --disable-dependency-tracking
                          ускоряет однократную сборку
  --enable-silent-rules   менее многословный вывод сборки (отменить: "make V=1")
  --disable-silent-rules  многословный вывод сборки (отменить: "make V=0")
  --enable-static[=PKGS]  собирать статические библиотеки [по умолчанию=no]
  --enable-shared[=PKGS]  собирать разделяемые библиотеки [по умолчанию=yes]
  --enable-fast-install[=PKGS]
                          оптимизировать для быстрой установки [по умолчанию=yes]
  --disable-libtool-lock  избегать блокировок (может нарушить параллельные сборки)
  --disable-nls           не использовать поддержку родного языка
  --disable-rpath         не встраивать пути к библиотекам во время выполнения
  --enable-nsslibdir      Где устанавливать библиотеки nss ($libdir)
  --enable-pammoddir      Где устанавливать модули pam ($libdir/security)
  --enable-nfsidmaplibdir Где устанавливать библиотеки libnfsidmap
                          ($libdir/libnfsidmap)
  --enable-all-experimental-features
                          собирать все экспериментальные функции
  --enable-sss-default-nss-plugin
                          Эта опция изменяет стандартное поведение плагина sss nss.
                          Если эта опция включена, плагин sss nss
                          будет вести себя так, как будто не указан в nsswitch.conf, когда sssd
                          не работает. [по умолчанию=no]
  --enable-files-domain   Если эта функция включена, SSSD всегда включает
                          домен с id_provider=files, даже если домен
                          не указан в конфигурационном файле [по умолчанию=no]
  --enable-local-provider Если эта функция включена, провайдер local будет
                          собираться по умолчанию. [по умолчанию=no]
  --enable-ldb-version-check
                          компилировать с проверкой версии ldb во время выполнения [по умолчанию=no]
  --disable-krb5-locator-plugin
                          не собирать плагин локатора Kerberos
  --enable-pac-responder  собирать ответчик pac
  --disable-cifs-idmap-plugin
                          не собирать плагин idmap CIFS
  --enable-systemtap      Включить поддержку системного наблюдения
  --enable-intgcheck-reqs включить проверку требований для интеграционных тестов
                          [по умолчанию=no]
  --enable-polkit-rules-path=PATH
                          Путь для хранения правил полкита. Используйте --disable, чтобы вообще не
                          устанавливать правила.
                          [/usr/share/polkit-1/rules.d]

Опциональные пакеты:
  --with-PACKAGE[=ARG]    использовать PACKAGE [ARG=yes]
  --without-PACKAGE       не использовать PACKAGE (то же самое, что --with-PACKAGE=no)
  --with-pic[=PKGS]       пытаться использовать только PIC/не-PIC объекты [по умолчанию использовать
                          оба]
  --with-gnu-ld           предполагать, что C-компилятор использует GNU ld [по умолчанию=no]
  --with-sysroot=DIR Search for dependent libraries within DIR
                        (или корень системы компилятора, если не указано).
  --with-gnu-ld           предполагать, что C-компилятор использует GNU ld [по умолчанию=no]
  --with-libiconv-prefix[=DIR]  искать libiconv в DIR/include и DIR/lib
  --without-libiconv-prefix     не искать libiconv в includedir и libdir
  --with-libintl-prefix[=DIR]  искать libintl в DIR/include и DIR/lib
  --without-libintl-prefix     не искать libintl в includedir и libdir
  --with-shared-build-dir=DIR
                          временный каталог сборки, где библиотеки будут
                          установлены [$srcdir/sharedbuild]
  --with-os=OS_TYPE       Тип вашей операционной системы
                          (fedora|redhat|suse|gentoo)

  --with-db-path=PATH     Путь к базам данных SSSD [/var/lib/sss/db]


  --with-plugin-path=PATH Путь к библиотекам данных провайдеров SSSD
                          [/usr/lib/sssd]


  --with-pid-path=PATH    Где хранить файлы pid для SSSD [/var/run]


  --with-log-path=PATH    Где хранить файлы журнала для SSSD
                          [/var/log/sssd]


  --with-pubconf-path=PATH
                          Где хранить файлы pubconf для SSSD
                          [/var/lib/sss/pubconf]


  --with-pipe-path=PATH   Где хранить файлы pipe для соединений SSSD
                          [/var/lib/sss/pipes]


  --with-mcache-path=PATH Где хранить mmap файлы кэша для SSSD
                          соединений [/var/lib/sss/mc]


  --with-default-ccache-dir=CCACHEDIR
                          Значение по умолчанию для krb5_ccachedir [/tmp]


  --with-default-ccname-template=CCACHE
                          Значение по умолчанию для krb5_ccname_template
                          [FILE:%d/krb5cc_%U_XXXXXX]


  --with-environment-file=PATH
                          Путь к файлу окружения [/etc/sysconfig/sssd]


  --with-init-dir=DIR     Где хранить скрипт инициализации для sssd
                          [/etc/rc.d/init.d]


  --with-test-dir=PATH    Каталог, используемый для временных файлов make check
                          [$builddir]

  --with-manpages         Генерировать ли страницы man из источников DocBook
                          [да]

  --with-xml-catalog-path=PATH
                          Где искать XML-каталог [/etc/xml/catalog]


  --with-krb5-plugin-path=PATH
                          Путь к хранилищу плагинов Kerberos
                          [/usr/lib/krb5/plugins/libkrb5]


  --with-krb5-rcache-dir=PATH
                          Путь к хранилищу кэшей повторной аутентификации Kerberos
                          [__LIBKRB5_DEFAULTS__]


  --with-krb5authdata-plugin-path=PATH
                          Путь к хранилищу плагинов данных аутентификации Kerberos
                          [/usr/lib/krb5/plugins/authdata]


  --with-krb5-conf=PATH   Путь к файлу krb5.conf [/etc/krb5.conf]


  --with-python2-bindings Нужно ли строить привязки python2 [да]

  --with-python3-bindings Нужно ли строить привязки python3 [да]

  --with-cifs-plugin-path=PATH
                          Путь к хранилищу плагинов cifs-utils
                          [/usr/lib/cifs-utils]


  --with-winbind-plugin-path=PATH
                          Путь к хранилищу плагинов winbind
                          [/usr/lib/samba/idmap]


  --with-selinux          Нужно ли строить с поддержкой SELinux [да]

  --with-nscd=PATH        Путь к nscd бинарному файлу, чтобы попытаться сбросить кэш nscd
                          после операций с локальным доменом [/usr/sbin/nscd]


  --with-ipa-getkeytab=PATH
                          Путь к ipa_getkeytab бинарному файлу, чтобы получить keytabs
                          с сервера FreeIPA [/usr/sbin/ipa-getkeytab]


  --with-semanage         Нужно ли строить с поддержкой управления пользователями SELinux
                          [да]

  --with-ad-gpo-default=enforcing|permissive
                          Уровень принуждения по умолчанию для правил доступа AD GPO
                          (принудительное)

  --with-gpo-cache-path=PATH
                          Где хранить файлы политик GPO
                          [/var/lib/sss/gpo_cache]


  --with-nologin-shell=PATH
                          Оболочка, используемая для отказа в доступе пользователям
                          [/sbin/nologin]


  --with-session-recording-shell=PATH
                          Оболочка, используемая для записи пользовательских сессий
                          [/usr/bin/tlog-rec-session]


  --with-app-libs=<path>  Путь к плагинам сторонних приложений
                          [/usr/lib/sssd/modules]


  --with-sudo             Нужно ли строить с поддержкой sudo [да]

  --with-sudo-lib-path=<path>
                          Путь к библиотеке sudo [/usr/lib/]


  --with-autofs           Нужно ли строить с поддержкой autofs [да]

  --with-ssh              Нужно ли строить с поддержкой SSH [да]

  --with-infopipe         Нужно ли строить с поддержкой InfoPipe [да]

  --with-crypto=CRYPTO_LIB
                          Шифровальная библиотека для использования (nss|libcrypto).
                          По умолчанию используется nss.

  --with-syslog=SYSLOG_TYPE
                          Тип вашего системного журнала (syslog|journald).
                          [syslog]

  --with-samba            Нужно ли строить с библиотеками samba4 [да]

  --with-nfsv4-idmapd-plugin
                          Нужно ли строить с поддержкой NFSv4 IDMAP [да]

  --with-nfs-lib-path=<path>
                          Путь к библиотеке NFS [${libdir}]


  --with-libwbclient      Нужно ли строить реализацию libwbclient в SSSD [да]

  --with-sssd-user=<user> Пользователь для запуска SSSD (root)


  --with-secrets          Нужно ли строить с поддержкой секретов [нет]

  --with-secrets-db-path=PATH
                          Путь к базам данных SSSD [/var/lib/sss/secrets]


  --with-kcm              Нужно ли строить с поддержкой KCM сервера [да]

  --with-ldb-lib-dir=PATH Путь для хранения модулей ldb [${libdir}/ldb]


  --with-smb-idmap-interface-version=5|6
                          Версия интерфейса Idmap установленного Samba


  --with-unicode-lib=<library>
                          Какую библиотеку использовать для обработки Unicode
                          (libunistring, glib2) [glib2]


  --with-libnl            Нужно ли строить с поддержкой libnetlink (libnl3,
                          libnl1, нет) [авто]

  --with-nscd-conf=PATH   Путь к файлу nscd.conf [/etc/nscd.conf]


  --with-initscript=INITSCRIPT_TYPE
                          Тип вашего скрипта инициализации (sysv|systemd). [sysv]


   --with-systemdunitdir=DIR
                          Директория для файлов служб systemd [Авто],

   --with-systemdconfdir=DIR
                          Директория для переопределений файлов служб systemd [Авто],

  --with-tapset-install-dir
                          Абсолютный путь, куда будет установлен каталог tapset

Некоторые влияющие переменные окружения:
  CC          Команда компилятора C
  CFLAGS      Флаги компилятора C
  LDFLAGS     Флаги линковщика, например -L<директория lib>, если у вас есть библиотеки в
              нестандартной директории <lib dir>
  LIBS        библиотеки для передачи линковщику, например -l<библиотека>
  CPPFLAGS    (Объектные) флаги предварительной обработки C/C++, например -I<каталог include>, если
              у вас есть заголовки в нестандартной директории <include dir>
  CPP         Препроцессор C
  PKG_CONFIG  путь к утилите pkg-config
  POPT_CFLAGS Флаги компилятора C для POPT, переопределяющие pkg-config
  POPT_LIBS   Флаги линковщика для POPT, переопределяющие pkg-config
  TALLOC_CFLAGS
              Флаги компилятора C для TALLOC, переопределяющие pkg-config
  TALLOC_LIBS Флаги линковщика для TALLOC, переопределяющие pkg-config
  TDB_CFLAGS  Флаги компилятора C для TDB, переопределяющие pkg-config
  TDB_LIBS    Флаги линковщика для TDB, переопределяющие pkg-config
  TEVENT_CFLAGS
              Флаги компилятора C для TEVENT, переопределяющие pkg-config
  TEVENT_LIBS Флаги линковщика для TEVENT, переопределяющие pkg-config
  LDB_CFLAGS  Флаги компилятора C для LDB, переопределяющие pkg-config
  LDB_LIBS    Флаги линковщика для LDB, переопределяющие pkg-config
  DHASH_CFLAGS
              Флаги компилятора C для DHASH, переопределяющие pkg-config
  DHASH_LIBS  Флаги линковщика для DHASH, переопределяющие pkg-config
  COLLECTION_CFLAGS
              Флаги компилятора C для COLLECTION, переопределяющие pkg-config
  COLLECTION_LIBS
              Флаги линковщика для COLLECTION, переопределяющие pkg-config
  INI_CONFIG_V0_CFLAGS
              Флаги компилятора C для INI_CONFIG_V0, переопределяющие pkg-config
  INI_CONFIG_V0_LIBS
              Флаги линковщика для INI_CONFIG_V0, переопределяющие pkg-config
  INI_CONFIG_V1_CFLAGS
              Флаги компилятора C для INI_CONFIG_V1, переопределяющие pkg-config
  INI_CONFIG_V1_LIBS
              Флаги линковщика для INI_CONFIG_V1, переопределяющие pkg-config
  INI_CONFIG_V1_1_CFLAGS
              Флаги компилятора C для INI_CONFIG_V1_1, переопределяющие pkg-config
  INI_CONFIG_V1_1_LIBS
              Флаги линковщика для INI_CONFIG_V1_1, переопределяющие pkg-config
  INI_CONFIG_V1_3_CFLAGS
              Флаги компилятора C для INI_CONFIG_V1_3, переопределяющие pkg-config
  INI_CONFIG_V1_3_LIBS
              Флаги линковщика для INI_CONFIG_V1_3, переопределяющие pkg-config
  GDM_PAM_EXTENSIONS_CFLAGS
              Флаги компилятора C для GDM_PAM_EXTENSIONS, переопределяющие pkg-config
  GDM_PAM_EXTENSIONS_LIBS
              Флаги линковщика для GDM_PAM_EXTENSIONS, переопределяющие pkg-config
  PCRE_CFLAGS Флаги компилятора C для PCRE, переопределяющие pkg-config
  PCRE_LIBS   Флаги линковщика для PCRE, переопределяющие pkg-config
  KRB5_CFLAGS Флаги компилятора C для kerberos, переопределяющие krb5-config
  KRB5_LIBS   Флаги линковщика для kerberos, переопределяющие krb5-config
  CARES_CFLAGS
              Флаги компилятора C для CARES, переопределяющие pkg-config
  CARES_LIBS  Флаги линковщика для CARES, переопределяющие pkg-config
  SYSTEMD_LOGIN_CFLAGS
              Флаги компилятора C для SYSTEMD_LOGIN, переопределяющие pkg-config
  SYSTEMD_LOGIN_LIBS
              Флаги линковщика для SYSTEMD_LOGIN, переопределяющие pkg-config
  SYSTEMD_DAEMON_CFLAGS
              Флаги компилятора C для SYSTEMD_DAEMON, переопределяющие pkg-config
  SYSTEMD_DAEMON_LIBS
              Флаги линковщика для SYSTEMD_DAEMON, переопределяющие pkg-config
  NDR_NBT_CFLAGS
              Флаги компилятора C для NDR_NBT, переопределяющие pkg-config
  NDR_NBT_LIBS
              Флаги линковщика для NDR_NBT, переопределяющие pkg-config
  NDR_KRB5PAC_CFLAGS
              Флаги компилятора C для NDR_KRB5PAC, переопределяющие pkg-config
  NDR_KRB5PAC_LIBS
              Флаги линковщика для NDR_KRB5PAC, переопределяющие pkg-config
  SMBCLIENT_CFLAGS
              Флаги компилятора C для SMBCLIENT, переопределяющие pkg-config
  SMBCLIENT_LIBS
              Флаги линковщика для SMBCLIENT, переопределяющие pkg-config
  SASL_CFLAGS Флаги компилятора C для SASL, переопределяющие pkg-config
  SASL_LIBS   Флаги линковщика для SASL, переопределяющие pkg-config
  NFSIDMAP_CFLAGS
              Флаги компилятора C для NFSIDMAP, переопределяющие pkg-config
  NFSIDMAP_LIBS
              Флаги линковщика для NFSIDMAP, переопределяющие pkg-config
  HTTP_PARSER_CFLAGS
              Флаги компилятора C для HTTP_PARSER, переопределяющие pkg-config
  HTTP_PARSER_LIBS
              Флаги линковщика для HTTP_PARSER, переопределяющие pkg-config
  CURL_CFLAGS Флаги компилятора C для CURL, переопределяющие pkg-config
  CURL_LIBS   Флаги линковщика для CURL, переопределяющие pkg-config
  UUID_CFLAGS Флаги компилятора C для UUID, переопределяющие pkg-config
  UUID_LIBS   Флаги линковщика для UUID, переопределяющие pkg-config
  JANSSON_CFLAGS
              Флаги компилятора C для JANSSON, переопределяющие pkg-config
  JANSSON_LIBS
              Флаги линковщика для JANSSON, переопределяющие pkg-config
  GLIB2_CFLAGS
              Флаги компилятора C для GLIB2, переопределяющие pkg-config
  GLIB2_LIBS  Флаги линковщика для GLIB2, переопределяющие pkg-config
  LIBNL3_CFLAGS
              Флаги компилятора C для LIBNL3, переопределяющие pkg-config
  LIBNL3_LIBS Флаги линковщика для LIBNL3, переопределяющие pkg-config
  LIBNL1_CFLAGS
              Флаги компилятора C для LIBNL1, переопределяющие pkg-config
  LIBNL1_LIBS Флаги линковщика для LIBNL1, переопределяющие pkg-config
  DBUS_CFLAGS Флаги компилятора C для DBUS, переопределяющие pkg-config
  DBUS_LIBS   Флаги линковщика для DBUS, переопределяющие pkg-config
  PYTHON      Интерпретатор Python
  JOURNALD_CFLAGS
              Флаги компилятора C для JOURNALD, переопределяющие pkg-config
  JOURNALD_LIBS
              Флаги линковщика для JOURNALD, переопределяющие pkg-config
  NSS_CFLAGS  Флаги компилятора C для NSS, переопределяющие pkg-config
  NSS_LIBS    Флаги линковщика для NSS, переопределяющие pkg-config
  CRYPTO_CFLAGS
              Флаги компилятора C для CRYPTO, переопределяющие pkg-config
  CRYPTO_LIBS Флаги линковщика для CRYPTO, переопределяющие pkg-config
  SSL_CFLAGS  Флаги компилятора C для SSL, переопределяющие pkg-config
  SSL_LIBS    Флаги линковщика для SSL, переопределяющие pkg-config
  P11_KIT_CFLAGS
              Флаги компилятора C для P11_KIT, переопределяющие pkg-config
  P11_KIT_LIBS
              Флаги линковщика для P11_KIT, переопределяющие pkg-config
  CHECK_CFLAGS
              Флаги компилятора C для CHECK, переопределяющие pkg-config
  CHECK_LIBS  Флаги линковщика для CHECK, переопределяющие pkg-config
  CMOCKA_CFLAGS
              Флаги компилятора C для CMOCKA, переопределяющие pkg-config
  CMOCKA_LIBS Флаги линковщика для CMOCKA, переопределяющие pkg-config

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

Сообщайте об ошибках на <[email protected]>.

Тестирование

Статус сборки

Тесты проводятся с помощью Docker и docker_test_runner, который поднимает следующие контейнеры с разными настройками окружения:

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Debian 10 (Buster)
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 18.04 (Bionic Beaver)
  • Ubuntu 18.10 (Cosmic Cuttlefish)

Ansible 2.7.9 установлен во всех контейнерах, и тестовый плейбук применяется.

Для получения дополнительных деталей и других проверок ознакомьтесь с конфигурацией docker_test_runner и с точкой входа Docker.

# Локальное тестирование:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml

Поскольку время сборки на Travis ограничено для публичных репозиториев, автоматические тесты ограничены версией SSSD 2.0.0 на:

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Ubuntu 18.04 (Bionic Beaver)

Зависимости

Ubuntu 16.04

На Ubuntu 16.04 необходимо убедиться, что pyopenssl является обновленным перед установкой SSSD.

pip install --upgrade pyopenssl

Лицензия

Лицензия BSD 3-Clause "New" или "Revised"

Информация об авторе

  • Тимо Рунге
О проекте

Custom SSSD installation and configuration including patch management for the SSSD source.

Установить
ansible-galaxy install timorunge/ansible-sssd
Лицензия
bsd-3-clause
Загрузки
359931
Владелец