设置Ansible的准备工作
在我们的设置中开始进行Ansible的安装和配置之前,需要满足一些准备工作。
控制节点要求
当前,Ansible可以在装有Python 2(2.7版)或者Python 3(3.5版及更高版本)的任何计算机上运行。
这包括Red Hat,Debian,CentOS,macOS,任何BSD等。
Windows是控制节点的"不支持"。
默认情况下,macOS配置了少量文件句柄,因此,如果要使用15个或者更多的派生,则需要使用sudo launchctl limit maxfiles unlimited来提高ulimit。
此命令还可以修复任何"太多打开的文件
"错误。节点必须有权访问互联网,才能从第三方存储库下载并安装rpm。
受管节点要求
- 在受管节点上,我们需要一种通信方式,通常是SSH。
默认情况下,它使用SFTP。
如果不可用,则可以在" ansible.cfg"中切换到SCP。
我们还需要Python 2(2.6版或者更高版本)或者Python 3(3.5版或者更高版本)。
我们不会在环境中使用SELinux,但是如果我们需要使用SELinux,请按照Ansible文档进行其他操作
在所有节点上更新/etc/hosts
我们可以配置BIND DNS服务器来解析主机名,也可以在设置中使用控制器和托管主机的主机名和IP详细信息更新/etc/hosts
文件。
~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.43.154 controller controller.example.com 192.168.43.48 server1 server1.example.com 192.168.43.148 server2 server2.example.com
与Amazon AWS一起使用时,公共IP可能会不断变化,因此在某个时间点上,我们可能不得不依靠动态列表而不是静态列表。
但是在"/etc/hosts"中配置私有地址还是一个好主意,或者如果我们使用其他设置,则应该使用"/etc/hosts"来解析主机名,而不要使用" IP地址"来与托管服务器进行通信。
节点。
在Ansible客户端节点上安装强制性准备工作
现在我们不需要在客户端节点上运行任何代理,但是我们确实需要在受管节点上安装python,控制器才能使用受管节点上的模块执行剧本。
在所有客户端节点上安装" python3"(如果尚未安装)。
要安装python3,我们将使用默认的包管理器
[root@server-1 ~]# dnf -y install python36.x86_64 [root@server-2 ~]# dnf -y install python36.x86_64
验证两个受管节点上已安装的rpm版本
[root@server-1 ~]# rpm -qa | grep python36 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64 [root@server-2 ~]# rpm -qa | grep python36 python36-3.6.8-2.module_el8.1.0+245+c39af44f.x86_64
尽管我还将与我们分享在不将python安装在受管节点上的情况下使用Ansible的技巧。
但是,如果可能的话,强烈建议我们在受管节点上也安装python3.