在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:

10. 参考文档

Ansible installation guide

Ansible 7 Porting Guide