跳转至

Ansible_Dome

要使用 Ansible 安装 sar(一个用于收集和报告系统性能的工具),你可以编写一个简单的 Playbook 来实现。在这个 Playbook 中,我们将使用 Ansible 的 package 模块来安装软件包。具体步骤如下:

1. 创建一个 Playbook 文件

首先,创建一个名为 install_sar.yml 的文件,内容如下:

---
- name: Install sar software
  hosts: localhost  # 目标主机是本地
  become: yes  # 使用 sudo 权限执行
  tasks:
    - name: Install sysstat package (contains sar)
      package:
        name: sysstat  # sysstat 包包含 sar 工具
        state: present  # 确保软件包已安装

解释:

  • hosts: localhost:表示在本地机器上执行任务。

  • become: yes:表示使用 sudo 权限执行任务,因为安装软件通常需要管理员权限。

  • package

模块:用于安装、更新或删除软件包。

  • name: sysstat:指定要安装的软件包,sysstat 包包含 sar 工具。
  • state: present:确保该软件包已经安装。如果已经安装,则不会做任何更改;如果未安装,则会进行安装。

2. 执行 Playbook

保存好 Playbook 文件后,你可以使用以下命令执行该 Playbook:

ansible-playbook install_sar.yml

Ansible 会连接到本地机器,使用 sudo 安装 sysstat 包(其中包括 sar 工具)。执行后,应该会看到类似下面的输出:

PLAY [Install sar software]  ******************************************************

TASK [Install sysstat package (contains sar)] **********************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

3. 验证安装

安装完成后,可以通过以下命令检查 sar 是否已安装并正常工作:

sar -v

如果安装成功,应该会显示 sar 的版本信息。

其他配置(可选)

如果你希望安装并配置 sar 工具来定期收集数据(例如启用 sysstat 服务),可以通过添加额外的任务来完成。例如:

---
- name: Install sar software and enable sysstat service
  hosts: localhost
  become: yes
  tasks:
    - name: Install sysstat package (contains sar)
      package:
        name: sysstat
        state: present

    - name: Enable and start sysstat service
      service:
        name: sysstat
        state: started
        enabled: yes

这个 Playbook 会在安装 sysstat 包后,启用并启动 sysstat 服务,确保 sar 可以定期收集系统性能数据。

直接使用 ansible 命令执行任务

例如,要安装 sysstat 包(其中包含 sar 工具),你可以使用 ansible 命令的 package 模块来直接安装,而不需要写 Playbook。

1. 使用 ansible 命令安装 sysstat

ansible localhost -m package -a "name=sysstat state=present" -b

解释:

  • localhost:表示目标主机是本地机器。如果你要管理远程主机,只需替换为目标主机名或 IP 地址。
  • -m package:使用 package 模块来管理软件包的安装、删除或更新。
  • -a "name=sysstat state=present":传递给模块的参数,表示安装 sysstat 包,state=present 意味着确保该软件包已经安装。如果已安装,则不会做任何更改。
  • -b:表示使用 sudo 权限执行任务,因为安装软件包通常需要管理员权限。

2. 执行结果:

localhost | SUCCESS | rc=0 >>

如果执行成功,命令会返回类似上面的输出,表示命令成功执行。

总结:

  • 如果任务非常简单或临时需要执行一些操作,不写 Playbook 也是完全可以的。你可以通过命令行直接使用 ansible 命令来执行任务。
  • 对于更复杂的操作,或者需要重复执行的任务,建议使用 Playbook 来组织和管理,这样可以更方便地管理多个任务和主机,并使操作更加模块化和可维护。