Oracle Linux 8 安装 Ansible

Ansible 是一个免费的开源自动化平台,系统管理员使用它来一次安装、配置和供应多个系统。 如今,IT环境非常复杂,通常需要快速扩展。 自动化使系统管理员和开发人员的工作变得更轻松,并使他们能够将注意力集中在为组织增加价值的其他任务上。 Ansible 的设置和使用非常简单; 我们不需要任何编码技能即可使用 Ansible。

在这篇文章中,我们将向我们展示 Oracle Linux 8 上安装 Ansible。

先决条件

  • 在 云平台上运行 Oracle Linux 8 的服务器。 这将是我们的管理器节点
  • 在 云平台上运行 Oracle Linux 8 的第二台服务器。 这将是我们的工作节点
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Oracle Linux 8 作为至少 2GB RAM 的操作系统。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

dnf update -y

第 2 步 – 设置基于 SSH 密钥的身份验证

在开始之前,我们需要在 Ansible 控制节点和管理节点之间设置 SSH 无密码登录。 我们可以通过设置基于 SSH 密钥的身份验证来实现。

首先,使用以下命令生成私钥和公钥:

ssh-keygen -t rsa

我们应该看到以下输出:

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Wer identification has been saved in /root/.ssh/id_rsa.
Wer public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0qOchzAC0Asm8WPlduL7ZxN6C5NUelScBo2nYVuqPMs root@oraclelinux8
The key's randomart image is:
+---[RSA 3072]----+
|oo  .   .=..     |
|+o.o    +.B      |
|+.+.+ ..oO       |
| o.+ o =+        |
|  . +.+.S        |
|   . *+B..       |
|    ..O+..       |
|     .E+=        |
|      .+.o       |
+----[SHA256]-----+

接下来,使用以下命令将生成的公钥复制到 Ansible 受管节点:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@wer-remote-host-ip

我们应该看到以下输出:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
ECDSA key fingerprint is SHA256:4K4sZbu1hLHzDGlwmWAJng6nDbxDqp6hnv65KDaOAn0.
Are we sure we want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if we are prompted now it is to install the new keys
root@192.168.1.10's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@'"
and check to make sure that only the key(s) we wanted were added.

现在,运行以下命令来测试 SSH 无密码登录:

ssh root@wer-remote-host-ip

第 3 步 – 在 Oracle Linux 8 上安装 Ansible

现在,我们需要在Ansible控制节点上安装Ansible软件包。 默认情况下,Ansible 包在 Oracle Linux 8 默认存储库中不可用,因此我们需要从 EPEL 存储库安装它。

首先,使用以下命令安装 EPEL 存储库:

dnf install -y epel-release

接下来,使用以下命令安装 Ansible 包:

dnf install ansible -y

安装Ansible后,使用以下命令验证Ansible版本:

ansible --version

我们应该看到以下输出:

ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Nov 10 2021, 06:50:23) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3.0.2)]

第 4 步 – 配置 Ansible 主机

接下来,我们需要编辑 Ansible 主机配置文件并定义要管理的远程 Linux 服务器。

我们可以使用以下命令对其进行编辑:

nano /etc/ansible/hosts

添加以下行:

[web]
server1 ansible_ssh_host= ansible_ssh_port=22 ansible_ssh_user=root

[database]
dbserver1 ansible_ssh_host= ansible_ssh_port=22 ansible_ssh_user=root

完成后保存并关闭文件。

接下来,编辑 Ansible 配置文件并禁用弃用警告和主机密钥检查:

nano /etc/ansible/ansible.cfg

在下面添加以下行 [defaults]:

deprecation_warnings=False
host_key_checking = False

完成后保存并关闭文件。

第 5 步 – 如何使用 Ansible

至此,Ansible 已安装并配置完毕。 现在,我们需要使用Ansible Ad-Hoc命令检查Ansible的功能:

首先,使用以下命令检查所有托管节点的连接:

ansible -m ping all

如果一切正常,我们应该会看到以下输出:

dbserver1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
server1 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

如果我们只想检查数据库服务器的连接性,请运行以下命令:

ansible -m ping database

我们将获得以下输出:

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

要检查Web服务器节点上的免费内存,请运行以下命令:

ansible -m shell -a "free -m" web

我们将获得以下输出:

server1 | CHANGED | rc=0 >>
              total        used        free      shared  buff/cache   available
Mem:           1817         621         210          21         985        1006
Swap:             0           0           0

要检查数据库服务器节点上的MySQL版本,请运行以下命令:

ansible -m shell -a "mysqladmin --version" database

我们应该看到以下输出:

dbserver1 | CHANGED | rc=0 >>
mysqladmin  Ver 8.0.26 for Linux on x86_64 (Source distribution)

第 6 步 – 创建 Ansible Playbook 以在托管节点上安装软件包

Ansible 允许我们创建一个剧本来定义我们想要在托管节点上执行的所有任务。 首先,创建一个目录来存储我们的剧本。

mkdir project

接下来,导航到创建的目录并使用以下命令创建一个 YAML 文件:

cd project
nano app.yaml

添加以下配置:

- name: Install Packages
  hosts:
    - web
    - database
  tasks:
  - name: Install php and nginx
    package:
      name:
        - php
        - httpd
      state: present

保存并关闭文件,然后使用以下命令运行 playbook:

ansible-playbook app.yaml

一旦Ansible Playbook成功运行,我们将获得以下输出:

PLAY [Install Packages] **********************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************************
ok: [server1]
ok: [dbserver1]

TASK [Install php and apache] ****************************************************************************************************************
ok: [server1]
changed: [dbserver1]

PLAY RECAP ***********************************************************************************************************************************
dbserver1                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server1                    : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

现在,我们可以使用以下命令在WebServer节点上验证PHP版本:

ansible -m shell -a "php -v" web

我们将获得以下输出:

server1 | CHANGED | rc=0 >>
PHP 7.2.24 (cli) (built: Oct 22 2019 08:28:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

在本指南中,我们解释了 Oracle Linux 8 上安装 Ansible。我们还解释了如何使用 Ansible ad-hoc 命令和 playbook 来供应托管节点。 现在,我们可以使用Anssible来轻松进行并管理整个IT基础架构。 在 的 VPS 主机上试一试!

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论