Ansible Playbook 入门实战:自动化创建 Linux 用户

前言

在自动化运维场景中,Ansible 是轻量、高效的批量运维工具,Playbook 是 Ansible 实现配置管理、应用部署、任务自动化的核心编排方式。

本文以创建 Linux 系统用户为实战案例,从零编写标准的 Ansible Playbook,包含完整编写、语法校验、执行验证全流程,适合 Ansible 新手快速上手。


一、环境准备

  1. 已部署 Ansible 环境(控制节点:test01)
  2. 目标主机已配置 SSH 免密登录
  3. 熟悉 YAML 基础语法(缩进敏感、键值对格式)

二、Ansible Playbook 核心概念

  • Playbook:YAML 格式的 Ansible 任务脚本,后缀为 .yaml/.yml
  • Play:剧本中的一个执行单元,包含主机、任务等配置
  • hosts:指定要执行任务的目标主机 / 主机组
  • tasks:任务列表(必须为复数),存放要执行的操作
  • user:Ansible 内置模块,用于管理 Linux 用户

三、编写标准 Playbook

创建脚本文件 vim first.yaml,编写规范、可直接执行的代码:

yaml

复制代码
---
# 定义 Play 名称
- name: Automatically create Linux user
  # 指定目标主机
  hosts: test01
  # 任务列表(核心关键字,必须为 tasks)
  tasks:
    # 单个任务名称
    - name: Create user admin1
      # 使用 user 模块创建用户
      user:
        name: admin1       # 用户名
        state: present    # 状态:present 表示创建,absent 表示删除

脚本说明

  1. ---:YAML 文件标准开头,标识文件格式
  2. name:任务描述,提升可读性
  3. hosts:指定执行任务的目标机器
  4. tasks:固定关键字,声明任务集合
  5. user 模块:系统原生模块,无需额外安装,安全稳定

四、语法校验(必做步骤)

在执行 Playbook 之前,必须先校验语法,避免运行时报错:

bash

运行

复制代码
ansible-playbook --syntax-check first.yaml

校验成功输出

出现 playbook: first.yaml 表示语法完全正确,警告不影响执行。


五、执行 Playbook

执行命令,一键在目标主机创建用户:

bash

运行

复制代码
ansible-playbook first.yaml

执行成功输出

复制代码
PLAY [Automatically create Linux user] ******************

TASK [Gathering Facts] ***********************************
ok: [test01]

TASK [Create user admin1] *******************************
changed: [test01]

PLAY RECAP **********************************************
test01 : ok=2  changed=1  unreachable=0  failed=0

执行结果说明

  • ok=2:两个任务执行成功
  • changed=1:目标主机状态已变更(用户创建成功)
  • failed=0:无任何错误

六、验证执行结果

登录目标主机,查看用户是否创建成功:

bash

运行

复制代码
id admin1

输出用户信息即表示创建完成。


七、Playbook 编写规范总结

  1. 关键字必须正确 :任务列表固定使用 tasks:(复数)
  2. 缩进严格:YAML 语法强制缩进,使用 2 个空格(禁止 Tab)
  3. 先校验后执行 :养成 --syntax-check 校验习惯
  4. 语义化命名name 字段清晰描述任务用途
  5. 模块标准化:优先使用 Ansible 官方内置模块

八、扩展优化(可选)

可在 Playbook 中增加用户配置,实现更完整的用户创建:

yaml

复制代码
user:
  name: admin1
  state: present
  home: /home/admin1    # 指定家目录
  shell: /bin/bash      # 指定默认 shell
  create_home: yes      # 自动创建家目录

结语

通过本文实战,你已经掌握了 Ansible Playbook 的标准编写、语法校验、执行验证全流程。

Playbook 是 Ansible 自动化的核心,熟练掌握基础写法后,可快速扩展到软件安装、文件分发、服务管理、批量配置等运维场景,大幅提升运维效率。

相关推荐
Avan_菜菜19 小时前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10151 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao2 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3103 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode3 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维
A小辣椒5 天前
TShark:Wireshark CLI 功能
linux
A小辣椒5 天前
TShark:基础知识
linux
AlfredZhao5 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci