简介
本教程将指导你在 Ubuntu 操作系统上安装 Ansible,这是一个强大的开源 IT 自动化工具。你将学习如何设置 Ansible 并执行 Ansible 剧本以简化你的基础设施管理任务。
了解 Ansible
Ansible 是一款开源的软件供应、配置管理和应用程序部署工具。它的设计理念是简单、强大且无需代理,允许用户同时管理和配置多个远程系统。
什么是 Ansible?
Ansible 是一个强大的自动化工具,使你能够以声明式和幂等的方式管理基础设施、应用程序和服务。它使用一种名为 YAML 的简单、易读的语言来定义系统的期望状态,然后执行必要的任务以达到该状态。
Ansible 的关键特性
- 无需代理:Ansible 不需要在远程系统上安装任何特殊软件或代理。它使用 SSH(或 Windows 远程管理)与目标系统进行通信。
- 声明式方法:Ansible 采用声明式方法,你只需定义系统的期望状态,Ansible 会负责实现该状态所需的必要步骤。
- 幂等性:Ansible 的任务设计为幂等的,这意味着它们可以多次运行而不会导致任何意外更改。
- 模块化设计:Ansible 具有模块化设计,拥有大量内置模块,可用于执行各种任务,例如管理文件、安装软件包或与云服务进行交互。
- 简单易读:Ansible 基于 YAML 的语言设计得简单易读,开发人员和系统管理员都能轻松上手。
Ansible 的用例
Ansible 可用于广泛的任务,包括:
- 基础设施供应
- 配置管理
- 应用程序部署
- 编排
- 安全与合规
- 持续集成/持续部署(CI/CD)
Ansible 架构
Ansible 使用客户端 - 服务器架构,其中 Ansible 控制节点(安装 Ansible 的系统)通过 SSH 或 Windows 远程管理与远程目标系统(你要管理的系统)进行通信。
graph TD
A[Ansible 控制节点] -- SSH/WinRM --> B[目标系统 1]
A -- SSH/WinRM --> C[目标系统 2]
A -- SSH/WinRM --> D[目标系统 3]
Ansible 控制节点在目标系统上执行必要的任务,目标系统将结果反馈回控制节点。
在 Ubuntu 上安装 Ansible
先决条件
在安装 Ansible 之前,请确保你具备以下先决条件:
- Ubuntu 22.04 LTS 系统
- 已安装 Python 3
- 拥有 sudo 或 root 权限
安装 Ansible
- 更新软件包索引:
sudo apt update
- 安装所需软件包:
sudo apt install software-properties-common
- 将 Ansible PPA(个人软件包存档)添加到系统的源列表中:
sudo add-apt-repository --yes --update ppa:ansible/ansible
- 安装 Ansible:
sudo apt install ansible
- 验证安装:
ansible --version
你应该会看到显示的 Ansible 版本信息。
配置 Ansible
- 创建一个 Ansible 清单文件:
sudo nano /etc/ansible/hosts
将目标主机添加到清单文件中,例如:
[webservers]
192.168.1.100
192.168.1.101
[databases]
192.168.1.200
192.168.1.201
- 创建一个 Ansible 配置文件:
sudo nano /etc/ansible/ansible.cfg
添加所需的配置选项,例如:
[defaults]
inventory = /etc/ansible/hosts
remote_user = ubuntu
- 测试 Ansible 连接:
ansible all -m ping
此命令将对清单文件中的所有主机执行 ping 操作并验证连接。
现在,你已在 Ubuntu 22.04 系统上成功安装了 Ansible,并对其进行了配置以管理目标主机。
执行 Ansible 剧本
什么是 Ansible 剧本?
Ansible 剧本是一个 YAML 格式的文件,用于定义基础设施或应用程序的期望状态。它包含一系列任务,这些任务按特定顺序执行以实现期望状态。
Ansible 剧本剖析
一个基本的 Ansible 剧本由以下元素组成:
- 主机:剧本将在其上执行的目标主机或主机组。
- 任务:Ansible 将在目标主机上执行的操作。
- 变量:可在整个剧本中使用的值。
- 处理器:由其他任务触发的任务。
以下是一个在一组 Ubuntu 主机上安装 Apache 网络服务器的 Ansible 剧本示例:
- hosts: webservers
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
enabled: yes
执行 Ansible 剧本
要执行 Ansible 剧本,请按以下步骤操作:
- 将剧本保存到一个文件中,例如
apache.yml。 - 使用
ansible-playbook命令运行剧本:
ansible-playbook apache.yml
这将在目标主机上执行剧本中定义的任务。
剧本执行选项
你可以使用各种选项来自定义剧本执行,例如:
- 限制:在特定主机或主机组上执行剧本。
ansible-playbook apache.yml -l webservers - 检查:进行试运行以查看将会做出哪些更改。
ansible-playbook apache.yml --check - 提升权限:以提升的权限执行剧本。
ansible-playbook apache.yml --become
通过理解和使用 Ansible 剧本,你可以轻松地在 Ubuntu 系统上自动化基础设施和应用程序的部署与配置。
总结
在本教程结束时,你将对 Ansible 及其功能有扎实的理解,同时掌握在你的 Ubuntu 系统上安装 Ansible 并开始使用 Ansible 剧本自动化基础设施管理任务的知识。


