如何在 Ubuntu 20.04 上安装和配置 Ansible?
Ansible 是一种开源自动化工具,用于自动化软件配置、配置管理和应用程序部署。它使用一种称为 YAML 的简单语法来描述 playbook 中的任务。 Ansible 可用于管理大量服务器,并且可以从中央位置运行。在本文中,我们将讨论如何在 Ubuntu 20.04 上安装和配置 Ansible。
第1步:更新系统包
在安装 Ansible 之前,将系统软件包更新到最新版本始终是一个好习惯。打开终端并执行以下命令 -
sudo apt update
sudo apt upgrade -y
上述命令将更新和升级所有已安装的软件包。
第 2 步:安装 Ansible
更新系统软件包后,我们可以通过执行以下命令使用 apt 软件包管理器安装 Ansible -
sudo apt install ansible -y
此命令将在 Ubuntu 20.04 系统上安装 Ansible。
步骤 3:配置 Ansible 主机文件
Ansible 使用主机文件来了解要管理哪些服务器。默认情况下,hosts 文件位于 /etc/ansible/hosts。我们需要添加希望 Ansible 管理的服务器的 IP 地址或主机名。
使用以下命令打开主机文件 -
sudo nano /etc/ansible/hosts
这将在 Nano 编辑器中打开主机文件。在此文件中,我们可以添加要管理的服务器的 IP 地址或主机名。主机文件的格式如下 -
[group_name]
server1 ansible_host=ip_address_or_hostname
server2 ansible_host=ip_address_or_hostname
这里,group_name是我们要管理的服务器组的名称,server1、server2是我们要管理的服务器的名称。 ansible_host 是服务器的 IP 地址或主机名。
保存并关闭主机文件。
第 4 步:测试 Ansible
要测试 Ansible 是否已正确安装和配置,我们可以执行一个简单的命令来 ping 主机文件中列出的服务器。
ansible -m ping all
此命令将 ping 主机文件中列出的所有服务器。如果 Ansible 配置正确,它将为每个服务器返回一条成功消息。
第 5 步:创建剧本
现在 Ansible 已正确安装和配置,我们可以创建一个 playbook 来自动执行服务器上的任务。 playbook 是一个 YAML 文件,其中包含 Ansible 应在服务器上执行的任务列表。
使用以下命令在您的主目录中创建一个名为 playbook.yaml 的新文件 -
nano ~/playbook.yaml
在此文件中,我们可以添加 Ansible 应在服务器上执行的任务列表。例如,以下剧本将在服务器上安装 Apache -
---
- name: Install Apache
hosts: group_name
become: true
tasks:
- name: Install Apache
apt:
name: apache2
state: present
在此 playbook 中,name 是 playbook 的描述,hosts 是我们要管理的服务器组的名称,变为:true 允许 Ansible 以提升的权限运行命令。任务部分包含 Ansible 应该执行的任务列表。在此示例中,Ansible 将使用 apt 模块安装 Apache。
保存并关闭 playbook.yaml 文件。
第 6 步:运行 Playbook
要运行 playbook,我们可以执行以下命令 -
ansible-playbook ~/playbook.yaml
此命令将执行 playbook 并在 group_name 部分下的主机文件中列出的所有服务器上安装 Apache。
第 7 步:附加 Ansible 配置
可以进行一些额外的 Ansible 配置来增强其功能。这些配置存储在位于 /etc/ansible/ 目录中的 ansible.cfg 文件中。
可以添加的一项配置是 Ansible 用于连接服务器的默认用户。为此,请使用以下命令打开 ansible.cfg 文件 -
sudo nano /etc/ansible/ansible.cfg
在此文件中,取消注释 remote_user 行并添加您希望 Ansible 用于连接到服务器的用户名。
remote_user = your_username
保存并关闭文件。
可以添加的另一个配置是库存文件的位置。为此,请打开 ansible.cfg 文件并取消注释行,其中显示清单并添加清单文件的位置。
inventory = /path/to/your/inventory/file
保存并关闭文件。
以下是一些额外的提示和技巧,您可以使用它们来进一步增强 Ansible 安装 -
使用角色 - Ansible 角色是一种将剧本组织成可重用和模块化组件的方法。通过使用角色,您可以将任务分成逻辑单元,使您的剧本更易于管理和维护。
使用变量 - Ansible 允许您定义可在整个剧本中使用的变量。变量可用于存储 IP 地址、用户名和密码等信息,使您的 playbook 更加灵活和可定制。
使用 Ansible Vault - Ansible Vault 是一项允许您加密敏感数据(例如密码、密钥和其他机密)的功能。 Ansible Vault 是一种存储秘密的安全方式,并且可以轻松集成到您的剧本中。
使用 Ansible Tower - Ansible Tower 是一个基于 Web 的 UI 和自动化平台,可让您集中管理 Ansible 基础设施。借助 Ansible Tower,您可以自动化 playbook 运行、管理库存并监控基础设施。
使用 Ansible 模块 - Ansible 附带了各种内置模块,可用于自动执行各种任务。 Ansible 模块可用于安装软件、管理用户、配置网络设置等。
使用 Ansible 集合 - Ansible 集合是一种打包和分发 Ansible 内容(例如模块、插件和角色)的方法。 Ansible 集合可以使用 ansible-galaxy 命令进行安装,它们可用于扩展 Ansible 安装的功能。
使用 Ansible 动态清单 - Ansible 动态清单是一项允许您动态生成清单文件的功能。如果您拥有大量服务器或者您的基础设施不断变化,这非常有用。 Ansible 动态清单可以基于云提供商(例如 AWS、Azure 或 GCP)或基于其他源(例如 CMDB 或数据库)生成清单文件。
使用 Ansible Playbook 最佳实践 - 在编写 Ansible Playbook 时可以遵循一些最佳实践,以使其更具可读性和可维护性。其中一些最佳实践包括为您的任务和角色使用描述性名称、使用注释来解释您的剧本以及将您的剧本组织为逻辑部分。
使用 Ansible Ad-Hoc 命令 - Ansible ad-hoc 命令允许您在一组服务器上运行单个任务,而无需创建 playbook。临时命令对于执行快速而简单的任务非常有用,例如检查服务器上的磁盘空间或重新启动服务。
使用 Ansible 调试工具 - Ansible 附带了许多调试工具,可以帮助您解决 playbook 中的问题。其中一些工具包括 ansible-playbook --check 命令,它允许您检查 playbook 是否有语法错误,以及 ansible-playbook --start-at-task 命令,它允许您在特定任务中启动 playbook。
使用 Ansible 模板 - Ansible 模板是一种创建可跨多个服务器使用的动态配置文件的方法。模板允许您使用变量和条件来生成特定于每个服务器的配置文件。这使您的配置管理更加高效和灵活。
使用 Ansible 回调插件 - Ansible 回调插件是扩展 Ansible 功能并添加自定义输出格式或操作的一种方法。回调插件可用于发送通知、将输出记录到数据库,或将 Ansible 与 Slack 或 PagerDuty 等其他工具集成。
使用 Ansible 测试框架 - Ansible 测试框架(例如 Molecule 和 Testinfra)允许您以可重复和自动化的方式测试 Ansible playbook。测试您的剧本可确保其按预期工作并防止生产中发生错误和问题。
通过使用这些额外的提示和技巧,您可以将 Ansible 的功能和灵活性扩展到服务器管理之外,并实现高度自动化和高效的基础设施,以满足您的特定需求和要求。 Ansible 是一款多功能且功能强大的自动化工具,可以帮助您管理整个基础设施,从服务器到网络再到容器等。
结论
在本文中,我们讨论了如何在 Ubuntu 20.04 上安装和配置 Ansible。我们介绍了安装 Ansible、配置主机文件、测试 Ansible、创建 playbook 和运行 playbook 的步骤。我们还介绍了一些额外的 Ansible 配置,可以添加这些配置来增强其功能。
Ansible 是一个功能强大的自动化工具,可以在管理大量服务器时节省大量时间和精力。使用 Ansible,任务可以自动化,这使得整个过程更快、更高效。