Ansible(2):安装、更新Ansible

发布时间 2023-08-10 16:18:13作者: ShineLe

学习自:Installing Ansible — Ansible Documentation

1、前言

Ansible是一种无代理自动化工具,只需要安装在某个单独的主机上(该主机称为控制节点Control Node)。通过控制节点,Ansible可以通过SSH、Powershell和其他众多的传输工具遥控管理整套机器或设备集群(这些集群称之为托管节点),这一过程只需要一个简单的命令行接口,不需要任何数据库或守护进程

2、控制节点需求

对于控制节点而言,我们可以用几乎全部的类UNIX机器,这些机器上装有Python 3.9或更新的版本。这些机器包括Red Hat、Debian、Ubuntu、macOS、BSDs以及一些Windows子系统下的Linux发行版( Windows Subsystem for Linux (WSL) distribution. )。不在WSL中的Windows本身不支持作为一个控制节点。

对于控制节点,更多内容可以看Matt Davis’ blog post 。

3、托管节点要求

托管节点是指由Ansible管理的机器,这些机器不需要安装Ansible,但是却需要Python 2.7或Python 3.5-3.11来运行Ansible库代码。托管节点还需要一个用户账户来保证可以通过交互式POSIX Shell来SSH其他节点

网络模块是一个例外,不需要在托管设备上安装Python,详见Network modules

4、节点要求总结

关于不同版本上的控制和托管节点要求,可以在ansible-core support matrix.上找到更多细节。

5、选择安装某个版本的Ansible包

Ansible社区安装包会通过两种方式发布:①一个极简的运行时安装包称为ansible-core;②一个更大的包称为ansible,这个包增加了一个社区策划(community-curated)的Ansible集群选择,用以自动化更多种类的设备。

下文中都是用ansible包,但是如果你倾向于用一个更简单的包,并将其单独安装到你所需的Ansible集群上,你可以用ansible-coreansible或ansible-core包在你的操作系统包管理器中都是可用的,你可以根据你倾向的方案自由选择。

这些安装说明只涵盖官方支持的使用pip安装python包的多种方法。

对于ansible-core的版本,可以看 Ansible package release status table 。

6、用pipx安装、更新ansible

在一些系统中,可能不支持用pip安装ansible。这种情况下,可以用pipx作为替换。

pipx的安装步骤可以看 pipx installation instructions 。

安装

python3 -m pip install --user pipx
python3 -m pipx ensurepath

更新

python3 -m pip install --user -U pipx

7、安装ansible

ansible

pipx install --include-deps ansible

ansible-core

pipx install ansible-core

安装指定版本的ansible-core

pipx install ansible-core==2.13.3

8、更新Ansible

更新为最新的发行版本

pipx upgrade ansible

9、安装额外的Python依赖

安装那些有可能用到的Python依赖,如argcomplete

pipx inject ansible argcomplete

10、用pip安装和更新Ansible

定位Python

定位你想要运行Ansible的Python编辑器的位置,本文所用的Python指令都是python3,这是因为在/usr/bin下存在指令python3,它定位(软链接)到/usr/;ocal/python/bin/python3

确保pip可用

使用如下指令验证pip是否可用

python3 -m pip -V

正常情况下

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

如果出现No module named pip,那么还需要在选中的python编译器中安装pip

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

安装Ansible

python3 -m pip install --user ansible

指定版本的ansible-core

python3 -m pip install --user ansible-core==2.12.3

更新Absible

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