如何在 Debian 10 上安装 Ansible
创始人
2024-03-02 03:24:55
0

在如今的 IT 领域,自动化一个是热门话题,每个组织都开始采用自动化工具,像 Puppet、Ansible、Chef、CFEngine、Foreman 和 Katello。在这些工具中,Ansible 是几乎所有 IT 组织中管理 UNIX 和 Linux 系统的首选。在本文中,我们将演示如何在 Debian 10 Sever 上安装和使用 Ansible。

我的实验室环境:

  • Debian 10 – Ansible 服务器/ 控制节点 – 192.168.1.14
  • CentOS 7 – Ansible 主机 (Web 服务器)– 192.168.1.15
  • CentOS 7 – Ansible 主机(DB 服务器)– 192.169.1.17

我们还将演示如何使用 Ansible 服务器管理 Linux 服务器

在 Debian 10 Server 上安装 Ansible

我假设你的 Debian 10 中有一个拥有 root 或 sudo 权限的用户。在我这里,我有一个名为 pkumar 的本地用户,它拥有 sudo 权限。

Ansible 2.7 包存在于 Debian 10 的默认仓库中,在命令行中运行以下命令安装 Ansible,

root@linuxtechi:~$ sudo apt update
root@linuxtechi:~$ sudo apt install ansible -y

运行以下命令验证 Ansible 版本,

root@linuxtechi:~$ sudo ansible --version

ansible-version

要安装最新版本的 Ansible 2.8,首先我们必须设置 Ansible 仓库。

一个接一个地执行以下命令,

root@linuxtechi:~$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list
root@linuxtechi:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
root@linuxtechi:~$ sudo apt update
root@linuxtechi:~$ sudo apt install ansible -y
root@linuxtechi:~$ sudo ansible --version

latest-ansible-version

使用 Ansible 管理 Linux 服务器

请参考以下步骤,使用 Ansible 控制器节点管理 Linux 类的服务器,

步骤 1:在 Ansible 服务器及其主机之间交换 SSH 密钥

在 Ansible 服务器生成 ssh 密钥并在 Ansible 主机之间共享密钥。

root@linuxtechi:~$ sudo -i
root@linuxtechi:~# ssh-keygen
root@linuxtechi:~# ssh-copy-id root@linuxtechi
root@linuxtechi:~# ssh-copy-id root@linuxtechi

步骤 2:创建 Ansible 主机清单

安装 Ansible 后会自动创建 /etc/ansible/hosts,在此文件中我们可以编辑 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 主机

使用 Ansible ping 模块验证 ping 连接,

root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping all
root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping Web
root@linuxtechi:~$ sudo ansible -i ~/hosts -m ping DB

命令输出如下所示:

Ansible-ping-module-examples

使用 shell 模块在 Ansible 主机上运行 shell 命令

语法:

ansible -i  -m shell -a   

例子:

root@linuxtechi:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all
192.168.1.17 | CHANGED | rc=0 >>
 01:48:34 up  1:07,  3 users,  load average: 0.00, 0.01, 0.05

192.168.1.15 | CHANGED | rc=0 >>
 01:48:39 up  1:07,  3 users,  load average: 0.00, 0.01, 0.04

root@linuxtechi:~$
root@linuxtechi:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; df -Th / ; uname -r" Web
192.168.1.15 | CHANGED | rc=0 >>
 01:52:03 up  1:11,  3 users,  load average: 0.12, 0.07, 0.06
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs    13G 1017M   12G   8% /
3.10.0-327.el7.x86_64

root@linuxtechi:~$

上面的命令输出表明我们已成功设置 Ansible 控制器节点。

让我们创建一个安装 nginx 的示例剧本,下面的剧本将在所有服务器上安装 nginx,这些服务器是 Web 主机组的一部分,但在这里,我的主机组下只有一台 centos 7 机器。

root@linuxtechi:~$ vi nginx.yaml
---
- hosts: Web
  tasks:
    - name: Install latest version of nginx on CentOS 7 Server
      yum: name=nginx state=latest
    - name: start nginx
      service:
          name: nginx
          state: started

现在使用以下命令执行剧本。

root@linuxtechi:~$ sudo ansible-playbook -i ~/hosts  nginx.yaml

上面命令的输出类似下面这样,

nginx-installation-playbook-debian10

这表明 Ansible 剧本成功执行了。

本文就是这些了,请分享你的反馈和评论。


via: https://www.linuxtechi.com/install-ansible-automation-tool-debian10/

作者:Pradeep Kumar 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

ansible完全攻略
ansible完全攻略 ansible安装: apt安装: apt...
2025-05-31 03:08:02
不在运行中的EC2实例上运...
是的,可以在不运行中的EC2实例上运行Terraform/Ansi...
2025-01-11 16:31:42
不使用Vagrant的情况...
要在不使用Vagrant的情况下使用Ansible和Virtual...
2024-12-29 12:31:06
不使用ansible_ho...
在Ansible中,可以使用inventory_hostname来...
2024-12-28 10:00:32
不使用 -u 标志的Ans...
要在不使用 -u 标志的情况下实现Ansible特权升级,可以使用...
2024-12-28 07:01:52
不明确的ansible变量...
在Ansible中,可以使用default过滤器来处理不明确的变量...
2024-12-26 22:31:12

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...