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

相关推荐
Elastic 中国社区官方博客8 小时前
OpenTelemetry Java 扩展:无需分叉 agent 即可自定义追踪
java·大数据·运维·开发语言·数据库·人工智能·elasticsearch
aaaBsBsBsB9 小时前
k8s pod管理
运维·docker·容器
weixin_511255219 小时前
NGINX常用配置
linux·服务器·nginx
志栋智能9 小时前
迈向真正的超自动化巡检
运维·自动化
荣合技术服务9 小时前
电脑多,单个加域麻烦?下载此AD域加域助手,批量加域速度快
运维·服务器·ad域控
昌原的儿子LEO10 小时前
进程和线程(2)
linux·服务器·网络
小王C语言10 小时前
云服务器重置后,vscode无法远程连接
运维·服务器
Zzzzmo_10 小时前
【网络原理】TCP/IP协议02
网络·tcp/ip
Doep_key10 小时前
Kubenetes控制器
运维·docker·容器
RoboWizard10 小时前
金士顿高性能存储 赋能工控行业多场景深度落地
运维·服务器