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

相关推荐
风曦Kisaki16 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
Dr.kangder16 小时前
嵌入式处理器仿真技术——Hypervisor 原理与实践
服务器·嵌入式硬件·架构·嵌入式
_艾伦 耶格尔.16 小时前
基础I/O
linux
abbgogo17 小时前
TCP/IP、OSI 与常见网络协议知识点总结
网络·网络协议·计算机网络
星蓝_starblue18 小时前
零服务器、零数据库!开源growth-board,利用GitHub自动管理刷题/学习/求职全流程
服务器·数据库·程序人生·系统架构·node.js·github·改行学it
FungLeo19 小时前
Flutter 接入 Alice 调试浮窗:一个顶层 final 抢跑,把 release 网络整没了
网络·flutter
fb_1234519 小时前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
深念Y20 小时前
随身WiFi设备记录
linux·嵌入式·无线·射频·随身wifi·zte
abbgogo20 小时前
堆叠、DHCP 与链路聚合总结
网络·网络协议
柒号华仔20 小时前
【LINUX】Linux从闹钟到高精度定时器的实现
linux