Ubuntu Ansible剧本编写(手把手教你用Ansible自动化配置Ubuntu服务器)

来源:这里教程网 时间:2026-03-28 13:22:02 作者:

在现代IT运维中,自动化已成为提升效率、减少人为错误的关键手段。而 Ansible 正是一款简单、强大且无需在目标主机安装代理的自动化工具。本文将带你从零开始,学习如何在 Ubuntu 系统上编写和运行 Ansible 剧本(Playbook),实现服务器的自动化配置与管理。

一、什么是Ansible剧本?

Ansible 剧本(Playbook)是用 YAML 语言编写的配置文件,用于定义一系列自动化任务。你可以把它理解为“操作说明书”——告诉 Ansible 要在哪些服务器上执行什么命令、安装哪些软件、修改哪些配置等。

使用 Ubuntu Ansible剧本编写,可以轻松批量部署 Web 服务、数据库、安全策略等,特别适合 DevOps 和系统管理员。

二、准备工作

在开始编写剧本前,请确保以下条件已满足:

一台运行 Ubuntu 的控制机(Control Node) 至少一台目标 Ubuntu 服务器(Managed Node) 控制机与目标机之间可通过 SSH 通信

1. 在控制机上安装 Ansible

打开终端,执行以下命令:

sudo apt updatesudo apt install ansible -y

2. 配置SSH免密登录

Ansible 通过 SSH 连接目标服务器,建议配置 SSH 公钥认证以避免每次输入密码。

# 生成密钥(如尚未生成)ssh-keygen -t rsa -b 4096# 将公钥复制到目标服务器(假设目标IP为192.168.1.100)ssh-copy-id user@192.168.1.100

三、编写第一个Ansible剧本

现在我们来创建一个简单的剧本,用于在目标 Ubuntu 服务器上安装 Nginx 并启动服务。

1. 创建项目目录

mkdir ~/ansible-democd ~/ansible-demo

2. 编写Inventory文件

Inventory 文件用于定义目标主机。创建

hosts.ini

[webservers]192.168.1.100 ansible_user=ubuntu

其中

webservers
是主机组名,IP 地址替换为你自己的目标服务器地址,
ansible_user
指定登录用户。

3. 编写Playbook文件

创建

install_nginx.yml
文件:

---- name: 安装并启动 Nginx Web 服务器  hosts: webservers  become: yes  tasks:    - name: 更新 apt 缓存      apt:        update_cache: yes    - name: 安装 Nginx      apt:        name: nginx        state: present    - name: 启动 Nginx 服务      service:        name: nginx        state: started        enabled: yes

这段代码含义如下:

hosts: webservers
:指定在哪个主机组执行
become: yes
:以 root 权限执行(相当于 sudo) 三个
tasks
分别完成:更新软件源、安装 Nginx、启动并设置开机自启

四、运行Ansible剧本

在项目目录下执行以下命令:

ansible-playbook -i hosts.ini install_nginx.yml

如果一切顺利,你会看到绿色的 “changed” 或 “ok” 状态,表示任务成功执行。此时访问目标服务器的 IP 地址,应能看到 Nginx 默认欢迎页。

五、常见问题与技巧

权限问题:确保使用
become: yes
执行需要 root 权限的操作。 YAML格式敏感:缩进必须使用空格(不能用 Tab),否则会报错。 调试技巧:添加
-v
-vvv
参数可查看详细输出。

六、结语

通过本教程,你已经掌握了 Ubuntu Ansible剧本编写 的基本流程。无论是部署应用、配置防火墙,还是批量更新系统,Ansible 都能帮你高效完成。

作为 Ansible自动化运维 的入门者,建议多练习编写不同场景的 Playbook,逐步掌握模块(如 copy、template、file 等)的使用。同时,结合 Ubuntu服务器配置 的实际需求,你将快速成长为一名高效的运维工程师。

希望这篇 Ansible入门教程 对你有所帮助!如有疑问,欢迎在评论区交流。

相关推荐

热文推荐