当前位置: 首页 > 科技观察

如何在Debian10上安装Ansible

时间:2023-03-14 19:55:22 科技观察

自动化是当今IT领域的热门话题,每个组织都开始采用自动化工具,如Puppet、Ansible、Chef、CFEngine、Foreman和Katello。在这些工具中,Ansible是几乎所有IT组织管理UNIX和Linux系统的首选。在本文中,我们将演示如何在Debian10Sever上安装和使用Ansible。我的实验室环境:Debian10–Ansibleserver/controlnode–192.168.1.14CentOS7–Ansiblehost(webserver)–192.168.1.15CentOS7–Ansiblehost(DBserver)–192.169.1.17我们也会演示如何使用Ansible服务器管理Linux服务器在Debian10服务器上安装Ansible我假设您在Debian10中有一个具有root或sudo权限的用户。在我的系统中,我有一个名为pkumar的本地用户,它具有sudo权限。Ansible2.7包存在于Debian10的默认仓库中,在命令行运行如下命令安装Ansible,root@linuxtechi:~$sudoaptupdateroot@linuxtechi:~$sudoaptinstallansible-y运行如下命令即可验证Ansible版本,root@linuxtechi:~$sudoansible--versionansible-version要安装最新版本的Ansible2.8,首先我们必须设置Ansible存储库。依次执行以下命令,root@linuxtechi:~$echo"debhttp://ppa.launchpad.net/ansible/ansible/ubuntubionicmain"|sudotee-a/etc/apt/sources.listroot@linuxtechi:~$sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keys93C4A3FD7BB9C367root@linuxtechi:~$sudoaptupdateroot@linuxtechi:~$sudoaptinstallansible-yroot@linuxtechi:~$sudoansible--versionlatest-ansible-version使用Ansible管理Linux服务器请参考以下步骤使用Ansible控制器节点管理类Linux服务器,第一步:交换SSH密钥Ansible服务器及其主机之间在Ansible服务器上生成ssh密钥并在Ansible主机之间共享秘密。root@linuxtechi:~$sudo-iroot@linuxtechi:~#ssh-keygenroot@linuxtechi:~#ssh-copy-idroot@linuxtechiroot@linuxtechi:~#ssh-copy-idroot@linuxtechi步骤2:创建Ansible主机列表/etc/ansible/hosts是在安装Ansible后自动创建的,在这个文件中我们可以编辑Ansible主机或其客户端。我们还可以在我们的主目录中创建我们自己的Ansible主机清单,运行以下命令在我们的主目录中创建一个Ansible主机清单。root@linuxtechi:~$vi$HOME/hosts[Web]192.168.1.15[DB]192.168.1.17保存并退出文件。注意:在上面的主机文件中,我们也可以使用主机名或FQDN,但为此我们必须确保Ansible主机可以通过主机名或FQDN访问。第3步:测试和使用默认的Ansible模块Ansible附带了许多可以在ansible命令中使用的默认模块,示例如下所示。语法:#ansible-i-m这里:-i~/hosts:包含Ansible主机列表-m:指定之后的Ansible模块,如ping和shell:我们要运行Ansible模块的Ansible主机使用Ansibleping模块来验证ping连通性,root@linuxtechi:~$sudoansible-i~/hosts-mpingallroot@linuxtechi:~$sudoansible-i~/hosts-mpingWebroot@linuxtechi:~$sudoansible-i~/hosts-mpingDB命令输出如下:Ansible-ping-module-examplesUseshellmoduletorunshellcommandsyntaxonAnsiblehosts:ansible-i-mshell-a示例:root@linuxtechi:~$sudoansible-i~/hosts-mshell-a"uptime"all192.168.1.17|改变|rc=0>>01:48:34up1:07,3个用户,平均负载:0.00、0.01、0.05192.168.1.15|改变|rc=0>>01:48:391:07,3个用户,平均负载:0.00、0.01、0.04root@linuxtechi:~$root@linuxtechi:~$sudoansible-i~/hosts-mshell-a“正常运行时间;df-Th/;uname-r”Web192.168.1.15|改变|rc=0>>01:52:03起1:11,3个用户,平均负载:0.12、0.07、0.06已用文件系统类型大小可用使用%安装在/dev/mapper/centos-rootxfs13G1017M12G8%/3.10.0-327.el7.x86_64root@linuxtechi:~$上面的命令输出表明我们已经成功设置了Ansible控制器节点让我们创建一个示例playbook来安装nginx,下面的playbook将在属于web主机组的所有服务器上安装nginx,但是在这里,我的主机组下只有一台centos7机器。root@linuxtechi:~$vinginx.yaml----hosts:Webtasks:-name:在CentOS7服务器上安装最新版本的nginxyum:name=nginxstate=latest-name:启动nginx服务:name:nginxstate:started现在使用以下命令执行剧本。root@linuxtechi:~$sudoansible-playbook-i~/hostsnginx.yaml上述命令的输出如下所示,nginx-installation-playbook-debian10这表明Ansibleplaybook已成功执行。