安装 Ansible
Ansible 是一款无代理的自动化工具,您可以在单个主机(称为控制节点)上安装它。
从控制节点,Ansible 可以通过 SSH、Powershell 远程控制和众多其他传输方式远程管理整个机器群和设备(称为被管理节点),所有这些都来自简单的命令行界面,无需数据库或守护进程。
控制节点要求
对于您的控制节点(运行 Ansible 的机器),您可以使用几乎任何安装了 Python 的类 UNIX 机器。这包括 Red Hat、Debian、Ubuntu、macOS、BSDs 和 Windows,前提是在 Windows 子系统 for Linux (WSL) 发行版 下。没有 WSL 的 Windows 本身不支持作为控制节点;有关更多信息,请参阅 Matt Davis 的博客文章。
被管理节点要求
被管理节点(Ansible 正在管理的机器)不需要安装 Ansible,但需要 Python 来运行 Ansible 生成的 Python 代码。被管理节点还需要一个用户帐户,该帐户可以通过 SSH 访问具有交互式 POSIX shell 的节点。
注意
模块要求可能存在例外情况。例如,网络模块不需要被管理设备上的 Python。请参阅您使用的模块的文档。
节点要求总结
您可以在 ansible-core 控制节点 Python 支持 和 ansible-core 支持矩阵 部分找到有关每个 Ansible 版本的控制节点和被管理节点要求(包括 Python 版本)的详细信息。
选择要安装的 Ansible 软件包和版本
Ansible 的社区软件包以两种方式分发
ansible-core
:一个包含一组 Ansible.Builtin 的极简语言和运行时包。ansible
:一个大得多的“包含电池”包,它添加了社区精选的 Ansible 集合,用于自动化各种设备。
选择适合您需求的软件包。以下说明使用 ansible
作为软件包名称,但如果您希望从最小包开始并分别安装所需的 Ansible 集合,则可以将 ansible-core
替换为 ansible-core
。
ansible
或 ansible-core
软件包可能在您的操作系统包管理器中可用,您可以随意使用您喜欢的方法安装这些软件包。有关更多信息,请参阅 在特定操作系统上安装 Ansible 指南。这些安装说明仅涵盖使用 pip
安装 Python 软件包的官方支持方法。
请参阅 Ansible 软件包发布状态表 以了解软件包中包含的 ansible-core
版本。
使用 pipx 安装和升级 Ansible
在某些系统上,由于操作系统开发人员的决定,可能无法使用 pip
安装 Ansible。在这种情况下,pipx
是一个广泛可用的替代方案。
这些说明不会介绍安装 pipx
的步骤;如果需要这些说明,请继续前往 pipx 安装说明 以获取更多信息。
安装 Ansible
在您的环境中使用 pipx
来安装完整的 Ansible 软件包
$ pipx install --include-deps ansible
您可以安装最小的 ansible-core
软件包
$ pipx install ansible-core
或者,您可以安装特定版本的 ansible-core
$ pipx install ansible-core==2.12.3
升级 Ansible
要将现有 Ansible 安装升级到最新发布版本
$ pipx upgrade --include-injected ansible
安装额外的 Python 依赖项
要安装可能需要的其他 Python 依赖项,例如安装下面描述的 argcomplete
Python 包
$ pipx inject ansible argcomplete
包含 --include-apps
选项,以便额外的 Python 依赖项中的应用程序在您的 PATH 上可用。这使您能够从 shell 执行这些应用程序的命令。
$ pipx inject --include-apps ansible argcomplete
使用 pip 安装和升级 Ansible
查找 Python
查找并记住您要用来运行 Ansible 的 Python 解释器的路径。以下说明将此 Python 称为 python3
。例如,如果您已确定要将 /usr/bin/python3.9
中的 Python 用作要安装 Ansible 的 Python,请指定该路径,而不是 python3
。
确保 pip
可用
要验证您首选的 Python 是否已安装 pip
$ python3 -m pip -V
如果一切正常,您应该看到类似以下内容
$ python3 -m pip -V
pip 21.0.1 from /usr/lib/python3.9/site-packages/pip (python 3.9)
如果是这样,则 pip
可用,您可以继续 下一步。
如果您看到类似 No module named pip
的错误,则需要在继续操作之前,在您选择的 Python 解释器下安装 pip
。这可能意味着安装额外的操作系统软件包(例如 python3-pip
),或者直接从 Python Packaging Authority 安装最新的 pip
,方法是运行以下命令
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python3 get-pip.py --user
您可能需要执行一些其他配置,然后才能运行 Ansible。有关更多信息,请参阅有关 安装到用户站点 的 Python 文档。
安装 Ansible
在您选择的 Python 环境中使用 pip
为当前用户安装完整的 Ansible 软件包
$ python3 -m pip install --user ansible
您可以为当前用户安装最小的 ansible-core
软件包
$ python3 -m pip install --user ansible-core
或者,您可以安装特定版本的 ansible-core
$ python3 -m pip install --user ansible-core==2.12.3
升级 Ansible
要将此 Python 环境中现有的 Ansible 安装升级到最新发布的版本,只需在上面的命令中添加 --upgrade
。
$ python3 -m pip install --upgrade --user ansible
将 Ansible 安装到容器中
无需手动安装 Ansible 内容,您可以简单地构建一个执行环境容器镜像,或将可用的社区镜像之一用作您的控制节点。有关详细信息,请参阅 执行环境入门指南。
安装用于开发
如果您正在测试新功能、修复错误或以其他方式与开发团队合作更改核心代码,则可以安装并运行来自 GitHub 的源代码。
注意
您应仅在修改 ansible-core
或尝试使用正在开发的功能时才安装并运行 devel
分支。这是一个快速变化的代码来源,可能会在任何时候变得不稳定。
有关参与 Ansible 项目的更多信息,请参阅 Ansible 社区指南。
有关创建 Ansible 模块和集合的更多信息,请参阅 开发者指南。
使用 pip
从 GitHub 安装 devel
您可以使用 pip
直接从 GitHub 安装 ansible-core
的 devel
分支。
$ python3 -m pip install --user https://github.com/ansible/ansible/archive/devel.tar.gz
您可以在上面提到的 URL 中用任何其他分支或标签替换 devel
,以安装旧版本的 Ansible、标记的 alpha 或 beta 版本以及发布候选版本。
从克隆运行 devel
分支
ansible-core
很容易从源代码运行。您不需要 root
权限来使用它,而且实际上不需要安装任何软件。不需要守护进程或数据库设置。
克隆
ansible-core
存储库。$ git clone https://github.com/ansible/ansible.git $ cd ./ansible
设置 Ansible 环境。
使用 Bash。
$ source ./hacking/env-setup
使用 Fish。
$ source ./hacking/env-setup.fish
要抑制虚假警告/错误,请使用
-q
。$ source ./hacking/env-setup -q
安装 Python 依赖项。
$ python3 -m pip install --user -r ./requirements.txt
更新本地计算机上的
ansible-core
的devel
分支。使用带重新基准的拉取,以便重新播放任何本地更改。
$ git pull --rebase
确认您的安装
您可以通过检查版本来测试 Ansible 是否已正确安装。
$ ansible --version
此命令显示的版本是已安装的关联 ansible-core
包的版本。
要检查已安装的 ansible
包的版本,请执行以下操作。
$ ansible-community --version
添加 Ansible 命令 shell 完成
您可以通过安装一个名为 argcomplete
的可选依赖项来添加 Ansible 命令行实用程序的 shell 完成。它支持 bash,并对 zsh 和 tcsh 提供有限的支持。
有关安装和配置的更多信息,请参阅 argcomplete 文档。
安装 argcomplete
如果您选择了 pipx
安装说明。
$ pipx inject --include-apps ansible argcomplete
如果您选择了 pip
安装说明。
$ python3 -m pip install --user argcomplete
配置 argcomplete
有两种方法可以配置 argcomplete
以允许对 Ansible 命令行实用程序进行 shell 完成:全局或按命令。
全局配置
全局完成需要 bash 4.2。
$ activate-global-python-argcomplete --user
这将在用户位置写入一个 bash 完成文件。使用 --dest
更改位置,或使用 sudo
在全局范围内设置完成。
按命令配置
如果您没有 bash 4.2,则必须独立注册每个脚本。
$ eval $(register-python-argcomplete ansible)
$ eval $(register-python-argcomplete ansible-config)
$ eval $(register-python-argcomplete ansible-console)
$ eval $(register-python-argcomplete ansible-doc)
$ eval $(register-python-argcomplete ansible-galaxy)
$ eval $(register-python-argcomplete ansible-inventory)
$ eval $(register-python-argcomplete ansible-playbook)
$ eval $(register-python-argcomplete ansible-pull)
$ eval $(register-python-argcomplete ansible-vault)
您应该将上面的命令放入 shell 的配置文件中,例如 ~/.profile
或 ~/.bash_profile
。
在 zsh 或 tcsh 中使用 argcomplete
请参阅 argcomplete 文档。
另请参阅
- Ad hoc 命令简介
基本命令示例
- 使用剧本
学习 Ansible 的配置管理语言
- 在 Ansible 安装期间,如何处理 Ansible 包依赖项所需的包依赖项?
与 Ansible 安装相关的常见问题解答
- 论坛
加入 Ansible 社区论坛以获取帮助并分享见解。
- 实时聊天
如何加入 Ansible 聊天频道。