adfinis.users
用户
此角色用于设置客户和 Adfinis 用户账户。
要求
此角色要求系统上必须有一个初始的非根用户,并且具有 sudo 权限({{users_default_user}}
,见下方 角色变量)。
该用户用于初始用户账户设置,设置完成后将被删除。 删除操作在此角色的最后一个任务中执行(因此首次运行会正常工作,但如果重复运行,将无法登录)。
在一个剧本(或一系列剧本)中,建议以两种变体应用此角色:
第一次运行时,使用
remote_user: {{users_default_user}}
。之后,使用预定的用户(个人账户或如果允许则使用
root
)。
建议为初始设置保留一个剧本/操作,并为持续管理保留另一个剧本/操作。
角色依赖
(无)
角色变量
必需
users_root_password_salt
(字符串,默认值:未设置):
用于哈希根密码的盐。
注意:仅在设置users_root_password
且users_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:root
和role::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 修复。