timorunge.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-rpmsrhel-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]>。

测试

构建状态

通过使用 Dockerdocker_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
许可证
bsd-3-clause
下载
383.1k
拥有者