网站主机在哪里注册呢,wordpress列类型,免费软件是什么意思,世纪佳缘网站开发公司在企业运维环境中#xff0c;服务器的用户管理是一项基础但非常重要的任务。比如#xff0c;当有新员工加入时#xff0c;我们需要在多台服务器上为他们创建账户并分配合适的权限。而当员工离职或岗位发生变化时#xff0c;我们也需要迅速禁用或删除他们的账户#xff0c;…在企业运维环境中服务器的用户管理是一项基础但非常重要的任务。比如当有新员工加入时我们需要在多台服务器上为他们创建账户并分配合适的权限。而当员工离职或岗位发生变化时我们也需要迅速禁用或删除他们的账户以避免潜在的安全风险。 如果采用手动方式来完成这些任务就需要在每台服务器上逐一执行一系列命令比如 useradd、passwd 和 chage 等这不仅耗时费力还容易出现错误。幸运的是Ansible提供了一个非常方便的 user 模块可以帮助我们高效地进行批量用户管理从而确保操作的安全性和一致性。
⚓user模块的核心功能
要了解user模块的详细用法我们可以使用ansible-doc命令。只需运行以下命令即可查看相关信息
ansible-doc -s user成功执行上述命令后会展示如下图的结果 user模块提供了许多实用的功能主要包括以下几点 创建或删除用户 设置密码 指定用户的UID、GID 指定用户所属组 创建home目录 设定 Shell 设定SSH公钥认证
常用参数说明
参数作用name指定用户名statepresent(创建用户)或 absent(删除用户)password用户密码需加密uid指定用户UIDgroup指定用户所属组groups指定用户附加的组home指定 home目录路径shell指定默认Shell如 /bin/bashcreate_home是否创建 home目录默认yesremoveabsent时是否删除 home目录expires指定密码过期时间(时间戳格式)
⚓实战案例分析
案例 1批量创建开发团队账户
需求为3名新入职开发人员创建账户要求 创建主目录/home/dev_username 加入docker、git附加组 禁止SSH密码登录 设置初始密码
- name: Create developer accountshosts: dev_serversbecome: yesvars:developers:- { name: alice, uid: 2001 }- { name: bob, uid: 2002 }- { name: charlie, uid: 2003 }tasks:- name: Create developer usersansible.builtin.user:name: {{ item.name }}uid: {{ item.uid }}groups: docker,gitappend: yesshell: /bin/bashpassword: $6$rounds656000$SAlt1234$XH6X8L8Dz4tdj.7WZ2TvWUDO2w/lk5sABC1234ABCDefgHIJKLmnopqrSTUVWXYZgenerate_ssh_key: yesssh_key_bits: 4096create_home: yesloop: {{ developers }}关键点说明 使用loop实现批量创建 password参数使用python中crypt生成的哈希密文 自动生成4096位RSA密钥对 保持默认主组同时附加到docker和git组 通过执行如下命令即可批量创建用户
ansible-playbook Create_developer_accounts.yml创建成功后可以看到如下图的结果 案例 2为运维账户配置Sudo权限
创建opsadmin账户并授予免密sudo权限
- name: Configure ops adminhosts: dev_serversbecome: yestasks:- name: Create ops useransible.builtin.user:name: opsadmingroups: wheelshell: /bin/bashcomment: Operations Administrator- name: Configure passwordless sudoansible.builtin.lineinfile:path: /etc/sudoersline: opsadmin ALL(ALL) NOPASSWD:ALLvalidate: visudo -cf %svalidate: visudo -cf %s 在修改前使用 visudo -cf /etc/sudoers 进行语法检查。 防止 sudoers 文件写错避免系统无法使用sudo。 ansible-playbook Configure_ops_admin.yml成功执行上述命令后您将会看到如下图所示的结果 案例3安全删除离职用户
需求安全移除已离职员工账户删除用户但保留主目录。
- name: Remove deprecated usershosts: dev_serversbecome: yesvars:departed_users: [alice, bob]tasks:- name: Remove user accountsansible.builtin.user:name: {{ item }}state: absentremove: no # 不删除主目录loop: {{ departed_users }}成功执行下面的命令后会把定义的用户删除但是会保留删除用户的家目录如下图所示
ansible-playbook Remove_deprecated_users.yml案例 4禁用用户
需求禁用 charlie账户但不删除确保其 home 目录仍然保留。
- name: 禁用用户hosts: dev_serversbecome: yestasks:- name: 锁定 charlie 账户ansible.builtin.user:name: charliepassword_lock: yes成功执行如下命令会输入如下图的结果
ansible-playbook lock_charlie.yml⚓总结
Ansible的user模块为 Linux 服务器的用户管理提供了强大的自动化能力可以大幅提升运维效率并减少人为失误。本文通过典型场景展示了以下关键功能 创建批量用户并分配权限 为运维账号配置Sudo权限 禁用用户 删除用户并保留 home目录
通过这些案例相信你已经掌握了 user 模块的基本用法并能在实际工作中灵活应用。希望这篇教程能帮助你更轻松地管理服务器用户提高运维自动化能力
推荐阅读 登录即见打造服务器欢迎信息提升用户体验自动化压缩新姿势教你用Ansible Archive模块高效管理文件提升运维效率Ansible systemd 模块操作技巧让你告别繁琐命令行Ansible fetch模块详解轻松从远程主机抓取文件告别手动编辑:如何用Python快速创建Ansible hosts文件?一分钟学会Ansible cron模块高效管理你的定时任务