Ansible 是一款免费且易于使用的自动化工具,用于从单台计算机管理多个远程主机。它为您提供了针对大量远程主机的轻松配置。例如,您在多台机器上执行相同的任务,Ansible 为您提供了自动执行这些任务的选项。
Ansible 是 Chef 和 Puppet 等其他流行基础设施自动化工具的更好替代品。您无需在节点上安装任何客户端软件即可通过 Ansible 服务器进行管理。它使用 SSH 连接在主机上执行任务。
本教程将帮助您在 Debian 10 Linux 系统上安装和配置 Ansible。
先决条件
对于本教程,我有以下主机:
-
一个控制节点– 要使用 Ansible 构建基础设施,您需要一个运行 Ansible 服务器的控制节点。这称为 Ansible 控制节点。
-
One or more Hosts – We have three hosts running with different-2 operating systems.
- 两台装有 Ubuntu 20.04 LTS 的主机
- 一台 CentOS 8 主机
第 1 步 – 配置 SSH 密钥
Ansible 控制节点使用 ssh 连接来连接主机。您可以将 Ansible 配置为使用密码或基于密钥的 ssh 访问连接主机。在本教程中,我们将使用两种类型(基于密码和密钥的 ssh)从控制节点连接主机。
登录 Ansible 控制节点并生成 ssh 密钥对(如果未生成):
ssh-keygen -t rsa
只需按“Enter”即可完成命令要求的所有输入。
然后将公钥复制到远程主机,您需要通过基于密钥进行连接:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.1.101
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.1.102
步骤 2 – 在 Debian 上安装 Ansible
Ansible debian 软件包可在官方 Apt 存储库下获取。您只需将 PPA 添加到您的系统即可。使用以下命令将 Ansible debian 存储库添加到您的系统:
sudo apt-add-repository ppa:ansible/ansible
软件更新实用程序将更新系统上的软件包缓存。因此,您必须运行以下命令在 Debian 系统上安装或更新 Ansible
sudo apt update
sudo apt install ansible
按“Y”确认所有安装以完成安装过程。接下来,需要配置 Ansible 服务器
第 3 步 – 创建库存文件
您已在控制节点上安装了 Ansible 服务器。
现在,您需要将主机添加到 Ansible 服务器。 Ansible 允许以主机和组的形式管理主机。组用于在其下定义的所有远程主机上执行一项任务。
单个主机可以添加到多个组。编辑 Ansible 主机配置文件。例如:
sudo nano /etc/ansible/hosts
添加您的主机并按组组织它们:
[webservers]
web-host1
web-host2
[dbservers]
db-host1
[ubuntu]
web-host1
db-host1
[centos]
web-host2
下图将帮助您了解组和组下的主机。
每台主机配置
您可以为各个主机创建配置文件。所有主机配置文件都位于 /etc/ansible/host_vars 目录下,且与主机名相同。
sudo mkdir /etc/ansible/host_vars/
sudo vi /etc/ansible/host_vars/web-host1
-
第一台主机 – /etc/ansible/host_vars/web-host1
ansible_ssh_host: 10.0.1.101
ansible_ssh_port: 22
ansible_ssh_user: root
-
第二台主机 – /etc/ansible/host_vars/web-host2
ansible_ssh_host: 10.0.1.102
ansible_ssh_port: 22
ansible_ssh_user: root
-
第三台主机 – /etc/ansible/host_vars/db-host1
ansible_ssh_host: 10.0.1.103
ansible_ssh_port: 22
ansible_ssh_user: root
如果您没有使用步骤 1 来建立该主机的 ssh 连接。您还可以将以下方法之一添加到 web-hosts1 配置文件中以进行身份验证。
ansible_ssh_pass: secret_password
ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
组变量配置
您可以在组配置下配置组的公共变量设置。组文件名必须与下面的组名(例如:webservers)相同group_vars
目录。
sudo mkdir /etc/ansible/group_vars
sudo vi /etc/ansible/group_vars/webservers
将公共变量添加到该文件中,供该组下添加的所有主机使用。
ansible_ssh_port: 22
ansible_ssh_user: root
第 4 步 – 测试 Ansible 连接
您的 Ansible 已准备好使用。要测试所有节点的连接性,请使用 ping 模块。登录到您的 Ansible 服务器并执行以下命令:
ansible -m ping all
您还可以测试特定主机或组的连接性。
ansible -m ping web-host1
## Specific host
ansible -m ping webservers
## Specific group
您还可以使用 Ansible shell 模块运行任何 Linux 命令。例如,执行以下命令来测试 web-host1 上的可用内存。
ansible -m shell -a 'free -m' web-host1
您还可以为一个组执行相同的任务。只需使用组名而不是主机名。
结论
在本教程中,您学习了在 Debian 10 Linux 系统上安装和配置 Ansible。