如何使用Ansible远程安装应用程序
Ansible是一个灵活的管理工具。通过一个playbook,您可以管理软件配置、配置远程服务器,并将应用程序部署到数据中心中的远程系统。
1、准备工作:运行Ansible的服务器、远程Linux服务器、SSH密钥、具有sudo权限的用户
2、如何将SSH密钥复制到远程服务器
我们需要做的第一件事是将SSH密钥复制到远程服务器。使用以下命令将其复制到服务器:
ssh-copy-id USER @ SERVER
其中USER是远程计算机上的用户名,而SERVER是远程计算机的IP地址。复制SSH密钥后,就可以开始使用了。
3、如何配置主机
在创建Playbooks之前,我们先配置主机。假设新主机将属于许多数据库服务器。为此,您需要在Ansible主机文件中创建一个新部分。使用以下命令打开该文件以进行编辑:
sudo nano /etc/ansible/hosts
滚动到该文件的底部,然后创建一个新的部分,如下所示:
[db_servers]
SERVER ansible_user=USER
其中SERVER是远程服务器的IP地址,而USER是远程用户名。您将要使用与刚复制的SSH密钥关联的相同用户名。
保存并关闭文件。
4、如何创建Playbooks
由于我将在基于Ubuntu的远程服务器上进行安装,因此我将其命名为apt.yml。我要演示的是一个非常基本的单个应用程序安装。
该剧本将执行以下操作:
声明主机
获得sudo特权
安装最新版本的zip
更新apt缓存
该剧本如下所示:
- hosts: db_servers
tasks:
- name: Ansible apt install packages example
become: true
become_user: root
apt:
name: zip
state: present
update_cache: true
请记住,由于这是一个YAML文件,因此缩进必须一致,否则将失败。正确设置文件后,保存并关闭它。
如果要安装多个软件包,则必须修改剧本的apt部分以反映此更改:
apt:
name:
- zip
- wget
state: present
update_cache: true
每个应用程序都有其自己的行。
5、如何运行playbook
返回终端窗口,发出命令:
ansible-playbook apt.yml --ask-become-pass
首先将要求您输入sudo密码,然后是SSH密钥身份验证密码。成功针对这两个系统进行身份验证后,该剧本将成功运行,并且zip软件包将安装在远程计算机上。Ansible完成后,您应该在输出中看到ok = 1,表明软件包已成功安装。如果安装了多个软件包,您将看到ok = X(其中X是已安装软件包的数量)。
以上就是您可以从单个Ansible playbook轻松地将应用程序部署到远程服务器的方法。