基本介绍:
软件由python语言开发
其功能实现基于SSH远程连接服务
可以实现批量系统配置、批量软件部署、批量文件拷贝、批量运行命令等功能
不需要单独安装客户端(no agents),基于系统自带的sshd服务,sshd就相当于ansible的客户端。
不需要服务端(no servers)
需要依靠大量的模块实现批量管理。
配置文件/etc/ansible/ansible.cfg,不用配置
先决条件:
您将Ansible安装在控制节点上,然后使用SSH(默认情况下)与您的受管节点(您要自动化的那些终端设备)进行通信。
1.1.1 控制节点要求
当前,Ansible可以在安装了Python 2(2.7版)或Python 3(3.5版及更高版本)的任何计算机上运行。这包括Red Hat,Debian,CentOS,macOS,任何BSD等。控制节点不支持Windows,请在Matt Davis的博客文章中了解有关此内容的更多信息。
选择控制节点时,请记住,任何管理系统都可从在被管理机器附近运行而受益。如果您正在云中运行Ansible,请考虑从该云中的计算机上运行它。在大多数情况下,这将比在开放Internet上更好。
注意
默认情况下,macOS配置了少量文件句柄,因此,如果要使用15个或更多的fork,则需要使用来提高ulimit 。此命令还可以修复任何“打开文件过多”错误。sudo launchctl limit maxfiles unlimited
警告
请注意,某些模块和插件还有其他要求。对于模块,需要在“目标”计算机(受管节点)上满足这些要求,并应在特定于模块的文档中列出。
1.1.2 受管节点要求
在受管节点上,您需要一种通信方式,通常是SSH。默认情况下,它使用SFTP。如果不可用,可以在ansible.cfg中切换到SCP 。您还需要Python 2(2.6版或更高版本)或Python 3(3.5版或更高版本)。
注意
如果在远程节点上启用了SELinux,则还需要在Ansible中使用任何与复制/文件/模板相关的功能之前,在它们上安装libselinux-python。您可以使用Ansible中的yum模块或dnf模块在没有此软件包的远程系统上安装此软件包。
默认情况下,在剧本中的第一个Python模块在主机上运行之前,Ansible会尝试在该主机上发现合适的Python解释器。您可以通过将ansible_python_interpreter库存变量设置为特定的解释器来覆盖发现行为,也可以采用其他方式。有关详细信息,请参见解释器发现。
Ansible的raw模块和script模块不依赖于客户端安装的Python来运行。从技术上讲,您可以使用原始模块来使用Ansible安装兼容版本的Python ,然后再使用其他模块。例如,如果您需要将Python 2引导到基于RHEL的系统上,则可以按以下方式安装它:
$ ansible myhost --become -m raw -a “yum install -y python2”
ansible安装:
yum install -y ansible — ansible软件需要配置epel源