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

相关推荐
辞旧 lekkk18 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
腾讯蓝鲸智云18 小时前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
苍煜20 小时前
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
网络·docker·容器
疯狂成瘾者20 小时前
服务器的单体和集群
运维·服务器
liuhuizuikeai20 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞21 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
数智化精益手记局1 天前
什么是设备维护管理?设备维护管理包含哪些内容?
大数据·网络·人工智能·安全·信息可视化
charlie1145141911 天前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
飞Link1 天前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
消失的旧时光-19431 天前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法