Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature/Enhancement] mis: 采取模板驱动的模式支持一般运维操作(创建用户、账户、重置密码等) #1453

Open
link89 opened this issue Oct 29, 2024 · 4 comments

Comments

@link89
Copy link
Contributor

link89 commented Oct 29, 2024

为何需要此功能 | Why is this needed

超算管理员在创建slurm 账号和用户除了在 openldap 和 slurm 中添加用户、组、账号外,还会有自己初始化的脚本,例如生成 ssh 公钥对,设置文件系统配额,初始化 .bashrc ,QoS等。目前的 SCOW 配置系统并不支持用户自定义设置,导致主要的使用方式还是通过命令行添加后再导入scow.

实际上,通过本Issue介绍的配置重构后,SCOW可无需再区分 authtype 为 openldap 还是 sshtype, 只要有sshtype即可。模板驱动可以最大限度提升用户配置的灵活性,同时减少 SCOW的内部逻辑。

采取这样的设置模式,这一问题:#1424 也可以迎刃而解。

希望增加什么 | What would you like to be added

SCOW应该支持基于模板的账号配置,而不是将逻辑内置在SCOW内。这样的设计不仅可以大大简化 SCOW的设计,同时还可增加用户的灵活性。举例来说,我们可以在 SCOW的某个配置文件中添加若干配置选项,如:new_user_script_template, new_account_script_template, verify_password, modify_password.

以我们的超算运营为例,我们在日常工作中使用以下脚本进行运维操作

/opt/hpc-ops/ikkem-admin.py new_user john
/opt/hpc-ops/ikkem-admin.py new_account ai-research
/opt/hpc-ops/ikkem-admin.py modify_user_password john -p Passw0rd!

在上述脚本中,我们已经封装了必要的用户创建所需的初始化逻辑,此时我们只要在 SCOW中进行如下配置

new_user_script_template: |
  /opt/hpc-ops/ikkem-admin.py new_user {username} {email}

new_account_script_template: |
  /opt/hpc-ops/ikkem-admin.py  new_account {account}

modify_password: |
  /opt/hpc-ops/ikkem-admin.py modify_passowd {username} {password}

verify_password: |
  echo {passowod} | pamtester login {username} authenticate

其中,{username} , {email}{password}, {account} 等即用户在前端填写的变量。这些脚本模板会被替换后以shell脚本的形式被执行。

此功能为谁设计? | Who is this feature for?

SCOW管理员

@link89 link89 changed the title [Feature/Enhancement] mis: SCOW 应该采取模板驱动的模式用来支持一般性运维操作(创建用户、账户、重置密码等) [Feature/Enhancement] mis: 采取模板驱动的模式支持一般运维操作(创建用户、账户、重置密码等) Oct 29, 2024
@tongchong
Copy link
Contributor

感谢您的建议,我们需要对该功能进行研讨后再给您回复,谢谢您对 OpenSCOW 的支持

@vanstriker
Copy link
Member

这个issue的实质是包了一层数据库和认证系统的操作,数据库方面cli工具已经提供了直接进入数据库的方法,进入后可以随时修改相关的内容;认证系统种类很多,需要根据采用的具体的认证系统来进行相关运维操作。目前OpenSCOW项目没有计划增加这部分内容,您如果有日常运营中形成的相关脚本,也可以开源成项目进行维护。

@link89
Copy link
Contributor Author

link89 commented Nov 7, 2024

@vanstriker 这个问题与数据库基本无关,主要关系到 scow 是否允许用户定义自己的运维作业逻辑。scow 目前 create user, create account 的逻辑都是内置的,但实际上超算运维都会有自己初始化用户的方法。scow 目前把这些逻辑内置到系统内其实并无必要(当然也不是不可)。把这部分功能做为配置选项让用户可以指定相应的脚本会是更简单也更灵活的做法。

@vanstriker
Copy link
Member

OpenSCOW提供的hook功能,可以在完成OpenSCOW的功能后调用外部程序实现更多能力,您可以看下这个文档https://pkuhpc.github.io/OpenSCOW/docs/integration/scow-api-hook/hook

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants