前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ansible自动化运维中的User用户管理模块应用详解

Ansible自动化运维中的User用户管理模块应用详解

作者头像
神秘奇男子
发布2024-06-03 18:25:25
1080
发布2024-06-03 18:25:25
举报
文章被收录于专栏:运维知识运维知识
在Ansible中,user 模块主要用于管理系统用户账户。它可以创建、修改、删除用户,并管理用户的属性,比如密码、组、家目录等。这个模块是非常有用的,尤其是在配置多个系统时,可以确保所有系统上的用户账户配置都是一致的。
user模块的作用

主要作用包括:

  1. 创建用户
    • 自动创建用户,并设置用户的各种属性,如UID、家目录、登录Shell等。
    • 适用于新部署的系统或添加新用户到已存在的系统。
  2. 修改用户
    • 修改现有用户的属性,如更改用户的密码、主组、附加组、家目录等。
    • 用于更新用户配置或确保用户设置符合最新的安全政策。
  3. 删除用户
    • 删除系统中的用户账户,可选是否同时删除用户的家目录及其邮件目录。
    • 常用于清理不再需要的用户账户。
  4. 用户状态管理
    • 确保用户在系统中的存在或不存在状态,有助于保持环境的一致性和预期的配置状态。
Auser模块的应用场景

应用场景

  • 配置管理:在多个环境中确保所有系统的用户配置一致。
  • 安全合规:按照安全政策自动配置用户属性,如密码策略和访问控制。
  • 自动化部署:在自动部署过程中创建和配置所需的用户账户。
  • 系统维护:定期更新或删除用户账户,确保系统清洁和安全。
主要参数

参数名

描述

默认值

name

指定用户的名字

state

确定用户的状态。可选值: present, absent

password

用户的密码(加密后的字符串)

uid

用户的UID

gid

用户的主组ID

groups

用户所属的其他组

home

用户的家目录

shell

用户的默认shell

system

如果设置为yes,则创建一个系统账户

no

createhome

是否创建家目录,默认为yes

yes

remove

在删除用户时,是否同时删除家目录和邮件目录

no

示例

创建一个新用户:

代码语言:javascript
复制
- name: Create a new user
  user:
    name: john
    state: present
    groups: "wheel,developers"
    createhome: yes
    shell: /bin/bash

修改用户属性:

代码语言:javascript
复制
- name: Modify a user
  user:
    name: john
    shell: /bin/zsh
    groups: "wheel,developers,sudo"
    append: yes  # 添加到现有组,而不是替换现有组

删除用户:

代码语言:javascript
复制
- name: Remove a user
  user:
    name: john
    state: absent
    remove: yes  # 同时删除用户的家目录和邮件目录

通过使用这些参数和选项,你可以通过Ansible自动管理系统的用户配置,确保在各个环境之间的一致性和安全性。

实验要求

通过一台ansible服务器来给两服务器操作(调用user模块实现)

1.增加主机组

通过以下配置就是创建一个webServers组 并且加入两个主机 再给组赋予变量 用户名和密码 这样组下的所有主机都可以访问 更加的便捷

2.创建用户
代码语言:javascript
复制
[root@ansible ~]# ansible webServers -m user -a 'name=ok state=present'

  • webServers: 指定主机组的名称。在这个示例中,它可能代表一个或多个Web服务器。
  • -m user: 指定使用 user 模块,该模块用于管理用户账户。
  • -a 'name=ok state=present': 模块参数。name=ok 指定用户名称为 okstate=present 确保用户存在

客户端查看

112服务器,ok用户创建成功

113服务器,ok用户创建成功

明显上面都已经创建成功

3.生成密码

通过openssl给5201314生成密文密码

接下来我们使用密文密码来给用户添加密码(因为/etc/passwd中存储的密码都是密文的)

代码语言:javascript
复制
[root@ansible ~]# echo '5201314' | openssl passwd -1 -stdin
$1$lNgUPHGc$K9.m7Fva0MmsAPEeP3CPz0

运行一个命令以在 Linux 上生成 openssl 哈希密码。您使用的命令使用 MD5 函数将字符串“5201314”转换为哈希密码。

传递密码
代码语言:javascript
复制
[root@ansible ~]# ansible webServers -m user -a 'name=ok password="$1$lNgUPHGc$K9.m7Fva0MmsAPEeP3CPz0"'

  • name=ok :定义将要创建或修改的用户的名称。
  • password="

创建成功

调用密码

输入新的用户名和密码登录

这边登录成功查看目录 在家目录下的ok

修改用户shell
代码语言:javascript
复制
[root@ansible ~]# ansible webServers -m user -a 'name=ok shell=/sbin/nologin append=yes'

shell=/sbin/nologin :将用户 shell 设置为 /sbin/nologin ,有效阻止用户以交互方式登录系统。这通常用于不应直接访问 shell 的服务帐户或系统帐户。

这时候我们修改了他的登录shell

这个用户就没办法正常的登录进去了

4.删除用户
代码语言:javascript
复制
[root@ansible ~]# ansible webServers -m user -a 'name=ok state=absent'

客户端查看

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • user模块的作用
  • Auser模块的应用场景
  • 主要参数
  • 示例
  • 实验要求
    • 1.增加主机组
      • 2.创建用户
        • 3.生成密码
          • 传递密码
          • 调用密码
          • 修改用户shell
        • 4.删除用户
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档