如何在你的计算机上设置 Ansible

AnsibleAnsibleBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程将指导你在计算机上安装 Ansible 并开始使用 Ansible 剧本。Ansible 是一个广受欢迎的开源 IT 自动化工具,可帮助你更高效地管理基础设施。完成本教程后,你将拥有一个可正常运行的 Ansible 设置,并准备好开始自动化你的 IT 任务。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/AnsibleSetupandConfigurationGroup(["Ansible Setup and Configuration"]) ansible(("Ansible")) -.-> ansible/InventoryManagementGroup(["Inventory Management"]) ansible(("Ansible")) -.-> ansible/PlaybookEssentialsGroup(["Playbook Essentials"]) ansible/AnsibleSetupandConfigurationGroup -.-> ansible/install("Ansible Setup") ansible/InventoryManagementGroup -.-> ansible/groups_inventory("Define Inventory Groups") ansible/InventoryManagementGroup -.-> ansible/host_variables("Set Host Variables") ansible/PlaybookEssentialsGroup -.-> ansible/playbook("Execute Playbook") ansible/PlaybookEssentialsGroup -.-> ansible/roles("Assign Roles") subgraph Lab Skills ansible/install -.-> lab-400148{{"如何在你的计算机上设置 Ansible"}} ansible/groups_inventory -.-> lab-400148{{"如何在你的计算机上设置 Ansible"}} ansible/host_variables -.-> lab-400148{{"如何在你的计算机上设置 Ansible"}} ansible/playbook -.-> lab-400148{{"如何在你的计算机上设置 Ansible"}} ansible/roles -.-> lab-400148{{"如何在你的计算机上设置 Ansible"}} end

Ansible 简介

Ansible 是一款开源的、无需代理的 IT 自动化工具,支持将基础设施作为代码(IaC)进行管理。它的设计理念是简单、强大且可扩展,是自动化执行各种 IT 任务的绝佳选择,这些任务涵盖了从服务器供应与配置管理到应用程序部署与编排等各个方面。

什么是 Ansible?

Ansible 是一个配置管理和部署工具,它使用声明式语言来描述系统的期望状态。其工作方式是通过通常基于 SSH 连接到远程主机,并在这些主机上执行任务,以使它们达到期望的状态。Ansible 不需要在远程主机上安装任何特殊软件或代理,这使其成为一个轻量级且灵活的解决方案。

Ansible 的关键特性

  1. 无代理架构:Ansible 不需要在远程主机上安装任何特殊软件或代理,易于设置和使用。
  2. 声明式语言:Ansible 使用一种名为 YAML 的声明式语言来描述系统的期望状态。这使得编写和阅读 Ansible 剧本变得容易。
  3. 幂等性:Ansible 任务被设计为幂等的,这意味着它们可以多次运行而不会导致意外的更改。
  4. 模块化设计:Ansible 具有模块化设计,拥有大量内置模块,可用于执行各种任务,从管理文件和服务到与云提供商进行交互。
  5. 可扩展性:Ansible 可用于管理大量主机,是 IT 自动化的可扩展解决方案。

Ansible 的用例

Ansible 可用于广泛的 IT 自动化任务,包括:

  • 服务器供应:自动化设置新服务器的过程,包括安装操作系统、配置网络设置和安装软件。
  • 配置管理:确保所有服务器配置一致,并维持系统的期望状态。
  • 应用程序部署:自动化将应用程序部署到多台服务器的过程,包括管理依赖项和配置设置。
  • 编排:协调跨多个主机执行多个任务,例如推出软件更新或执行数据库迁移。
  • 安全与合规性:执行安全策略并确保系统符合行业标准。

通过使用 Ansible,组织可以提高其 IT 运营的效率和可靠性,降低人为错误的风险,并使 IT 人员能够专注于更具战略性的计划。

在你的系统上安装 Ansible

前提条件

在安装 Ansible 之前,你的系统需要安装以下软件:

  • Python 3(3.5 或更高版本)
  • pip(Python 包管理器)

在 Ubuntu 22.04 上安装 Ansible

  1. 更新软件包索引:
sudo apt update
  1. 安装所需的依赖项:
sudo apt install software-properties-common
  1. 将 Ansible 仓库添加到系统的源列表中:
sudo add-apt-repository --yes --update ppa:ansible/ansible
  1. 安装 Ansible:
sudo apt install ansible
  1. 验证安装:
ansible --version

这将输出你系统上安装的 Ansible 版本。

配置 Ansible

Ansible 的配置存储在 /etc/ansible/ansible.cfg 文件中。你可以自定义此文件来设置各种选项,例如默认清单文件、远程用户和 SSH 连接设置。

以下是一个基本的 ansible.cfg 文件示例:

[defaults]
inventory =./hosts
remote_user = ubuntu

在此示例中,清单文件设置为 ./hosts,这意味着 Ansible 将在当前目录中查找清单文件。remote_user 设置为 ubuntu,这是 Ubuntu 22.04 实例的默认用户。

验证安装

要验证 Ansible 是否已正确安装和配置,你可以运行以下命令:

ansible all -m ping

此命令将ping清单中的所有主机,并验证 Ansible 是否可以连接到它们。如果安装成功,你应该会看到类似于以下的响应:

all_hosts | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

安装并配置好 Ansible 后,你现在就可以开始使用它来自动化你的 IT 任务了。

开始使用 Ansible 剧本

了解 Ansible 剧本

Ansible 剧本是基于 YAML 的配置文件,用于定义基础设施的期望状态。它们是 Ansible 功能的核心,使你能够自动化执行从服务器供应到应用程序部署等广泛的 IT 任务。

一个典型的 Ansible 剧本由一个或多个 “play” 组成,这些 “play” 定义了要在一组主机上执行的操作。每个 play 可以包含一个或多个 “任务”,这些任务是 Ansible 将在目标主机上执行的各个步骤。

创建你的第一个 Ansible 剧本

让我们创建一个简单的 Ansible 剧本,在一组 Ubuntu 22.04 主机上安装 Apache 网络服务器。

  1. 在你的工作目录中创建一个名为 apache.yml 的新文件:
touch apache.yml
  1. 在文本编辑器中打开该文件,并添加以下内容:
- hosts: all
  become: true
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present
    - name: Start Apache
      service:
        name: apache2
        state: started
        enabled: true

在这个剧本中:

  • hosts: all 指定任务应在清单中的所有主机上执行。
  • become: true 表示 Ansible 应使用提升的权限(例如 sudo)来执行任务。
  • apt 模块用于安装 Apache 网络服务器软件包。
  • service 模块用于启动 Apache 服务并使其在系统启动时自动启动。
  1. 保存文件并运行剧本:
ansible-playbook apache.yml

Ansible 将连接到目标主机,执行剧本中定义的任务,并报告结果。

探索 Ansible 模块

Ansible 附带了大量内置模块,可用于执行各种任务。你可以通过访问 Ansible 模块索引 来探索可用模块。

一些常用的模块包括:

  • file:管理文件和目录
  • user:管理用户账户
  • cron:管理 cron 作业
  • systemd:管理系统服务
  • aws_ec2:管理 AWS 资源
  • azure_rm_virtualmachine:管理 Azure 虚拟机

通过在你的剧本中组合这些模块,你可以自动化各种 IT 任务并简化你的基础设施管理。

结论

在本 Ansible 剧本介绍中,你学习了如何创建和运行一个简单的剧本以安装 Apache 网络服务器。你还探索了 Ansible 剧本的结构以及可用于自动化 IT 任务的各种模块。有了这些知识,你可以开始构建更复杂的剧本以管理你的基础设施和应用程序。

总结

在本教程中,你已经学习了如何在你的计算机上安装 Ansible 并开始使用 Ansible 剧本。Ansible 是一个强大的 IT 自动化工具,可以帮助你简化基础设施管理流程。使用 Ansible,你可以自动化执行从软件部署到配置管理等广泛的任务,使你的 IT 操作更加高效和可靠。