本文源自Ansible官方安装手册,本人将其翻译以便大家参考,大家根据自己情况选择安装的平台。目前不支持Windows。我自己是选择安装在Ubuntu。平台选择不用过于纠结,先用起来再说!
下面来介绍如何在不同平台上安装Ansible。 Ansible是一种无代理程序自动化工具,默认情况下会通过SSH协议管理计算机。安装后,Ansible不会添加数据库,并且将没有启动或继续运行的守护程序。它就可以从该中心管理所有远程计算机。当Ansible管理远程计算机时,它不会在其上安装或运行任何软件。
在Controller节点上安装完Ansible后,默认情况下,将会使用SSH与Managed节点进行通信。
目前,Ansible可以运行在装有Python2(2.7)或Python3(3.5版及更高版本)的任何机器上。包括Red Hat,Debian,CentOS,macOS,任何BSD等。目前Controller节点不支持安装在Windows上。
注意:默认情况下,macOS配置了比较少量的文件handle,因此,如果要使用15个或更多的fork,则需要使用下面的命令来提高ulimit 。此命令还可以修复“打开文件过多”的错误。
sudo launchctl limit maxfiles unlimited
警告:请注意,对于一些特殊的模块和插件还有其他要求。这对Managed节点有些特殊要求,这些在特定模块的文档中均有列出。
在Managed节点上,您需要开启一种管控方式,通常是SSH。默认情况下,它使用SFTP。如果SFTP不可用,可以在ansible.cfg中切换到SCP。
注意:如果在Managed节点上启用了SELinux,在进行任何与复制/文件/模板相关的功能之前,需要在Managed节点上安装libselinux-python。您也可以使用Ansible中的yum模块或dnf模块在没有此软件包的Managed节点上安装此软件包。
默认情况下,Ansible使用位于/usr/bin/python的Python解释器运行其模块。但是对于某些Linux发行版可能仅安装了Python 3解释器 。在这些系统上,您可能会看到类似以下的错误:
"module_stdout": "/bin/sh: /usr/bin/python: No such file or directory\r\n"
您可以将ansible_python_interpreter清单变量设置为指向您的解释器,或者可以安装Python 2解释器以供模块使用。如果未将Python 2解释器安装到/ usr / bin / python,则仍然需要设置ansible_python_interpreter。
Ansible的raw模块和script模块不依赖于客户端安装的Python来运行。从技术上讲,您可以使用Ansible使用raw模块安装兼容版本的Python ,然后通过使用该模块使用其他所有模块。例如,如果需要将Python 2引导到基于RHEL的系统上,则可以按以下方式安装它:
$ ansible myhost --become -m raw -a "yum install -y python2"
根据您的特定需要选择安装Ansible版本。您可以选择以下任何一种方式来安装Ansible:
注意:仅devel当您正在修改Ansible引擎或尝试开发中的功能时,才应运行Ansible 。这是一个快速变化的代码源,并且随时可能变得不稳定。
Ansible一年会发布2至3个新版本。由于发布周期短,与在稳定分支上保持反向移植相比,通常会在下一发行版中修复一些小错误。必要时,主要错误仍将具有维护版本,但是这种情况很少见。
在Fedora上:
$ sudo dnf install ansible
在RHEL和CentOS上:
$ sudo yum install ansible
可从Ansible Engine存储库中获得RHEL 7和RHEL 8的RPM 。
要为RHEL 8启用Ansible Engine存储库,请运行以下命令:
$ sudo subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms
要为RHEL 7启用Ansible Engine存储库,请运行以下命令:
$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms
当前可支持的RHEL,CentOS和Fedora版本的RPM可从EPEL以及releases.ansible.com获得。
可在此处的PPA中获得Ubuntu版本。
在您的计算机上配置PPA并安装Ansible,请运行以下命令:
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo apt-add-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible
注意:在较旧的Ubuntu发行版中,“ software-properties-common”被称为“ python-software-properties”。您可能在旧版本中使用apt-get而不是apt。另外,请注意,只有较新的发行版(即18.04、18.10等)才带有-u或–update标志,因此请相应地调整脚本。
Debian用户可以使用与Ubuntu PPA相同的来源。
将以下行添加到/etc/apt/sources.list中:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
然后运行以下命令:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible
$ emerge -av app-admin/ansible
虽然Ansible适用于Python 2和3版本,但是FreeBSD对于每个Python版本都有不同的软件包。因此要在FreeBSD上安装的话,您可以分别使用:
Python2.7
$ sudo pkg install py27-ansible
Python3.6
$ sudo pkg install py36-ansible
您可能还想通过端口安装:
$ sudo make -C /usr/ports/sysutils/ansible install
在Mac上安装Ansible的首选方法是使用pip。
Ansible可以与Python软件包管理器pip一起安装。应当注意,由于openssl的要求,macOS要求使用的pip与* nix略有不同,因此,pip必须作为模块运行。
对于macOS,无需使用sudo或安装其他修复程序,只需访问pip的Python模块的namespace即可:
$ python -m pip install --user ansible
或者,如果您想搞个开发版本:
$ python -m pip install --user git+https://github.com/ansible/ansible.git@devel
如果要在macOS Mavericks(10.9)上安装,则编译器可能会产生一些问题。解决方法是执行以下操作:
$ CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install --user ansible
为了使用paramiko连接插件或需要paramiko的模块,请安装所需的模块:
$ python -m pip install --user paramiko
以在Ubuntu上安装的Ansible为列。
通过命令:
aleli@ansible-controller:~$ ansible --version
ansible 2.9.7
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/aleli/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Apr 15 2020, 17:20:14) [GCC 7.5.0]
aleli@ansible-controller:~$
Ansible 的配置文件路径如下,包括Ansible的所需的配置文件。
aleli@ansible-controller:~$ cd /etc/ansible/
aleli@ansible-controller:/etc/ansible$ pwd
/etc/ansible
aleli@ansible-controller:/etc/ansible$ ls
ansible.cfg hosts roles
aleli@ansible-controller:/etc/ansible$
到这就可以恭喜你了,成功安装了ansible,可以开始耍起来了。之后会写一些ansible的使用案例。谢谢大家的阅读!