adfinis.users

用户

此角色用于设置客户和 Adfinis 用户账户。

要求

此角色要求系统上必须有一个初始的非根用户,并且具有 sudo 权限({{users_default_user}},见下方 角色变量)。

该用户用于初始用户账户设置,设置完成后将被删除。 删除操作在此角色的最后一个任务中执行(因此首次运行会正常工作,但如果重复运行,将无法登录)。

在一个剧本(或一系列剧本)中,建议以两种变体应用此角色:

  1. 第一次运行时,使用 remote_user: {{users_default_user}}

  2. 之后,使用预定的用户(个人账户或如果允许则使用 root)。

建议为初始设置保留一个剧本/操作,并为持续管理保留另一个剧本/操作。

角色依赖

(无)

角色变量

必需

  • users_root_password_salt(字符串,默认值:未设置):
    用于哈希根密码的盐。
    注意:仅在设置 users_root_passwordusers_root_password_is_hashed 为 false 时需要。

  • users_customer_group(字符串):
    所有客户用户账户添加的系统组名称。
    注意:仅在 users_customer 非空时需要。

可选

  • users_root_password(字符串,默认值:未设置):
    如果未设置,则根密码不会更改。
    如果设置并且 users_root_password_is_hashed 为 false,则该字段是明文密码,且必须同时设置 users_root_password_salt
    如果设置并且 users_root_password_is_hashed 为 true,则假定这是一个哈希密码(由 ansible.builtin.password_hash 生成)。

  • users_root_password_is_hashed(布尔值,默认值:false):
    如果设置为 true,则假定 users_root_password 已经被哈希(在这种情况下,不需要 users_root_password_salt)。

  • users_root_authorized_keys(列表,默认值:[]):
    授权作为 root 登录的 SSH 公钥。
    每个列表元素是一个对象,具有以下属性:

    • key(字符串,必需):
      密钥数据本身。
    • comment(字符串,可选,默认值:未设置):
      附加到密钥行的注释(通常是 user@host)。
    • description(字符串,可选,默认值:未设置):
      用于作为注释放入 authorized_keys 文件中的人类可读描述,位于密钥行上方。
    • options(字符串,可选,默认值:未设置):
      将预先加到密钥行的密钥选项字符串。
  • users_adfinis(列表,默认值:[]):
    要设置的 Adfinis 用户账户。每个用户将被添加到 {{users_adfinis_group}} 系统组。相应地,在该组中每个现有的非系统用户,如果未在此变量中列出,将被删除
    每个列表元素是一个对象,具有以下属性:

    • username(字符串,必需):
      用户账户名称。
    • authorized_keys(列表,默认值:[]):
      授权作为 root 登录的 SSH 公钥。
      每个列表元素是一个对象,属性如同 users_root_authorized_keys 中描述的。
  • users_adfinis_group(字符串,默认值:adfinis):
    所有 Adfinis 用户账户添加的系统组名称。

  • users_adfinis_ssh_pubkey_options(字符串,默认值:未设置):
    将预先加到 所有 密钥行的密钥选项字符串。

  • users_adfinis_homedir_mode(文件权限模式,默认值:0700):
    每个 Adfinis 用户的主目录的文件权限模式。
    注意:由于历史原因与 Jinja2 相关,模式的八进制表示必须作为字符串传入(以确保不被错误转换),或 设置此 Ansible 选项 为 true。

  • users_adfinis_unrestricted_sudo(布尔值,默认值:true):
    是否给予 Adfinis 用户无限制的 sudo 权限。

  • users_adfinis_user_remove_home(布尔值,默认值:false):
    删除未列出的 Adfinis 账户时是否同时删除其主目录。

  • users_customer(列表,默认值:[]):
    要设置的客户用户账户。每个用户将被添加到 {{users_customer_group}} 系统组。
    每个列表元素是一个对象,属性如同 users_adfinis 中描述的。

  • users_customer_homedir_mode(文件权限模式,默认值:0755):
    每个客户用户的主目录的文件权限模式。
    默认保留为可被所有人读取,以便客户可以使用 sudo -u 以其他用户身份运行命令,并且仍然可以在其主目录中传递文件。
    注意:由于历史原因与 Jinja2 相关,模式的八进制表示必须作为字符串传入(以确保不被错误转换),或 设置此 Ansible 选项 为 true。

  • users_customer_unrestricted_sudo(布尔值,默认值:false):
    是否给予客户用户无限制的 sudo 权限。

  • users_default_user(字符串,默认值:adfinis):
    系统上最初存在的非根用户账户名称,将被删除。

  • users_default_user_remove_home(布尔值,默认值:false):
    是否同时删除最初存在的非根用户账户的主目录。

角色标签

  • init:与 role::users:rootrole::users:adfinis 结合的相同标签。
  • role::users:此角色的所有任务。
  • role::users:root:所有设置根用户账户的任务。
  • role::users:adfinis:所有设置 Adfinis 用户账户的任务。
  • role::users:adfinis:create:设置 Adfinis 用户账户的所有任务(不包括删除)。
  • role::users:adfinis:delete:删除多余的 Adfinis 用户账户的所有任务。
  • role::users:customer:设置客户用户账户的所有任务。
  • role::users:default:清理默认用户账户的所有任务。

支持政策

只维护和支持最新版本(见 标签页面)。

一旦发布新版本,之前的版本分支将不再接受任何 bug 修复。

关于项目

Set up root and user accounts

安装
ansible-galaxy install adfinis.users
许可证
Unknown
下载
176
拥有者
Potential. Unlocked.