[自动化运维工具] Ansible的简单介绍与常用模块详解

文章目录

  • 1. Ansible概述
    • 1.1 简介
    • 1.2 Ansible的特性
    • 1.3 Ansible的组件构成
    • 1.4 Ansible的工作原理
  • 2. Ansible环境部署
    • 2.1 前置准备
    • 2.2 安装ansible
    • 2.3 查看基本信息
    • 2.4 配置远程主机清单
  • 3. Ansible的常用模块
    • 3.1 ansible的基础命令格式
    • 3.2 Command模块
      • 3.2.1 基本格式和常用参数
      • 3.2.2 示例
    • 3.2 shell模块
      • 3.2.1基本格式和常用参数
      • 3.2.2 示例
    • 3.3 cron模块
      • 3.3.1 基本格式及常用参数
      • 3.3.2 示例
    • 3.4 user模块
      • 3.4.1 基本格式和常用参数
      • 3.4.2 示例
    • 3.5 group模块
      • 3.5.1 基本格式和常用参数
      • 3.5.2 示例
    • 3.6 copy模块
      • 3.6.1 基本格式和常用参数
      • 3.6.2 示例
    • 3.7 file模块
      • 3.7.1 基本格式及常用参数
      • 3.7.2 示例
    • 3.8 hostname模块
    • 3.9 ping模块
    • 3.10 yum/apt 模块
      • 3.10.1 常用参数
      • 3.10.1 示例
    • 3.11 service/systemd 模块
      • 3.11.1 常用参数
      • 3.11.2 示例
    • 3.12 script 模块
      • 3.12.1 示例
    • 3.13 mount 模块
      • 3.13.1 常用参数
        • 3.13.2 示例
    • 3.14 archive 模块
      • 3.14.1 常用参数
      • 3.14.2 示例
    • 3.15 unarchive 模块
      • 3.15.1 常用参数
      • 3.15.2 示例
    • 3.16 replace 模块
      • 3.16.1 常用参数
      • 3.16.2 示例
    • 3.17 setup 模块
      • 3.17.1 常用参数
      • 3.17.2 示例

1. Ansible概述

1.1 简介

自动化运维工具,也叫机器管理工具
可以实现批量管理多台(成百上千)主机,是应用级别的跨主机编排工具

1.2 Ansible的特性

  1. 无客户端agent存在,不需要在被控制的节点上安装额外的客户端应用
  2. 通过ssh协议与被控制节点通信
  3. 基于模块工作的,可以通过模块实现在被控制节点上执行相应的命令操作
  4. 很多模块具有幂等性,即可实现多次模块操作的状态如果没有发生改变,则不会重复执行

1.3 Ansible的组件构成

在这里插入图片描述

  • Inventory:Ansible管理的主机清单 /etc/anaible/hosts ,需要管理的服务清单 ;

  • Modules:Ansible执行命令的功能模块,多数为内置核心模块,也可自定义;

  • Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用;

  • API:供第三方程序调用的应用程序编程接口。

  • Playbook:基于YAML格式的文件,用于定义和描述一系列任务。

1.4 Ansible的工作原理

在这里插入图片描述
基于模块工作,通过模块实现在被控制节点上执行相应的命令操作。

2. Ansible环境部署

2.1 前置准备

角色IP安装工具
管理端192.168.67.100ansible
被管理端1192.168.67.101无需安装
被管理端2192.168.67.102无需安装
systemctl stop firewalld
setenforce 0

2.2 安装ansible

#在管理端安装 ansible。#先安装 epel 源
yum install -y epel-release	#yum安装ansible
yum install -y ansible

在这里插入图片描述

2.3 查看基本信息

ansible --version

在这里插入图片描述

#查看ansible 目录结构
tree /etc/ansible├── ansible.cfg			#ansible的配置文件,一般无需修改
├── hosts				#ansible的主机清单,用于存储需要管理的远程主机的相关信息
└── roles/				#公共角色目录

在这里插入图片描述

2.4 配置远程主机清单

cd /etc/ansiblevim hosts       
[webservers]			#配置组名
192.168.67.101			#组里包含的被管理的主机IP地址或主机名(主机名需要先修改/etc/hosts文件)[dbservers]
192.168.67.102

在这里插入图片描述

#配置密钥对验证
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

在这里插入图片描述

yum install -y sshpass
sshpass -p '123123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.67.101
sshpass -p '123123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.67.102   

在这里插入图片描述

#免密登录测试,以被管理端1为例
ssh 192.168.67.101

在这里插入图片描述

3. Ansible的常用模块

在这里插入图片描述

3.1 ansible的基础命令格式

#ansible命令格式
ansible 组名 -m 模块名 -a '参数'#-a 用于向模块传递参数
#查看当前系统中的ansible模块
ansible-doc -l

在这里插入图片描述

#查看特定模块的摘要信息
ansible-doc -s <module_name>#示例
ansible-doc -s pn_ospf 

在这里插入图片描述

3.2 Command模块

在远程主机执行命令,此为默认模块,可忽略 -m 选项。

#注意:此命令不支持 $VARNAME < > | ; & 等,即不支持管道符、重定向符号。#注意:此模块不具有幂等性

3.2.1 基本格式和常用参数

chdir	在远程主机上运行命令前,提前进入目录
creates	判断指定文件是否存在,如果存在,不执行后面的操作
removes	判断指定文件是否存在,如果存在,执行后面的操作

3.2.2 示例

#指定组/IP执行命令
ansible 192.168.67.101 -m command -a 'date'ansible webservers -a 'date'  
#忽略-m选项,默认使用command格式

在这里插入图片描述

#chdir参数
ansible all -m command -a "chdir=/home  ls ./"

在这里插入图片描述

#creates参数
ansible all -m command -a "creates=/opt/test.txt  ls ./"

在这里插入图片描述

#removes参数
ansible all -m command -a "removes=/opt/test.txt  ls ./"

在这里插入图片描述

3.2 shell模块

command模块类似,在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令

#注意:此模块不具有幂等性#注意:此模块支持管道符号等功能

3.2.1基本格式和常用参数

ansible <组/IP/all> -m shell -a ' ' 
chdir	在远程主机上运行命令前,提前进入目录
creates	判断指定文件是否存在,如果存在,不执行后面的操作
removes	判断指定文件是否存在,如果存在,执行后面的操作

3.2.2 示例

#shell模块能够使用管道符
ansible webservers -m shell -a "ifconfig  | awk 'NR==2 {print \$2}'"

在这里插入图片描述

3.3 cron模块

在远程主机定义crontab任务计划

ansible-doc -s cron				#按 q 退出

在这里插入图片描述

3.3.1 基本格式及常用参数

#基本格式
ansible <组/IP/all> -m cron -a ' '
minute/hour/day/month/weekday	分/时/日/月/周
job	任务计划要执行的命令
name	任务计划的名称
user	指定计划任务属于哪个用户,默认是root用户
state	present表示添加(可以省略),absent表示移除。

3.3.2 示例

ansible dbservers -m cron -a 'minute=30 hour="8,20"  weekday="1-5"  job="/usr/bin/cp  -f /var/log/message /opt" name="backup1"'
#周一到周五早八点半和晚八点半 执行 复制/var/log/messages 到 /opt

在这里插入图片描述
在这里插入图片描述

ansible webservers -m cron -a 'day="5-25/10" month="*/2" job="/usr/bin/cp  -f /var/log/message /opt" name="backup1"'5-15/10 #隔十天 
#每两个月的5 15 25 执行复制

在这里插入图片描述

在这里插入图片描述

#删除#指定状态为absentansible webservers -m cron -a 'name="backup1" state=absent'

在这里插入图片描述
在这里插入图片描述

3.4 user模块

在远程主机管理用户账户

3.4.1 基本格式和常用参数

ansible <组/IP/all> -m user -a ' '
name	                用户名,必选参数
state=present|absent	创建账号或者删除账号,present表示创建,absent表示删除
system=yes|no	        是否为系统账号
uid	                    用户uid
group	                用户基本组
groups	                用户所属附加组
shell	                默认使用的shell
create_home=yes|no	    是否创建家目录
password	            是否用户的密码,建议使用加密后的字符串
remove=yes|no	        当state=absent时,是否删除用户的家目录

3.4.2 示例

ansible dbservers -m user -a 'name="test1"'				#创建用户test1
ansible dbservers -m command -a 'tail -n1 /etc/passwd'

在这里插入图片描述

ansible dbservers -m user -a 'name="test1" state=absent'	#删除用户test1
ansible dbservers  -a 'tail -n1 /etc/passwd'

在这里插入图片描述

3.5 group模块

在远程主机进行用户组管理的模块

3.5.1 基本格式和常用参数

ansible <组/IP/all> -m group -a ' '
name                  用户名,必选参数state=present|absent  创建账号或者删除账号,present表示创建,absent表示删除system=yes|no         是否为系统账号gid                   组id

3.5.2 示例

ansible dbservers -m group -a 'name=mysql gid=306 system=yes'	#创建mysql组

在这里插入图片描述

ansible dbservers -m user -a 'name=test1 uid=306 system=yes group=mysql'	#将test1用户添加到mysql组中

在这里插入图片描述

ansible dbservers -a 'id test1'    

在这里插入图片描述

3.6 copy模块

从ansible服务器主控端复制文件到远程主机

#注意:src=file 如果是没指明路径,则为当前目录或当前目录下的files目录下的file文件

3.6.1 基本格式和常用参数

#基本格式
ansible < > -m copy -a 'src=   dest=   [owner= ] [mode=]   '
src	指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录	如果源是目录则目标也要是目录
dest	指出复制文件的目标及位置,使用绝对路径	如果源是目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内容
mode	指出复制时,目标文件的权限	
owner	指出复制时,目标文件的属主	
group	指出复制时,目标文件的属组	
content	指出复制到目标主机上的内容	不能与src一起使用

3.6.2 示例

ansible dbservers -m copy -a 'src=/etc/fstab dest=/opt/fstab.bak owner=root mode=640'

在这里插入图片描述

ansible dbservers -a 'ls -l /opt'
ansible dbservers -a 'cat /opt/fstab.bak'

在这里插入图片描述

ansible dbservers -m copy -a 'content="helloworld" dest=/opt/hello.txt'  
#将helloworld写入/opt/hello.txt文件中

在这里插入图片描述

ansible dbservers -a 'cat /opt/hello.txt' 

在这里插入图片描述

3.7 file模块

在远程主机管理文件属性、创建软链接等

3.7.1 基本格式及常用参数

#基本格式
ansible < > -m file -a ''
path	指定远程服务器的路径,也可以写成"dest",“name”
state	状态,可以将值设定为directory表示创建目录,设定为touch表示创建文件,设定为link表示创建软链接,设定为hard表示创建硬连接,设定为absent表示删除目录文件或链接
mode	文件复制到远程并设定权限,默认file=644,directory=755
owner	文件复制到远程并设定属主,默认为root
group	文件复制到远程并设定属组,默认为root
recurese	递归修改
src	指的是目标主机上的源文件。与copy模块不同。

3.7.2 示例

#修改文件的属主属组权限等
ansible dbservers -m file -a 'owner=test1 group=mysql mode=644 path=/opt/fstab.bak'			

在这里插入图片描述
在这里插入图片描述

#软连接  state=link
ansible dbservers -m file -a 'path=/opt/fstab.link src=/opt/fstab.bak state=link' 

在这里插入图片描述
在这里插入图片描述

#创建一个空文件,state=touch
ansible dbservers -m file -a "path=/opt/abc.txt state=touch"

在这里插入图片描述
在这里插入图片描述

#创建一个空目录,state=directory
ansible dbservers -m file -a "path=/data state=directory"

在这里插入图片描述
在这里插入图片描述

#删除一个文件,state=absent
ansible dbservers -m file -a "path=/opt/abc.txt state=absent"	

在这里插入图片描述

ansible dbservers -a 'removes=/opt/abc.txt ls ./'

在这里插入图片描述

3.8 hostname模块

用于管理远程主机上的主机名

#修改主机名
ansible dbservers -m hostname -a "name=mysql01"

在这里插入图片描述
在这里插入图片描述

3.9 ping模块

测试远程主机的连通性。

ansible all -m ping

在这里插入图片描述

3.10 yum/apt 模块

在远程主机上安装与卸载软件包

3.10.1 常用参数

name	需要安装的服务名
state=present(缺省值)/absent	状态,abasent表示卸载服务

3.10.1 示例

ansible webservers -m yum -a 'name=httpd'					#安装服务

在这里插入图片描述

#卸载服务
ansible webservers -m yum -a 'name=httpd state=absent'		

在这里插入图片描述

3.11 service/systemd 模块

用于管理远程主机上的管理服务的运行状态。

3.11.1 常用参数

name	指定需要控制的服务名称
state	指定服务状态,其值可以为stopped、started、reloaded、restarted、status
enabled	指定服务是否为开机启动,yes为启动,no为不启动
daemon_reload	yes:重启systemd服务,让unit文件生效

3.11.2 示例

#先安装服务
ansible webservers -m yum -a 'name=httpd'#启动httpd服务
ansible webservers -m service -a 'enabled=true name=httpd state=started'#查看web服务器httpd运行状态
ansible webservers -a 'systemctl status httpd'			

在这里插入图片描述

3.12 script 模块

在远程主机执行shell脚本

#注意:script模块不具有幂等性,所以建议用剧本来执行。

3.12.1 示例

 #在本地写一个脚本vim test.sh#!/bin/bashecho "hello ansible from script" > /opt/test2.txt、chmod +x test.sh                              #给脚本执行权限

在这里插入图片描述

ansible dbservers -m script -a '/opt/test.sh'      #远程运行本地脚本

在这里插入图片描述

ansible dbservers -a 'cat /opt/test2.txt'   #查看生成的文件内容

在这里插入图片描述

3.13 mount 模块

在远程主机挂载目录/设备文件

3.13.1 常用参数

src	指定要挂载的设备或分区路径。
path	指定要挂载到的目标路径。
fstype	指定要挂载的文件系统类型。
state	指定挂载状态,可选值为 mounted、unmounted 或 absent。
opts	指定挂载选项,例如挂载选项或参数。
3.13.2 示例
ansible dbservers -m mount -a 'src=/dev/sr0 path=/mnt state=mounted fstype=iso9660'
#使用 Ansible 的 mount 模块将设备 /dev/sr0 的内容挂载到目标路径 /mnt。
#文件系统类型为 iso9660,并将该设备标记为已挂载状态

在这里插入图片描述
在这里插入图片描述

3.14 archive 模块

在远程主机压缩文件

3.14.1 常用参数

ath	指定要打包的源目录或文件的路径。
dest	指定打包文件的输出路径。
format	指定打包文件的格式,可以是 `zip``tar``gz``bzip2`。默认为 `tar格式`。
remove	指定是否在打包文件之后,删除源目录或文件。可选值为 yes 或 no。默认为 no,即不删除源目录或文件。

3.14.2 示例

ansible dbservers -m archive -a "path=/etc/yum.repos.d/ dest=/opt/repo.zip format=zip"

在这里插入图片描述

#remove参数的使用,压缩后删除源文件
ansible dbservers -m archive -a "path=/opt/test2.txt,/opt/123.txt dest=/opt/abc123.tar.gz format=gz remove=yes"

在这里插入图片描述

3.15 unarchive 模块

将本地或远程主机的压缩包在远程主机解压缩

3.15.1 常用参数

copy	    指定是否将打包文件复制到远程节点以进行解压缩。
remote_src	(已弃用)改用 copy 参数。
src	        指定要解压缩的打包文件路径,可以是本地路径或远程路径。
dest	    指定要将文件解压缩到的目标目录。
creates	    指定一个文件路径,如果该文件已经存在,则不进行解压缩操作。
remote_tmp	用于制定远程节点上的临时目录。默认为 /tmp。
#copy参数
copy参数的可选值为 `yes``no`。
默认为 `yes`,即先将文件从控制节点复制到远程节点,然后在远程节点上进行解压缩。
如果已经将文件分发到了目标节点并想要提高效率,可以将该值设置为 `no`。
反效果的参数为 `remote_src`

3.15.2 示例

#现在ansible主机建立压缩包
tar cf test.tar.gz test.sh #将 ansible 主机的压缩文件拷贝到到远程主机并解压,修改文件所属组和用户
ansible dbservers -m unarchive -a "src=/opt/test.tar.gz dest=/root copy=yes"

在这里插入图片描述

3.16 replace 模块

在远程主机修改文件内容

类似于sed命令,主要也是基于正则进行匹配和替换。

3.16.1 常用参数

path	指定需要处理的文件路径
regexp	用于匹配需要替换内容的正则表达式
replace	用于替换匹配内容的字符串
after	在哪个字符串之后进行替换,默认为空
before	在哪个字符串之前进行替换,默认为空
backup	是否备份文件,选项为 yes 或 no

3.16.2 示例

#在db服务器的主机下创建测试文件
vim /opt/test.txt
11 22 33 44 55 66
aa bb cc dd ee ff
1a 2b 3c 4d 5e 6f
#匹配 33 并修改为 ccc
ansible dbservers -m replace -a "path=/opt/test.txt regexp='33' replace='cc'"#查看
ansible dbservers -a "cat /opt/test.txt"

在这里插入图片描述

#匹配到任意一个或多个开头的行增加注释
ansible dbservers -m replace -a "path=/opt/test.txt regexp='^(.*)' replace='#\1'"

在这里插入图片描述

#取消注释
ansible dbservers -m replace -a "path=/opt/test.txt regexp='^#(.*)' replace='\1'"

在这里插入图片描述

#匹配以 a 开头的后面有一个或者多个字符的行,并在前面添加 # 注释
ansible dbservers -m replace -a "path=/opt/test.txt regexp='^(a.*)' replace='#\1'"

在这里插入图片描述

3.17 setup 模块

使用facts组件获取远程主机的系统信息(facts信息)

3.17.1 常用参数

filter	指定需要过滤的条件,仅返回满足条件的主机信息,默认为空

3.17.2 示例

ansible webservers -m setup				#获取mysql组主机的facts信息ansible dbservers -m setup -a 'filter=*ipv4'    #使用filter可以筛选指定的facts信息

在这里插入图片描述

#facts信息主机的各种信息,包括硬件、操作系统、网络等。运行命令后,会返回一个包含主机 facts 信息的 JSON 格式输出。

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

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

相关文章

通过51单片机控制28byj48步进电机按角度正反转旋转

一、前言 本项目基于STC89C52单片机&#xff0c;通过控制28BYJ-48步进电机实现按角度正反转旋转的功能。28BYJ-48步进电机是一种常用的电机&#xff0c;精准定位和高扭矩输出&#xff0c;适用于许多小型的自动化系统和机械装置。 在这个项目中&#xff0c;使用STC89C52单片机…

跟着Nature Communications学作图:纹理柱状图+添加显著性标签!

&#x1f4cb;文章目录 复现图片设置工作路径和加载相关R包读取数据集数据可视化计算均值和标准差方差分析组间t-test 图a可视化过程图b可视化过程合并图ab 跟着「Nature Communications」学作图&#xff0c;今天主要通过复刻NC文章中的一张主图来巩固先前分享过的知识点&#…

Git同时配置Gitee和GitHub

Git同时配置Gitee和GitHub 一、删除原先ssh密钥二、生成密钥 这里的同时配置是针对于之前配置过单个gitee或者github而言的&#xff0c;如果需要看git从安装开始的配置&#xff0c;则可以看这一篇文章 git安装配置教程 一、删除原先ssh密钥 在C盘下用户/用户名/.ssh文件下找到…

ESP32S3入手体验测试

ESP32S3入手体验测试 &#x1f516;所入手的型号是YD-ESP32-S3 N16R8,该款和乐鑫官方推出的ESP32-S3-DevKitC-1配置差不多。 &#x1f388;乐鑫官方介绍&#xff1a;ESP32-S3-DevKitC-1 v1.1 &#x1f530;两者采用的模组&#xff1a;ESP32-S3-WROOM-1 和ESP32-S3-WROOM-1U模组…

“Java与Redis的默契舞曲:优雅地连接与存储数据“

文章目录 引言1. Java连接上Redis2. Java对Redis进行存储数据2.1 存储set类型数据2.2 存储hash类型数据2.3 存储list类型数据 总结 引言 在现代软件开发中&#xff0c;数据存储和处理是至关重要的一环。Java作为一门强大的编程语言&#xff0c;与Redis这个高性能的内存数据库相…

2023-11 | 短视频批量下载/爬取某个用户的所有视频 | Python

这里以鞠婧祎的个人主页为demo https://www.douyin.com/user/MS4wLjABAAAACV5Em110SiusElwKlIpUd-MRSi8rBYyg0NfpPrqZmykHY8wLPQ8O4pv3wPL6A-oz 【2023-11-4 23:02:52 星期六】可能后面随着XX的调整, 方法不再适用, 请注意 找到接口 找到https://www.douyin.com/aweme/v1/web/…

C++ map 的使用

下面的是关于 map 的介绍。来自 map - C Reference (cplusplus.com) 的翻译&#xff0c;您可以看也可以不看哈&#xff01; map 是关联容器&#xff0c;它按照特定的次序(按照 key 来比较)存储由键值 key 和值 value组合而成的元素。在 map 中&#xff0c;键值 key 通常用于排序…

linux 创建git项目并提交到gitee(保姆式教程)

01、git安装与初始化设置 mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ apt install mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.name "用户名" mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.ema…

Python自定义函数练习(持续更新中~)

1.计算矩阵的面积和周长&#xff1a; class Rectangle:def __init__(self, width, height):self.width widthself.height heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width self.height)if __name__ "__main__"…

AtCoder Beginner Contest 327 G. Many Good Tuple Problems(带标号二分图计数+有区别小球放入有区别盒子)

题目 一个长为n(n<30)的原始序列x&#xff0c;x[i]可以取值0或1 一个长为m(m<1e9)的点对序列(s,t)&#xff0c; s序列第i项和t的第i项&#xff0c;均可以取值[1,n]&#xff0c; 如果构造好s和t后&#xff0c;对任意都存在01序列x使得&#xff0c; 则称这个序列是合法…

【RabbitMQ】 RabbitMQ 消息的延迟 —— 深入探索 RabbitMQ 的死信交换机,消息的 TTL 以及延迟队列

文章目录 一、死信交换机1.1 什么是死信和死信交换机1.2 死信交换机和死信队列的创建方式 二、消息的 TTL2.1 什么是消息的 TTL2.2 基于死信交换机和 TTL 实现消息的延迟 三、基于 DelayExchang 插件实现延迟队列3.1 安装 DelayExchang 插件3.2 DelayExchang 实现消息延迟的原理…

perl列表创建、追加、删除

简介 perl 列表追加元素 主要是通过push和unshift函数来实现。其中&#xff0c;push是追加到列表尾&#xff0c;unshift是追加到列表头。 perl列表删除元素 主要是通过pop和shift函数来实现。其中&#xff0c;pop是从列表尾删除一个元素&#xff0c; shift是从列表头删除一…

6大场景,玩转ChatGPT!

文章目录 一、故事叙述提问举例 二、产品描述提问举例 三、报告撰写提问举例 四、邮件和信件撰写提问举例 五、新间稿和公告撰写提问举例 六、学术论文和专业文章撰写提问举例 本文是在GPT3.5版本下演示的 我们知道AI技术不仅能够自动生成文章和内容&#xff0c;还可以根据我们…

【大数据】NiFi 中的重要术语

NiFi 中的重要术语 1.Flow Controller2.Processor3.Connection4.Controller Service5.Process Group6.FlowFile 那些一个个黑匣子称为 Processor&#xff0c;它们通过称为 Connection 的队列交换名为 FlowFile 的信息块。最后&#xff0c;FlowFile Controller 负责管理这些组件…

XSAN数据恢复-存储空间架构迁移时误格式化存储系统的XSAN数据恢复案例

XSAN数据恢复环境&#xff1a; 昆腾存储&#xff0c;MAC OS操作系统&#xff0c;存放视频类数据&#xff08;MXF、MOV等格式文件&#xff09;。 XSAN故障&检测&#xff1a; 将存储空间从XSAN架构迁移到STORNEXT架构后&#xff0c;存储空间中数据全部丢失。 故障存储中一共…

蓝桥杯官网填空题(方格计数)

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如下图所示&#xff0c;在二维平面上有无数个 11 的小方格。 我们以某个小方格的一个顶点为圆心画一个半径为 50000 的圆。 你能计算出这个圆里有多少个完整的小方…

Azure 机器学习 - 设置 AutoML 训练时序预测模型

目录 一、环境准备二、训练和验证数据三、配置试验支持的模型配置设置特征化步骤自定义特征化 四、可选配置频率和目标数据聚合启用深度学习目标滚动窗口聚合短时序处理非稳定时序检测和处理 五、运行试验六、用最佳模型进行预测用滚动预测评估模型精度预测未来 七、大规模预测…

Flink源码解析八之任务调度和负载均衡

源码概览 jobmanager scheduler:这部分与 Flink 的任务调度有关。 CoLocationConstraint:这是一个约束类,用于确保某些算子的不同子任务在同一个 TaskManager 上运行。这通常用于状态共享或算子链的情况。CoLocationGroup & CoLocationGroupImpl:这些与 CoLocationCon…

已完结,给小白的《50讲Python自动化办公》

大家好&#xff0c;这里是程序员晚枫&#xff0c;小红薯也叫这个名。 写在前面 上个周末去成都参加了第8届中国开源年会&#xff0c;认识了很多行业前辈和优秀的同龄人。 我发现在工作之外还能有一番事业的人&#xff0c;都有一个让我羡慕的共同点&#xff1a;有一个拿得出手…

C++笔记之表驱动法

C笔记之表驱动法 code review! 文章目录 C笔记之表驱动法0.数组小技巧1.std::map实现2.结构体实现3.数组和结构体结合实现表驱动法-存储函数指针4.表驱动法概念-ChatGPT5. 直接访问表&#xff08;Direct Access Table&#xff09;的示例6. 索引访问表&#xff08;Indexed Acc…