当前位置: 首页 > article >正文

Ansible自动化运维实战--软件包管理模块、服务模块、文件模块和收集模块setup(4/8)

文章目录

    • 一、软件包管理模块
      • 1.1、功能
      • 1.2、常用参数
      • 1.3、示例
    • 二、服务模块
      • 2.1、功能
      • 2.2、服务模块常用参数
      • 2.3、示例
    • 三、文件与目录模块
      • 3.1、file功能
      • 3.2、常用参数
      • 3.3、示例
    • 四、收集模块-setup
      • 4.1、setup功能
      • 4.2、示例

一、软件包管理模块

1.1、功能

Ansible 提供了多种软件包管理模块,用于在不同的操作系统上安装、卸载、更新软件包。如yum模块用于 CentOS 等系统,apt模块用于 Ubuntu 等系统。

1.2、常用参数

  • name:要安装或管理的软件包名称,可以指定具体版本,如package_name=1.0.0。
  • state:取值为present(安装软件包)、absent(卸载软件包)、latest(安装最新版本的软件包)等。

1.3、示例

  • 安装httpd服务
ansible webserves -m yum -a 'name="httpd" state=latest'

使用 Ansible 工具在名为 webserves 的主机或主机组上执行一个任务,该任务是使用 yum 模块进行软件包管理操作;检查 httpd 软件包的当前安装状态:如果 httpd 未安装,Ansible 将使用 yum 安装该软件包的最新版本;如果 httpd 已安装,但不是最新版本,Ansible 将使用 yum 更新该软件包到最新版本。

命令组成部分

  • ansible:Ansible 的命令行工具,用于执行 Ansible 任务。
  • webserves:目标主机或主机组的名称,Ansible 将在这些主机上执行相应的任务。
  • -m yum:指定使用 yum 模块。yum 模块是 Ansible 中专门用于管理基于 Red Hat 系列操作系统(如 CentOS、RHEL)的软件包的模块。
  • -a 'name="httpd" state=latest':模块的参数部分,以键值对的形式给出。
  • name="httpd":指定要操作的软件包名称为 httpd,即 Apache HTTP Server 软件包。
  • state=latest:指定软件包的状态为 latest,这意味着 Ansible 将确保 httpd 软件包在远程主机上处于最新版本。如果 httpd 已经安装,但不是最新版本,Ansible 会自动更新它;如果尚未安装,Ansible 会安装最新版本。
    在这里插入图片描述

检查host01机子,httpd服务已经安装完成:

在这里插入图片描述

查看帮助文档,可使用命令:

ansible-doc yum

在这里插入图片描述

  • 卸载httpd服务
ansible webserves -m yum -a 'name="httpd" state=absent'

二、服务模块

2.1、功能

在 Ansible 中,服务模块用于管理系统服务,例如启动、停止、重启服务,以及设置服务是否开机自启等操作。

2.2、服务模块常用参数

  • name:服务的名称,这是必需的参数,用于指定要操作的服务,例如 httpd、nginx、sshd 等。
  • state:服务的状态,常见的取值有:
    1. started:启动服务。
    2. stopped:停止服务。
    3. restarted:重启服务。
    4. reloaded:重新加载服务(适用于支持重新加载的服务,如 nginx 可以重新加载配置而无需完全重启)。
  • enabled:服务的开机自启设置,取值为 true 或 false。
    1. true:设置服务开机自启。
    2. false:取消服务开机自启。

2.3、示例

以下是几个使用服务模块的示例,以 httpd 服务为例:

ansible webserves -m service -a 'name="httpd" state=started'

该命令使用 Ansible 工具在 webserves 主机或主机组上执行一项服务管理任务。通过 service 模块,将 httpd 服务的状态设置为 started,即启动 httpd 服务。

  • 执行流程
  1. Ansible 接收到命令后,会首先识别出 webserves 主机或主机组,这些是要操作的目标。
  2. 然后使用 service 模块对这些目标主机进行服务管理操作。
  3. 根据提供的参数,查找名为 httpd 的服务。
  4. 最后将 httpd 服务的状态设置为 started,如果 httpd 服务尚未启动,Ansible 会启动它;如果已经启动,Ansible 会确保其处于启动状态(不会重复启动)。

三、文件与目录模块

3.1、file功能

用于设置文件或目录的属性,如权限、所有者、链接等,还可以创建或删除文件、目录、软链接。

3.2、常用参数

  • path:指定文件或目录的路径,这是必需的参数。
  • state:
    1. file:表示文件或目录必须存在,如果不存在则创建。
    2. directory:表示创建目录,如果目录不存在。
    3. link:创建软链接。
    4. hard:创建硬链接。
    5. absent:删除文件或目录。
  • mode:设置文件或目录的权限,例如 mode: ‘0644’。
  • owner:设置文件或目录的所有者,例如 owner: root。
  • group:设置文件或目录的所属组,例如 group: root。
  • src:当 state 为 link 或 hard 时,指定源文件的路径,用于创建链接。

3.3、示例

  • 创建文件

创建一个文件并设置权限777。

ansible webserves -m file -a 'path=/tmp/88.txt mode=777 state=touch'

在这里插入图片描述
检查host01主机,已经创建了88.txt文件:

ls /tmp/88.txt -l

在这里插入图片描述

  • 删除文件
ansible webserves -m file -a 'path=/tmp/88.txt mode=777 state=absent'

  • 创建目录
ansible webserves -m file -a 'path=/tmp/99 mode=777 state=directory'

在这里插入图片描述
查看host01主机中是否创建文件夹?

ls -l -d /tmp/99

在这里插入图片描述

四、收集模块-setup

4.1、setup功能

收集远程主机的系统信息,如主机名、IP 地址、操作系统版本、内存信息等。
主要功能

  • setup 模块会自动收集远程主机的各种系统信息,这些信息包括但不限于:
    1. 硬件信息:如 CPU 核心数、内存大小、磁盘信息、网络接口信息等。
    2. 操作系统信息:操作系统类型(如 RedHat、Debian、Ubuntu 等)、操作系统版本、内核版本等。
    3. 用户信息:当前登录用户、用户组等。
    4. 环境信息:环境变量、路径信息等。

4.2、示例

收集主机信息并存储为变量。

ansible host01 -m setup
#此命令输出信息很多
ansible host01 -m setup -a 'filter=ansible_all_ipv4_addresses'

在这里插入图片描述

在这里插入图片描述


世界上最短的路是回家的路,走起来总是那么愉悦;最熟悉的声音是浓浓的乡音,听起来总是那么亲切。



http://www.kler.cn/a/523265.html

相关文章:

  • 大屏 UI 设计风格的未来趋势
  • Hive:日志,hql运行方式,Array,行列转换
  • DeepSeek能够进行逻辑推理吗?
  • C语言实现统计数组正负元素相关数据
  • 【1】阿里面试题整理
  • Excel中LOOKUP函数的使用
  • 【UE】 Pawn
  • 基于SpringBoot的高校一体化服务平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • 力扣【669. 修剪二叉搜索树】Java题解
  • 【Super Tilemap Editor使用详解】(十七):常见问题解答(FAQ)
  • 初始JavaEE篇 —— Spring Web MVC入门(上)
  • 笔记本搭配显示器
  • 【Git】使用笔记总结
  • 数据结构的学习要点
  • OpenAI-Edge-TTS:本地化 OpenAI 兼容的文本转语音 API,免费高效!
  • 【C语言练习题】数字螺旋方阵
  • 小南每日 AI 资讯 | AI将向“少样本学习”发展? | 25/01/25
  • 【Leetcode 热题 100】416. 分割等和子集
  • 在Windows下安装Ollama并体验DeepSeek r1大模型
  • LangChain概述
  • 开关电路汇总
  • AI软件栈:LLVM分析(一)
  • kafka消费者详细介绍(超级详细)
  • 02-机器学习-核心概念
  • games101-(5/6)
  • 蓝桥云课下载(jdk11、eclipse、idea)