ansible使用剧本操作硬盘

news2024/11/15 23:43:03

在一个节点添加一块20G的硬盘
通过ansible剧本判断是否存在第二块硬盘,且硬盘的大小大于10G
满足条件:
在此硬盘创建一个分区,大小为10G
使用此分区创建一个卷组
从此卷组中创建一个逻辑卷
将此逻辑卷格式化为xfs
将此逻辑卷挂载至/mountdir目录(目录自己用模块创建)
挂载后向目录中写入任意字符串
使用shell模块查看文件内容
卸载逻辑卷

有缘者观之。

node1 添加一块硬盘,其名为nvme0n2,大小20G
在这里插入图片描述

[root@ansible ~]# cat blk.yml
---
- name: 
  hosts: node1
  tasks:

  - name: check blk      #检查磁盘大小,小于10G就打印错误信息
    debug:
      msg: "the hard drive is too small"
    when: ansible_devices.nvme0n2 is defined and ansible_devices.nvme0n2.size < "10G" 

  - name: stop playbook    #磁盘小于10G,停止剧本执行
    meta: end_play
    when: ansible_devices.nvme0n2 is defined and ansible_devices.nvme0n2.size < "10G"


  - name: part the nvme0n2       #磁盘分区
    parted:
      device: /dev/nvme0n2
      number: 1
      flags:
        - lvm
      state: present
      part_end: 10GiB
  
  - name: create vg       #创建卷组
    lvg:
      vg: myvg
      pvs:
        - /dev/nvme0n2p1
      state: present

  - name: install lvm2        #创建逻辑卷需要安装lvm2
    yum:
      name: lvm2
      state: present

  - name: create lv           #创建逻辑卷
    lvol:
      vg: myvg
      lv: mylv
      size: 100m

  - name: make fs to xfs        #格式化逻辑卷
    filesystem:
      fstype: xfs
      dev: /dev/myvg/mylv

  - name: create /mountdir         #创建挂载点
    file:
      path: /mountdir
      state: directory

  - name: mount mylv on /mountdir    #挂载逻辑卷
    mount:
      path: /mountdir
      src: /dev/myvg/mylv
      fstype: xfs
      opts: rw
      state: mounted

  - name: create /mountdir/test.txt     #创建文件
    file:
      path: /mountdir/test.txt
      state: touch

  - name: write test to /mountdir/test.txt       #向文件中写入内容
    copy:
      content: "test!!!!"
      dest: /mountdir/test.txt

  - name: check content of /mountdir/test.txt      #打印文件内容,结果存入result
    shell: "cat /mountdir/test.txt"
    register: result

  - name: print the content of /mountdir/test.txt   #打印上一步的结果
    debug:
      var: result.stdout

  - name: unmount /dev/myvg/mylv         #卸载逻辑卷
    mount:
      path: /mountdir
      state: unmounted    

[root@ansible ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623748.html

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

相关文章

上海28岁程序员失业,感叹:测试估计没戏了,想去卖点煎饼果子养家~

程序员危机&#xff0c;似乎是一个跨不过去的坎&#xff0c;最近&#xff0c;在职场论坛上看到了一位魔都程序员被裁的帖子&#xff0c;现在因为“互联网寒冬”不少程序员优化被裁。 帖子具体内容如下&#xff1a;因为疫情&#xff0c;老大哥所在部门被砍掉了&#xff0c;部门所…

科技项目验收测试报告获取有什么注意事项?作用都有哪些?

当科技项目通过测试并准备交付验收时&#xff0c;需要编写科技项目验收测试报告。科技项目验收测试报告是项目验收的重要部分&#xff0c;是对项目质量的一种客观证明。获取科技项目验收测试报告需要注意什么呢?本文从专业角度探讨这个话题&#xff0c;并介绍验收测试报告的作…

【数据分享】1929-2022年全球站点的逐日降水量(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;说到常用的降水数据&#xff0c;最详细的降水数据是具体到气象监测站点的降水数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2022年全…

069:cesium围绕一个固定点自动左右旋转

第069个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置一个固定点为中心点,通过lookAtTransform来固化点,通过监听clock,来设置自动旋转。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共79行)相关…

网络安全怎么入行?有哪些误区需要避免?

目录 一、学习网络安全容易造成的误区 二、学习网络安全的基本准备与条件 三、网络安全学习路线 第一步&#xff1a;计算机基础 第二步&#xff1a;编程能力 第三步&#xff1a;安全初体验 第四步&#xff1a;分方向 怎么入门&#xff1f; 四、明确目标&#xff0c;定…

硬核科普:“画”说业界首个算网大脑

数字经济时代 算力已经成为核心生产力 中国移动提出“算力网络”全新理念 创新构建“连接算力能力” 新型信息服务体系 作为数字中国建设的国家队、主力军 中国移动布局算力网络的先锋队 移动云依托集团运营商禀赋优势 构建“4N31X”分布式云资源布局 为推动算力一点接入…

python 第四章 字符串str

系列文章目录 第一章 初识python 第二章 变量 第三章 基础语句 文章目录 4.1认识字符串字符串特征 4.2字符串输出4.3字符串输入4.4下标4.5切片4.6常用操作方法查找修改修改大小写转换字符串对齐删除空白字符判断 4.1认识字符串 字符串是 Python 中最常用的数据类型。我们一般使…

7min 到 40s:SpringBoot 优化居然可以玩出这么多花样

背景 耗时问题排查 观察 SpringBoot 启动 run 方法 监控 Bean 注入耗时 优化方案 如何解决扫描路径过多&#xff1f; 如何解决 Bean 初始化高耗时&#xff1f; 新的问题 SpringBoot 自动化装配&#xff0c;让人防不胜防 使用 starter 机制&#xff0c;开箱即用 背景 公…

我的GIT练习TWO

目录 前言 GIT安装教程 Git作者 GIT优点 GIT缺点 为什么要使用 Git GIT练习TWO ​编辑 总结 前言 Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照&#xff0c;以此来对整个项目进行版本管理 GIT安装教程 点击进入查看教程&#xff1a;点击进入…

怎么清除电脑缓存?

由于我们电脑的硬盘内部的很多数据的传输速度和外界介面的传输速度不同&#xff0c;这时就有一个所谓的缓存来给我们把这些数据传输速度不同的差异更好的缓冲了一下&#xff0c;也正是因为这个原因我们的电脑才能够运行的更加流畅&#xff0c;感觉不到卡顿。 电脑在使用的过程…

C++算法:有向无环图实现游戏技能树

文章目录 前言一、游戏技能树的逻辑二、实现代码1、建立图2、各种方法函数&#xff08;1&#xff09;、出度入度表生成方法&#xff08;2&#xff09;、读取技能点&#xff08;3&#xff09;、修改技能点&#xff08;4&#xff09;、拓扑排序 3、测试代码 总结 前言 前面文章图…

【Vue】三:Vue组件:props配置 父组件获取子组件

文章目录 1.props配置1.1 方式一&#xff1a;简单的接收方式&#xff1a;直接采用数组接收1.2 方式二&#xff1a;添加类型限制1.3 方法三&#xff1a;添加类型限制&#xff0c;添加默认值&#xff0c;添加必要性1.4 不要修改props中的值 2.从父组件获取子组件 1.props配置 父…

Vulkan Tutorial 0 引言

1 开发环境 在这一章中&#xff0c;我们将设置您开发Vulkan应用程序的环境&#xff0c;并安装一些有用的库。除了编译器之外&#xff0c;我们将使用的所有工具都与Windows、Linux和MacOS兼容&#xff0c;但安装它们的步骤有些不同&#xff0c;这就是为什么它们在这里被单独描述…

MySQL所有基本操作详解

一.MySQL的基本操作 首先sql操作中的关键字的是大小写不敏感的&#xff0c;create 和CREATE是一样的。 1.库操作 1. 1查看数据库 show databases;show 和databases 之间有一个或者多个空格注意是databases而不是database结尾分号是英文形式&#xff0c;分号在SQL中是表示一…

爆肝3月斩获字节Java后端Offer,分享下我的面试复盘心得

前言 我背景是NUS计算机硕士&#xff0c;武汉理工EE本科&#xff0c;春招收获腾讯、字节等后端实习Offer&#xff0c;目前仍在字节实习&#xff0c;今天给大家分享一下面试准备经验&#xff0c;我认为也同样适用于大家日常的学习。 在开始分享之前&#xff0c;我想给大家抛出…

C语言 socket学习整理

分三个topic来熟悉C语言的socket使用方法。 一台client与一台server之间的双向TCP通讯。使用select接口实现的多台client与一台server之间的通讯。使用epoll接口实现的多台client与一台server之间的通讯。 TCP通信模型与UDP通信模型的区别 UDP通信模型中&#xff0c;在通信开…

uniapp-微信公众号静默授权

第一次开发公众号&#xff0c;以为静默授权非常的复杂&#xff0c;后面才发现静默授权本质上就是跳一个微信的内部链接&#xff0c;拿到code&#xff0c;通过code再去获取openid即可。 在网上找到了一个比较详细的教程进行了一些改造 首先跳转静默授权的地址&#xff1a; htt…

人体检测技术之TOF

人体检测技术之TOF 1.概述 智能人脸/视频锁领域的人体检测需求是要求远距离达到1m左右即可,一旦在此距离内检测人,则锁唤醒进行人脸识别,视频录制等操作。所以,人体检测技术非常关键。 选型主要是几个维度: 1.支持检测的距离范围,能否准确输出距离信息 2.支持检测FO…

100天涨薪4k!从功能测试到自动化测试,我整理的超全学习指南!

今年3月份&#xff0c;由于经济压力让我下定决心进阶自动化测试&#xff0c;已经24的我做了3年功能测试&#xff0c;坐标广州薪资定格在8k&#xff0c;可能是生活过的太安逸&#xff0c;觉得8000的工资也够了&#xff0c;但是生活总是多变的&#xff0c;女朋友的突然怀孕&#…

想让ChatGPT和低代码开发实现完美结合?看这篇文章就行!

关于ChatGPT ChatGPT&#xff0c;一款代表着目前人工智能最高水平的产物&#xff0c;自问世开始就饱受期待。这款由OpenAI所开发出来的大型语言模型&#xff0c;使用GPT-4技术来实现。其基于预训练数据集&#xff0c;可以进行自动聊天、自动生成各种文本等&#xff0c;被广泛应…