一、实验环境
- 操作系统:openEuler
- 控制节点:test01(已部署 Ansible)
- 被控节点:test01(已配置 SSH 免密登录)
- 核心要求:关闭被控端信息收集、单 Play 多任务创建用户、独立 Play 修改用户 Shell
二、实验需求
- 编写名为
test1.yaml的 Ansible Playbook - 关闭被控端 facts 信息收集(
gather_facts: no) - 第一个 Play:通过两个任务 创建
admin01、admin02两个用户 - 第二个 Play:修改
admin01的登录 Shell 为/bin/sh - 完成语法检查、执行 Playbook、结果说明
三、编写 Playbook
创建 test1.yaml 文件,内容如下(规范缩进、无语法错误、可直接运行):
yaml
---
# Play1:创建两个普通用户,关闭信息收集
- name: Create two Linux users
hosts: test01
gather_facts: no # 关闭被控端系统信息收集
tasks:
# 任务1:创建用户admin01
- name: Create user admin01
ansible.builtin.user:
name: admin01
state: present
# 任务2:创建用户admin02
- name: Create user admin02
ansible.builtin.user:
name: admin02
state: present
# Play2:修改admin01的登录shell为/bin/sh
- name: Modify user login shell
hosts: test01
gather_facts: no
tasks:
- name: Change admin01 shell to /bin/sh
ansible.builtin.user:
name: admin01
shell: /bin/sh
state: present

脚本核心说明
gather_facts: no:关闭被控端信息收集,提升执行效率- 两个独立 Play:实现创建用户 和修改属性解耦
user模块:Ansible 内置模块,安全稳定管理 Linux 用户shell: /bin/sh:限制用户交互式登录,提升系统安全性
四、Playbook 语法检查
执行前必须校验语法,避免运行时报错:
ansible-playbook --syntax-check test1.yaml

执行结果
playbook: test1.yaml
输出以上内容代表语法完全正确,无缩进、格式等问题。
五、执行 Playbook
一键执行剧本,完成用户创建与属性修改:
ansible-playbook test1.yaml
完整执行输出

六、执行结果详细说明
1. 阶段执行说明
- PLAY [Create two Linux users]:第一个剧本启动,负责创建两个用户
-
TASK [Create user admin01]:成功创建用户 admin01,状态changedTASK [Create user admin02]:成功创建用户 admin02,状态changed
- PLAY [Modify user login shell]:第二个剧本启动,负责修改用户 Shell
-
TASK [Change admin01 shell to /bin/sh]:成功修改 admin01 登录 Shell,状态changed
2. PLAY RECAP 状态说明
ok=3:3 个任务全部执行成功changed=3:3 个任务对系统状态进行了修改(2 个用户创建 + 1 个属性修改)unreachable=0:被控主机 test01 网络连通正常failed=0:无任务执行失败
七、验证实验结果(可选)
在被控端执行命令,查看用户信息:
cat /etc/passwd | grep admin
验证结果
admin01:x:1001:1001::/home/admin01:/bin/sh
admin02:x:1002:1002::/home/admin02:/bin/bash
可以看到:
admin01登录 Shell 已修改为/bin/sh(受限安全模式)admin02保持默认 Shell/bin/bash
八、实验总结
- 本实验基于 openEuler 环境,完成了 Ansible Playbook 从编写到执行的全流程
- 通过
gather_facts: no优化了剧本执行效率 - 实现了批量创建用户、批量修改用户属性的自动化操作
- 修改 Shell 为
/bin/sh符合 Linux 运维安全规范,限制用户交互式登录 - Ansible Playbook 可重复执行、标准化配置、批量管理主机,大幅提升运维效率