如何在 Ubuntu 20.04 LTS 上安装和使用 Ansible

Linux命令8个月前发布 AI观察员
101 0 0

在 Ubuntu 上安装 Ansible 的步骤 20.04 LTS

1. 更新 Ubuntu 20.04

在这里,我们使用 Ubuntu 20.04 配置为 Ansible Node 服务器或桌面,因此请转到其命令终端并首先运行您计划设置 Ansible 的 system update 命令。在短期内,在您的 Ubuntu 20.04 服务器中运行给定的命令。

sudo apt update

3. Ansible PPA 安装在 Ubuntu 20.04 上

Ansible 软件包已经存在,可以使用 Ubuntu 20.04 的默认系统存储库进行安装。因此,只需使用 APT 包管理器运行给定的命令即可。

但是,通过默认存储库的版本不是最新版本,因此这里我们使用 Ansible 的 PPA 存储库作为它的最新版本。

sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

通过键入 – 并点击接受安装包的请求

4. 在 Ubuntu 20.04 上检查 Ansible 版本

让我们使用以下方法检查系统上 Ansible 的安装程序版本

ansible --version

5. 配置主机服务器

要使用 Ansible 管理的服务器必须安装 SSH,并在防火墙中打开端口 22,才能从其他系统(例如随 Ansible 一起安装的系统)访问它们。

例如,您有在 Ubuntu、Debian 和 CentOS 上运行的服务器,您希望使用 Ansible 管理和配置这些服务器。因此,我们需要安装 SSH 服务器并在其上打开端口 22,您可以使用这些命令。

对于Ubuntu和Debian服务器-

sudo apt install openssh-server
sudo systemctl enable ssh

要允许防火墙中的端口 22-

sudo ufw allow 22

对于 RHEL 或 CentOS

sudo dnf install openssh-server

sudo systemctl enable sshd

允许 22 在防火墙-

sudo firewall-cmd --zone=public --permanent --add-port=22/tcp

因此,为了执行本教程,我们有三个服务器 Ubuntu、Debian 和 CentOS,这里是我们的例子中的 IP 地址。

Ubuntu的– 192.168.189.172
CentOS – 192.168.0.102
Debian – 192.168.0.104

6. 在 Ubuntu 上生成 SSH 密钥 20.04

要在远程目标服务器上安装软件包或执行某些部署,请在 localhost(控制节点)上创建一对 SSH 密钥,然后将它们推送到每个远程服务器上,以便我们可以使用 SSH 管理它们。

只需多次键入并按 Enter 键,直到密钥生成完成。

ssh-keygen

7. 将 SSH 密钥复制到远程服务器或主机服务器

现在,将 Ubuntu 20.04 Linux 上生成的密钥推送到要配置或管理的远程服务器。您应该知道远程服务器的用户名或使用默认的 root 用户。

注意:将 h2s 替换为远程服务器的 sudo 用户或使用默认的 root。此外,将 IP 地址替换为服务器的 IP 地址。

例:

ssh-copy-id h2s@192.168.189.172

ssh-copy-id h2s@192.168.0.102

ssh-copy-id h2s@192.168.0.104

现在,在每台服务器上运行以下命令,以便我们可以使用 Ansible 在它们上运行带有 sudo 的命令,而无需输入密码。

echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)

如果我们不运行上述命令,那么在运行 Ansible 管理远程服务器时,我们将收到以下错误:

192.168.xx.xx | FAILED | rc=-1 >>
Missing sudo password

8. 为远程主机创建清单文件

在 Ansible 中,我们创建一个文件,用于定义要管理的所有远程主机或目标系统。我们也可以创建一组主机,例如,一组是Web服务器,只包含运行Apache等一些Web服务器的远程系统,另一组可以是运行数据库服务器的Mysql组,依此类推。清单文件也很重要,因为使用它,playbook 中的命令、模块和任务将起作用。

因此,在本教程中,我们有三个远程服务器,让我们将它们添加到 Ansible 主机文件中。

sudo apt install nano -y
sudo nano /etc/ansible/hosts
如何在 Ubuntu 20.04 LTS 上安装和使用 Ansible

如果您不想创建任何组,则只需将远程服务器 IP 地址或域名粘贴到文件中,而要创建组,您必须在添加 IP 地址之前指定它。您可以编辑已有示例的默认 Ansible 清单文件值,也可以在文件末尾添加自己的值。

在这里,我为 Web 服务器标识的主机组添加两台服务器,其中一台服务器将定义为单个服务器。

在以下屏幕截图中,你将看到-

192.168.189.172

它是一个取消分组的服务器

[webservers]
192.168.0.102
192.168.0.104

位于名为 Web Servers 的组中。创建组的好处是,我们可以向该特定主机组中定义的一整组服务器发出一个命令。例如,我可以同时在名为 Web 服务器的组中添加的所有远程服务器上安装 apache 服务器。同样,您可以定义数据库组和其他数据库组。

注意 – 带有自定义 SSH por t 的库存

如果您使用某些服务器不是默认的 22 SSH 端口,例如,在 Docker 上运行的服务器,那么我们也可以使用 IP 地址来定义它。例-

192.168.0.104 ansible_user=remote-server-username ansible_port=49153

 在上述命令中,替换 IP 地址、remote-server-username 和端口号,并将其添加到清单文件中。

要保存文件,只需按 Ctrl+XType-Y,然后按 Enter 键。

9. Ping 所有添加的远程服务器

由于我们已经成功创建了清单文件,让我们检查一下我们的 Ansible 是否可以 ping 所有添加的服务器,为此 –

要 ping 一组主机 –

ansible -m ping group-name

例子ansible -m ping web-servers

对单个服务器执行 ping 操作

ansible -m ping ip-address

例子ansible -m ping 192.168.189.172

全部 ping 通。

ansible -m ping all

输出示例:

192.168.189.172 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python3"
    },
    "changed": false,
    "ping": "pong"
}

为了检查特定用户,我们可以运行

ansible all -m ping -u your-remote-server-user

注意:将“your-remote-server-user”替换为要检查的用户。

10. Ansible 命令

现在,假设您要在清单文件中定义的一组服务器上安装 Apache Web 服务器。在这里,我们已经命名了一个网络服务器,因此我们使用它,您可以使用您为服务器组提供的任何名称。

命令语法

ansible -b --become-method=sudo -m shell -a 'command to execute' webservers

例如,同时在远程 Debian 和 Ubuntu 系统上运行更新和安装 apache 服务器。

ansible -b --become-method=sudo -m shell -a 'apt update' webservers

安装 Apache

ansible -b --become-method=sudo -m shell -a 'apt install -y apache2' webservers
如何在 Ubuntu 20.04 LTS 上安装和使用 Ansible

要对所有定义的远程 PC 运行相同的上述命令,请运行-

ansible -b --become-method=sudo -m shell -a 'apt install -y apache2 ' all

对于取消分组的主机,您可以使用其 IP 地址,例如 –

ansible -b --become-method=sudo -m shell -a 'apt install -y apache2' 192.168.0.104

您还可以使用其他不需要的命令,例如检查正常运行时间-sudo

ansible -m command -a "uptime" group-name/ip-adress 

上述相同的命令可用于其他目的,只需将 uptime 替换为您要在远程服务器上执行的命令,并更改组名称/IP 地址即可。

有关更多信息,请参阅官方文档

© 版权声明

相关文章

天猫U特购  京东优惠购        京东优惠    天猫优惠