在Windows上安装Ansible

1. 前言

Ansible 是一种无代理自动化工具,可安装在单个主机(称为控制节点)上。从控制节点,Ansible 可以通过 SSH、Powershell 远程处理和许多其他传输远程管理整个机器和其他设备(称为托管节点),所有这些都是通过一个简单的命令行实现的,不需要数据库或守护程序。

本教程是安装环境为 Windows, 在 windows 上要运行 Ansible 还需要安装 Msys2, 主要用于运行 GNU 软件的开发和运行环境。同时它也是一个在 Cygwin (POSIX 兼容性层) 和 MinGW-w64(从”MinGW-生成”)基础上产生的,追求更好的互操作性的 Windows 软件.

2. 安装 MSys2

安装 MSys2 可以参考我的教程MSys2 安装教程

安装好 MSys2 后即可执行以下命令安装 ansible

1
pacman -S ansible

3. 控制节点要求

对于您的控制节点(运行 Ansible 的机器),您可以使用几乎任何安装了 Python 3.9 或更新版本的类 UNIX 的机器。这包括 Red Hat、Debian、Ubuntu、macOS、BSD 和 Windows Subsystem for Linux(WSL)发行版下的 Windows。没有 WSL 的 Windows 本机不支持作为控制节点;有关更多信息,请参阅Matt Davis 的博客文章

4. 受管节点要求

受管节点(Ansible 正在管理的机器)不需要安装 Ansible,但需要 Python 2.7 或 Python 3.5-3.11 来运行 Ansible 库代码。被管理节点还需要一个用户帐户,该帐户可以通过 SSH 连接到节点。

注意: 网络模块是一个例外,并且在受管设备上不需要 Python。请参阅网络模块

5. 节点需求汇总

下表列出了控制节点和受管节点上所需的 Python 的当前版本和历史版本。

ansible-core VersionControl node PythonManaged node Python
2.11Python 2.7, Python 3.5 - 3.9 [†]Python 2.6 - 2.7, Python 3.5 - 3.9
2.12Python 3.8 - 3.10Python 2.6 - 2.7, Python 3.5 - 3.10
2.13Python 3.8 - 3.10Python 2.7, Python 3.5 - 3.10
2.14Python 3.9 - 3.11Python 2.7, Python 3.5 - 3.11

6. 选择要安装的 Ansible 软件包和版本

Ansible 社区包以两种方式分发:一种是名为 Ansible-core 的极简语言和运行时包,另一种是更大的名为 anssible 的包,它添加了社区策划的 Ansible 集合,用于自动化各种设备。选择适合您需求的包装;以下是 ansible 的安装步骤,但如果您想要安装 ansible core,并且只单独安装所需的 ansible 集合,则可以将安装步骤中的 ansible 替换为 ansible-core。在您的操作系统包管理器中可能会提供 ansible 或 ansible-core,您可以使用自己喜欢的方法免费安装这些包。这些安装说明仅涵盖官方支持的使用 pip 安装 python 包的方法。

6.1. 定位 Python

找到并记住要用于运行 Ansible 的 Python 路径。以下安装说明将此 python 称为 python3。例如,如果您已经确定希望/usr/bin/python3.9 中的 Python 安装 Ansible, 请指定 Python3.9 而不是 python3。

6.2. 确保 pip 已经安装

要验证是否已经为您首选的 Python 安装了 pip,请执行以下操作:

1
python3 -m pip -V

如果一切顺利,您应该看到以下内容:

1
2
python3 -m pip -V
pip 21.0.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)

如果看到的是如上输出,那么说明 pip 是可用的,您可以继续下一步。
如果您看到类似 No module named pip 这样的错误,那么在继续操作之前,您需要需要先安装 pip。这可能意味着安装额外的操作系统包(例如,python3-pip),或者通过运行以下命令直接从 Python Packaging Authority 安装最新的 pip:

1
2
3
4

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --user

您可能需要执行一些额外的配置,然后才能运行 Ansible。有关更多信息,请参阅有关安装到用户站点的 Python 文档

7. 安装 Ansible

在您选择的 Python 中使用 pip 为当前用户安装您选择的 Ansible 包:

1
python3 -m pip install --user ansible

或者,您可以在此 Python 环境中安装特定版本的 ansible-core:

1
python3 -m pip install --user ansible-core==2.14.2

8. 升级 Ansible

要将此 Python 环境中现有的 Ansible 安装升级到最新发布的版本,只需在上面的命令中添加–upgrade:

1
2
3

python3 -m pip install --upgrade --user ansible

9. 验证是否安装成功

您可以通过检查版本来测试 Ansible 是否已正确安装:

1
ansible --version

此命令显示的版本适用于已安装的相关 ansible-core 包。

要检查已安装的 ansible 软件包的版本,请执行以下操作:

1
python3 -m pip show ansible

安装成功后, 可以看到如下输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

$ansible --version
ansible [core 2.14.2]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/your_name/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.11/site-packages/ansible
ansible collection location = /home/your_name/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.11.2 (main, Feb 14 2023, 18:12:17) [GCC 11.3.0] (/usr/bin/python.exe)
jinja version = 3.1.2
libyaml = True

$python3 -m pip show ansible
Name: ansible
Version: 7.2.0
Summary: Radically simple IT automation
Home-page: https://ansible.com/
Author: Ansible, Inc.
Author-email: info@ansible.com
License: GPLv3+
Location: /usr/lib/python3.11/site-packages
Requires: ansible-core
Required-by:

相关阅读

Ansible 教程

使用 ansible 安装 java

10. 参考文档

Ansible installation guide

Ansible 7 Porting Guide

作者

鹏叔

发布于

2021-10-28

更新于

2024-10-22

许可协议

评论