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

文章目录

    • 一、软件包管理模块
      • 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.rhkb.cn/news/7417.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高速光模块中的并行光学和WDM波分光学技术

随着AI大模型训练和推理对计算能力的需求呈指数级增长,AI数据中心的网络带宽需求大幅提升,推动了高速光模块的发展。光模块作为数据中心和高性能计算系统中的关键器件,主要用于提供高速和大容量的数据传输服务。 光模块提升带宽的方法有两种…

Linux命令行配置网络代理

在Linux命令行中,你可以使用以下方法设置网络代理服务器。 本文演示代理地址为:http://192.168.1.30:7890 请根据实际代理地址进行替换 临时代理 使用环境变量的方法: 打开终端,并输入以下命令: export http_proxyhtt…

SpringBoot3+Vue3开发学生选课管理系统

功能介绍 分三个角色登录:学生登录,老师登录,教务管理员登录,不同用户功能不同! 1.学生用户功能 选课记录,查看选课记录,退选。选课管理,进行选课。通知管理,查看通知消…

牛客周赛 Round 78 A-C

A.时间表查询! 链接:https://ac.nowcoder.com/acm/contest/100671/A 来源:牛客网 题目描述 今天是2025年1月25日,今年的六场牛客寒假算法基础集训营中,前两场比赛已经依次于 20250121、20250123 举行;而…

Android - 通过Logcat Manager简单获取Android手机的Log

由于工作需要,经常需要获取Android手机的Log。 平常都是通过adb命令来获取,每次都要写命令。 偶然的一个机会,我从外网发现了一个工具 Logcat Manager,只需要通过简单的双击即可获取Android的Log,这里也分享一下。 目…

苍穹外卖-day10

苍穹外卖-day10 Spring Task Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。 cron表达式 cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间 **构成规则:**分为6或7个域&…

一文详解Filter类源码和应用

背景 在日常开发中,经常会有需要统一对请求做一些处理,常见的比如记录日志、权限安全控制、响应处理等。此时,ServletApi中的Filter类,就可以很方便的实现上述效果。 Filter类 是一个接口,属于 Java Servlet API 的一部…

(2)STM32 USB设备开发-USB虚拟串口

例程:STM32USBdevice: 基于STM32的USB设备例子程序 - Gitee.com 本篇为USB虚拟串口教程,没有知识,全是实操,按照步骤就能获得一个STM32的USB虚拟串口。本例子是在野火F103MINI开发板上验证的,如果代码中出现一些外设的…

K8S中的数据存储之基本存储

基本存储类型 EmptyDir 描述:当 Pod 被调度到节点上时,Kubernetes 会为 Pod 创建一个空目录,所有在该 Pod 中的容器都可以访问这个目录。特点: 生命周期与 Pod 绑定,Pod 删除时,数据也会丢失。适用于临时…

谈谈RTMP|RTSP播放器视频view垂直|水平反转和旋转设计

技术背景 我们在做RTMP|RTSP播放器的时候,有这样的技术诉求,有的摄像头出来的数据是有角度偏差的,比如“装倒了”,或者,图像存在上下或者左右反转,这时候,就需要播放器能做响应的处理&#xff…

自然语言处理——从原理、经典模型到应用

1. 概述 自然语言处理(Natural Language Processing,NLP)是一门借助计算机技术研究人类语言的科学,是人工智能领域的一个分支,旨在让计算机理解、生成和处理人类语言。其核心任务是将非结构化的自然语言转换为机器可以…

【MFC】C++所有控件随窗口大小全自动等比例缩放源码(控件内字体、列宽等未调整) 20250124

MFC界面全自动等比例缩放 1.在初始化里 枚举每个控件记录所有控件rect 2.在OnSize里,根据当前窗口和之前保存的窗口的宽高求比例x、y 3.枚举每个控件,根据比例x、y调整控件上下左右,并移动到新rect struct ControlInfo {CWnd* pControl;CRect original…

SkyWalking介绍

一款开源的系统性能监控工具(APM) 背景 在解决提报的IT性能问题时,由于缺乏系统性能监控运维的工具,导致问题排查非常困难,尤其是偶发的问题,无法进行问题复现还原,需要一套能实时监控线上系统性能的工具平台。 SkyWal…

Pyecharts之图表组合与布局优化

在数据可视化中,我们经常需要将多个图表组合在一起,以展示不同维度的数据或者进行对比分析。同时,合理的布局能够提升图表的可读性和用户体验。Pyecharts 提供了强大的组件和方法,让我们可以轻松实现图表的组合和布局优化。本篇将…

物业管理平台系统提升社区智能化服务效率与管理水平

内容概要 在现代社会中,物业管理平台系统的出现,为社区的智能化服务带来了革命性的变化。这种系统不仅仅是提升了工作效率,更是通过一系列智能化功能,根本性改变了物业管理的方式。比如,在广告位管理方面,…

Kafka 深入服务端 — 时间轮

Kafka中存在大量的延迟操作,比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器,来完成这些延迟操作。 1 时间轮 Kafka没有使用基于JDK自带的Timer或DelayQueue来实现延迟功能,因为它们的插入和…

Baklib如何推动企业知识管理的创新与转型探讨

内容概要 在当今快速发展的数字化时代,企业需要不断适应变化,以保持竞争优势。Baklib作为一款企业知识管理中台,扮演着推动数字化转型的重要角色。它通过提供一个集成的知识管理平台,帮助企业高效管理和共享内部及外部的知识资源…

日志收集Day005

1.filebeat的input类型之filestream实战案例: 在7.16版本中已经弃用log类型,之后需要使用filebeat,与log不同,filebeat的message无需设置就是顶级字段 1.1简单使用: filebeat.inputs: - type: filestreamenabled: truepaths:- /tmp/myfilestream01.lo…

【Rust自学】15.3. Deref trait Pt.2:隐式解引用转化与可变性

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.3.1. 函数和方法的隐式解引用转化(Deref Coercion) 隐式解引用转化(Deref Coercion)是为…

【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构

单体仓库(Monorepo)搭建指南:从零开始 单体仓库(Monorepo)是一种将多个相关项目集中管理在一个仓库中的开发模式。它可以帮助开发者共享代码、统一配置,并简化依赖管理。本文将通过实际代码示例&#xff0…