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.mzph.cn/pingmian/67975.shtml

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

相关文章

终极的复杂,是简单

软件仿真拥有最佳的信号可见性和调试灵活性,能够高效捕获很多显而易见的常见错误,被大多数工程师熟练使用。 空间领域应用的一套数据处理系统(Data Handling System),采用抗辐FPGA作为主处理器,片上资源只包含10752个寄存器,软仿也是个挺花时间的事。 Few ms might take …

cuda的并行运算介绍

cuda是如何使用GPU并行运算的&#xff1a; 以一个函数为例&#xff1a; duplicateWithKeys << <(P 255) / 256, 256 >> > (P,geomState.means2D,geomState.depths,geomState.point_offsets,binningState.point_list_keys_unsorted,binningState.point_list_…

开关电源设计(2)–BUCK电路设计和计算过程

BUCK电路也即降压电路&#xff0c;是应用最广泛的DC-DC变换器 需求决定的参数 V i 和 V o V_{i} 和V_{o} Vi​和Vo​ f f f I o I_{o} Io​ 输出电压纹波率 效率 需要计算:电感量 r r r 占空比 C 参数计算&#xff1a; 当MOS管导通时&#xff0c;电感电压 V O N V i − …

cudatex文本编辑器

一、下载 通过网盘分享的文件&#xff1a;cudatext 链接: https://pan.baidu.com/s/1TZbGk3AM09SuKvvcQy0d6Q?pwdbbzd 提取码: bbzd 本链接分享的为2025年1月下载上传的软件&#xff0c;版本为1.220.6.1 &#xff1b;软件皆已放入中文包。 二、设置中文简体 打开 https://…

打造本地音乐库

文章目录 存储介质硬盘&#xff08;NAS&#xff09;媒体播放器&#xff08;可视MP3、MP4&#xff09;实体介质&#xff08;CD光盘、黑胶片&#xff09;注意事项为什么不使用在线音乐&#xff08;App&#xff09;和网盘打造一套HiFi系统的成本非常高 获取音乐正版音乐途径免费音…

leetcode_链表 21.合并两个有序链表

21.合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。思路&#xff1a; 定义一个哑节点&#xff08;dummy node&#xff09;&#xff0c;哑节点是一个初始的虚拟节点&#xff0c;它不存储有效值&#xff0c;只…

`std::make_shared` 无法直接用于单例模式,因为它需要访问构造函数,而构造函数通常是私有的

std::make_shared 在创建对象时会调用构造函数&#xff0c;而在单例模式下&#xff0c;构造函数通常是私有的&#xff0c;因此不能直接通过 std::make_shared 来创建对象。 为什么 std::make_shared 不适用于单例模式&#xff1f; 在单例模式中&#xff0c;我们希望确保一个类…

Python 类和对象:详细讲解中篇

文章目录 Python 类和对象&#xff1a;详细讲解前言9. 方法重写&#xff08;Method Overriding&#xff09;9.1 为什么需要方法重写&#xff1f;9.2 方法重写的基本示例9.3 代码详解 10. 多继承&#xff08;Multiple Inheritance&#xff09;10.1 多继承的概念10.2 多继承的示例…

C语言文件操作:标准库与系统调用实践

目录 1、C语言标准库文件操作 1.1.题目要求&#xff1a; 1.2.函数讲解&#xff1a; fopen 函数原型 参数 常用的打开模式 返回值 fwrite函数 函数原型 参数 返回值 注意事项 fseek函数 函数原型 参数 返回值 fread函数 函数原型 参数 返回值 fclose 函数…

一款专业通用开源的MES生产执行管理系统

系统简介 MES系统是一款B/S结构、开源、免费的生产执行管理系统。 此系统基于本人多年离散智造行业的业务经验及J2EE项目经验开发。 主要目的是为国内离散制造业的中小企业提供一个专业化、通用性、低成本的MES系统解决方案。 系统将提供“售前”、“实施”、“用户培训”、…

SpringBoot集成Flink-CDC,实现对数据库数据的监听

一、什么是 CDC &#xff1f; CDC 是Change Data Capture&#xff08;变更数据获取&#xff09;的简称。 核心思想是&#xff0c;监测并捕获数据库的变动&#xff08;包括数据或数据表的插入、 更新以及删除等&#xff09;&#xff0c;将这些变更按发生的顺序完整记录下来&…

Three城市引擎地图插件Geo-3d

一、简介 基于Three开发&#xff0c;为Three 3D场景提供GIS能力和城市底座渲染能力。支持Web墨卡托、WGS84、GCJ02等坐标系&#xff0c;支持坐标转换&#xff0c;支持影像、地形、geojson建筑、道路&#xff0c;植被等渲染。支持自定义主题。 二、效果 三、代码 //插件初始化…

应用层协议 HTTP 讲解实战:从0实现HTTP 服务器

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Linux 目录 一&#xff1a;&#x1f525; HTTP 协议 &#x1f98b; 认识 URL&#x1f98b; urlencode 和 urldecode 二&#xff1a;&#x1f525; HTTP 协议请求与响应格式 &#x1f98b; HTTP 请求…

鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)

目录 ​1&#xff09;仓颉的SDK下载 1--进入仓颉的官网 2--点击图片中的下载按钮 3--在新跳转的页面点击即刻下载 4--下载 5--找到你们自己下载好的地方 6--解压软件 2&#xff09;仓颉编程环境配置 1--找到自己的根目录 2--进入命令行窗口 3--输入 envsetup.bat 4--验证是否安…

CPU 缓存基础知识

并发编程首先需要简单了解下现代CPU相关知识。通过一些简单的图&#xff0c;简单的代码&#xff0c;来认识CPU以及一些常见的问题。 目录 CPU存储与缓存的引入常见的三级缓存结构缓存一致性协议MESI协议缓存行 cache line 通过代码实例认识缓存行的重要性 CPU指令的乱序执行通过…

计算机网络 (56)交互式音频/视频

一、定义与特点 定义&#xff1a;交互式音频/视频是指用户使用互联网和其他人进行实时交互式通信的技术&#xff0c;包括语音、视频图像等多媒体实时通信。 特点&#xff1a; 实时性&#xff1a;音频和视频数据是实时传输和播放的&#xff0c;用户之间可以进行即时的交流。交互…

pdf与ofd的区别详细对比

PDF&#xff08;Portable Document Format&#xff09;和OFD&#xff08;Open Fixed-layout Document&#xff09;是两种常见的电子文档格式&#xff0c;它们在设计理念、技术实现、应用场景等方面存在显著差异。以下是对这两种格式的详细对比分析&#xff0c;涵盖其历史背景、…

【Linux系统】Linux下的图形库 ncurses(简单认识)

基本介绍 在 Linux 环境下&#xff0c;ncurses 是一个非常重要的库&#xff0c;用于编写可以在终端&#xff08;TTY&#xff09;或模拟终端窗口中运行的 字符界面程序。它提供了一套函数&#xff0c;使得开发者可以轻松地操作文本终端的显示&#xff0c;比如移动光标、创建窗口…

基于C#实现多线程启动停止暂停继续

大部分初学者在学习C#上位机编程时&#xff0c;多线程是一个很难逾越的鸿沟&#xff0c;不合理地使用多线程&#xff0c;会导致经常出现各种奇怪的问题&#xff0c;这也是很多初学者不敢使用多线程的原因。但是在实际开发中&#xff0c;多线程是一个不可避免的技术栈&#xff0…

ESP8266 MQTT服务器+阿里云

MQTT私有平台搭建&#xff08;EMQX 阿里云&#xff09; 阿里云服务器 EMQX 搭建私有MQTT平台 1、搜索EMQX开源版本 2、查看各版本EMQX支持的UBUNTU版本 3、查看服务器Ubuntu版本 4、使用APT安装模式 5、按照官网指示安装并启动 6、下载安装MQTTX测试工具 7、设置云服务…