如何在 ubuntu 20.04 lts 上安装和使用 ansible-凯发体育app

在 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
ansible-inverntory-file-ubuntu-22.04-1

如果您不想创建任何组,则只需将远程服务器 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

例子 -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
ansible-commands-to-install-packages-on-remote-servers-1

要对所有定义的远程 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 地址即可。

有关更多信息,请参阅

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/yun289992.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2024年3月17日 下午8:41
下一篇 2024年3月17日 下午8:51

相关推荐

网站地图