sssd
sssd
Эта роль предназначена для установки и настройки службы SSSD.
Также предусмотрена возможность установки и обновления собственной версии SSSD (из исходников) в зависимости от ваших потребностей.
Требования
Для применения патчей эта роль требует Ansible 2.6.0 или более поздней версии.
Установить (и определить) стабильную версию можно с помощью pip:
pip install ansible==2.7.9
Все требования к платформе перечислены в файле метаданных.
Установка
- Используйте тег 0.4.2 для SSSD >= 1.6.0
- Используйте тег >= 0.5.0 для SSSD >= 2.0.0
Рекомендация
Рекомендуется оставаться на версии 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