安装 Ansible

Ansible 是一种无需代理的自动化工具,您可以在单个主机(称为控制节点)上安装它。

从控制节点,Ansible 可以通过 SSH、Powershell 远程处理和许多其他传输方式远程管理整个机器和设备群(称为被管理节点),所有这些都来自一个简单的命令行界面,无需数据库或守护程序。

控制节点要求

对于您的控制节点(运行 Ansible 的机器),您可以使用几乎任何安装了 Python 的类 Unix 机器。这包括 Red Hat、Debian、Ubuntu、macOS、BSD 和 Windows 子系统 (WSL) 发行版 下的 Windows。不带 WSL 的 Windows 作为控制节点不受原生支持;有关更多信息,请参阅 Matt Davis 的博客文章

被管理节点要求

被管理节点(Ansible 正在管理的机器)不需要安装 Ansible,但需要 Python 来运行 Ansible 生成的 Python 代码。被管理节点还需要一个用户帐户,该帐户可以通过 SSH 使用交互式 POSIX shell 连接到该节点。

注意

模块要求可能存在例外情况。例如,网络模块不需要被管理设备上的 Python。请参阅您使用的模块的文档。

节点要求总结

您可以在 ansible-core 控制节点 Python 支持ansible-core 支持矩阵 部分中找到有关控制节点和被管理节点要求(包括 Python 版本)的详细信息,这些信息适用于每个 Ansible 版本。

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

Ansible 的社区软件包以两种方式分发

  • ansible-core:一个极简的语言和运行时软件包,包含一组 Ansible.Builtin

  • ansible:一个更大的“包含电池”软件包,它添加了一组社区策划的 Ansible 集合,用于自动化各种设备。

选择适合您需求的软件包。以下说明使用 ansible 作为软件包名称,但如果您希望从最小软件包开始并单独安装所需的 Ansible 集合,则可以将其替换为 ansible-core

ansibleansible-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,请指定它而不是 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。这可能意味着安装额外的 OS 软件包(例如 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-coredevel 分支。

$ python3 -m pip install --user https://github.com/ansible/ansible/archive/devel.tar.gz

您可以将上面提到的 URL 中的 devel 替换为 GitHub 上的任何其他分支或标签,以安装旧版本的 Ansible、标记为 alpha 或 beta 版本以及候选版本。

从克隆中运行 devel 分支

ansible-core 很容易从源代码运行。您不需要 root 权限即可使用它,并且实际上没有任何软件需要安装。不需要守护进程或数据库设置。

  1. 克隆 ansible-core 仓库。

    $ git clone https://github.com/ansible/ansible.git
    $ cd ./ansible
    
  2. 设置 Ansible 环境。

    • 使用 Bash。

      $ source ./hacking/env-setup
      
    • 使用 Fish。

      $ source ./hacking/env-setup.fish
      
    • 要抑制虚假警告/错误,请使用 -q

      $ source ./hacking/env-setup -q
      
  3. 安装 Python 依赖项。

    $ python3 -m pip install --user -r ./requirements.txt
    
  4. 更新本地机器上的 ansible-coredevel 分支。

    使用带重新设置基准的拉取,以便重新播放任何本地更改。

    $ 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 文档

另请参阅

临时命令简介

基本命令示例

使用 playbook

学习 Ansible 的配置管理语言

如何在 Ansible 安装期间处理 Ansible 软件包依赖项所需的软件包依赖项?

与 Ansible 安装相关的常见问题解答

论坛

加入 Ansible 社区论坛以获取帮助和分享见解。

实时聊天

如何加入 Ansible 聊天频道