timorunge.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
角色变量
此角色基本上是从 YAML 层次生成 SSSD 服务的工作配置文件。
可以传递给此角色的变量。您可以在此段落中找到简要描述。有关所有变量的信息,请查看 SSSD 配置选项。
# 启用/禁用 SSSD 服务
# 类型:布尔
sssd_service_enabled: yes
# 启用 sshd 配置中的 DNS 查找
# 类型:布尔
sssd_manage_sshd_dns_service_lookup: false
# 选择配置类型:配置(`sssd_config`)、文件(`sssd_config_src_file`)
# 或无(禁用 sssd.conf 生成)
# 类型:字符串
sssd_config_type: config
# 默认 SSSD 配置选项
# 类型:字典
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 配置
# 类型:字符串
sssd_config_src_file: sssd.example.conf
# 从源代码安装 SSSD:
# 类型:布尔
sssd_from_sources: false
# 版本定义(仅当 `sssd_from_sources` 为真时相关):
# 类型:字符串
sssd_version: 2.0.0
# 补丁
# 在此部分您可以应用自定义补丁到 SSSD。
# 您可以在 README.md 和测试目录中找到示例。
# 类型:字典
sssd_patches:
fix-makefile:
dest_file: Makefile.am
patch_file: "files/patches/{{ sssd_version }}/fix-makefile.diff"
state: present
# 构建选项
# 默认构建选项存储在 `vars/{{ ansible_os_family }}.yml`
# 类型:列表
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) FreeIPA 的示例 SSSD 配置
- 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 [选项]... [变量=值]...
要分配环境变量(例如,CC, CFLAGS...),请将其指定为 VAR=VALUE。
以下是一些有用变量的描述。
选项的默认值在括号中指定。
配置:
-h, --help 显示此帮助信息并退出
--help=short 显示该软件包特定的选项
--help=recursive 显示所有包含包的简短帮助
-V, --version 显示版本信息并退出
-q, --quiet, --silent 不打印 `checking ...` 消息
--cache-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` 等中。
您可以使用 `--prefix` 指定除 `/usr/local` 以外的安装前缀,例如 `--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 非 gcc 的 C 头文件 [/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 插件的行为
将如同在 sssd 未运行时不在 nsswitch.conf 中一样。[默认=no]
--enable-files-domain 如果此功能已启用,则 SSSD 始终启用一个
id_provider=files 的域,即使在配置文件中未指定该域 [默认=no]
--enable-local-provider 如果启用此功能,则将默认构建 local-provider。[默认=no]
--enable-ldb-version-check
使用 ldb 运行时版本检查编译 [默认=no]
--disable-krb5-locator-plugin
不构建 Kerberos 定位插件
--enable-pac-responder 构建 pac 响应器
--disable-cifs-idmap-plugin
不构建 CIFS idmap 插件
--enable-systemtap 启用 systemtap 跟踪支持
--enable-intgcheck-reqs 启用集成测试要求检查
[默认=no]
--enable-polkit-rules-path=PATH
存储 polkit 规则的路径。使用 --disable 完全不安装规则。
[/usr/share/polkit-1/rules.d]
可选软件包:
--with-PACKAGE[=ARG] 使用 PACKAGE [ARG=yes]
--without-PACKAGE 不使用 PACKAGE(与 --with-PACKAGE=no 相同)
--with-pic[=PKGS] 尝试仅使用 PIC/non-PIC 对象 [默认:使用两者]
--with-gnu-ld 假定 C 编译器使用 GNU ld [默认=no]
--with-sysroot=DIR 在 DIR 中搜索依赖库
(如果未指定则使用编译器的 sysroot)。
--with-gnu-ld 假定 C 编译器使用 GNU ld [默认=no]
--with-libiconv-prefix[=DIR] 在 DIR/include 和 DIR/lib 中搜索 libiconv
--without-libiconv-prefix 不在 includedir 和 libdir 中搜索 libiconv
--with-libintl-prefix[=DIR] 在 DIR/include 和 DIR/lib 中搜索 libintl
--without-libintl-prefix 不在 includedir 和 libdir 中搜索 libintl
--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 存储 SSSD 的 pid 文件的位置 [/var/run]
--with-log-path=PATH 存储 SSSD 日志文件的位置
[/var/log/sssd]
--with-pubconf-path=PATH
存储 SSSD pubconf 文件的位置
[/var/lib/sss/pubconf]
--with-pipe-path=PATH 存储用于 SSSD 互连的管道文件的位置
[/var/lib/sss/pipes]
--with-mcache-path=PATH 存储用于 SSSD 互连的 mmap 缓存文件的位置
[/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 的 init 脚本的存储位置
[/etc/rc.d/init.d]
--with-test-dir=PATH 用于 make check 临时文件的目录
[$builddir]
--with-manpages 是否从 DocBook 源重生 man 页
[是]
--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 authdata 插件存储的路径
[/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 idmap 插件存储的路径
[/usr/lib/samba/idmap]
--with-selinux 是否构建支持 SELinux [是]
--with-nscd=PATH 尝试在本地域操作后刷新 nscd 缓存的 nscd 二进制文件路径
[/usr/sbin/nscd]
--with-ipa-getkeytab=PATH
路径到 ipa_getkeytab 二进制文件,用于从 FreeIPA 服务器获取密钥表 [/usr/sbin/ipa-getkeytab]
--with-semanage 是否构建 SELinux 用户管理支持 [是]
--with-ad-gpo-default=enforcing|permissive
AD GPO 访问控制的默认强制级别
(enforcing)
--with-gpo-cache-path=PATH
存储 GPO 策略文件的位置
[/var/lib/sss/gpo_cache]
--with-nologin-shell=PATH
用于拒绝用户访问的 shell
[/sbin/nologin]
--with-session-recording-shell=PATH
用于记录用户会话的 shell
[/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 是否构建 SSSD 实现的 libwbclient
[是]
--with-sssd-user=<user> 运行 SSSD 的用户(root)
--with-secrets 是否构建支持 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
已安装 Samba 的 Idmap 接口版本
--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 dir> 如果您在非标准目录 <lib dir> 中有库
LIBS 要传递给链接器的库,例如:-l<library>
CPPFLAGS (目标) C/C++ 预处理器标志,例如:-I<include dir> 如果您在非标准目录 <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" or "Revised" License
作者信息
- Timo Runge
Custom SSSD installation and configuration including patch management for the SSSD source.
ansible-galaxy install timorunge.sssd