目录

Linux Ansible:作用与原理详解

一、Ansible 的核心作用

1. 配置管理(Configuration Management)

2. 应用部署(Application Deployment)

3. 任务编排(Orchestration)

4. 其他扩展作用

二、Ansible 的核心原理

1. 架构组成:核心组件

2. 核心流程:任务执行步骤

3. 关键特性:为什么选择 Ansible?

ansible部署

1,安装RHEL9版本虚拟机

1.1 配置IP信息,时区,用户,分区等

分区大小:

1.2 安装完成,将ansibleIP改为192.168.100.100

2、配置本地yum源,在/etc/yum.repos.d/目录下新建server.repo,然后配置。

repodata在AppStream和BaseOS下

3、安装软件包组

4,添加node,添加ansible的文件

4.1打开管理器

4.2 用fz将镜像传到root用户下,但是需要先开启远程连接

4.3 设置可以远程连接

5,创建五台node

Vrit-manager

先创建一台名为master,其余都克隆

5.2 安装好后配置好IP等信息

5.3 进入系统:克隆其余五台

6,修改每一台的主机名,IP地址以及删除UUID

Virbro桥接和node通信

Ens33和真实机通信

6.1 重启网卡并ping测试是否可以相互通信

 

7,master为宿主机,其余五台为虚拟机

7.1 为了方便通信,ansible将所有的IP地址和域名写入 /etc/hosts,然后把文件内容发送给每一台虚拟机。

先将文件传给master,然后通过master批量发送给每一台虚拟机,发送之前先做免密钥

7.2 编辑/etc/hosts,并方式送给master

7.3 配置master主机的免密钥登录

在master将/etc/hosts文件都发给所有主机

 

8,配置yum仓库

在宿主机ansible中配置本地yum仓库,然后安装httpd服务

将包文件上传到/var/www/html/目录下,然后重启httpd服务,并设置下次启动生效

关闭防火墙,selinux

8.1 在ansible主机中部署yum仓库

8.2 测试安装 三个工具包

9,student用户提权(管理ansible时用普通用户管理,所以需要对student用户提权)

10,安装ansible(用student管理)

11,配置ansible

11.1 定义主机清单位置

修改文件:

1,定义执行命令的对象

2,student用户来管理ansible

打开远程登录

3,创建roles目录,定义目录路径

4,开放ssh远程登录验证

5,定义ansible模块存放路径

创建collections目录

[student@master ansible]$mkdir collections

6,student用户做了Linux的权限委派,但是没做ansible,开启四个

7,测试

单个测试:

[student@master ansible]$ansible node1

测试所有

[student@master ansible]$ansible all -m ping


Linux Ansible:作用与原理详解

Ansible 是一款基于 Python 开发的开源自动化工具,专为 Linux(及 Unix 类系统、Windows)环境设计,核心目标是简化服务器运维中的重复性工作,实现 “自动化部署、配置管理、任务编排” 三大核心场景。它无需在目标主机安装客户端(Agentless),凭借 SSH 协议(或 WinRM 协议 for Windows)即可实现对多台主机的批量管控,是 DevOps 流程中不可或缺的工具之一。

一、Ansible 的核心作用

Ansible 围绕 “自动化运维” 展开,可覆盖从单主机配置到复杂集群部署的全场景,具体作用可分为以下 4 类:

1. 配置管理(Configuration Management)

批量标准化主机配置,确保多台主机的软件、文件、服务状态一致,避免 “人工配置不一致” 导致的运维隐患。

  • 典型场景
    • 批量安装 / 卸载软件(如在 100 台主机上安装 Nginx、MySQL)。
    • 统一配置文件(如同步 /etc/nginx/nginx.conf 到所有 Web 服务器,确保配置一致)。
    • 管理系统服务(如批量启动 / 停止 / 设置开机自启 Docker、Redis 服务)。
    • 配置系统参数(如调整内核参数 sysctl.conf、设置防火墙规则 iptables)。

2. 应用部署(Application Deployment)

自动化应用发布流程,减少人工操作(如上传代码、执行编译、重启服务)的失误,提高部署效率。

  • 典型场景
    • 从 Git 仓库拉取代码到目标主机的 Web 根目录(如 /var/www/html)。
    • 自动化编译打包(如对 Java 项目执行 mvn package,生成 Jar 包后部署到 Tomcat)。
    • 滚动更新应用(如先更新 1 台测试机,验证无误后批量更新所有生产机,避免服务中断)。

3. 任务编排(Orchestration)

按 “顺序 / 依赖关系” 执行多步复杂任务,实现跨主机、跨服务的协同自动化(如集群部署)。

  • 典型场景
    • 部署 Kubernetes 集群:先初始化 Master 节点,再将 Node 节点加入集群,最后部署网络插件(如 Calico)。
    • 数据库主从同步配置:先配置主库(开启二进制日志、创建同步账号),再配置从库(设置主库地址、启动同步进程)。
    • 多服务联动启动:先启动数据库,再启动缓存服务,最后启动 Web 应用(确保服务依赖顺序正确)。

4. 其他扩展作用

  • 批量命令执行:无需登录每台主机,直接批量运行命令(如 ansible web -m command -a "free -h" 查看所有 Web 主机内存使用情况)。
  • 云资源管理:通过插件对接 AWS、阿里云、华为云等,自动化创建 / 删除 EC2 实例、云硬盘等资源。
  • 日志 / 监控集成:与 ELK(日志)、Prometheus(监控)联动,自动化配置日志采集、监控指标上报规则。

二、Ansible 的核心原理

Ansible 采用 “控制节点(Control Node)+ 目标节点(Managed Nodes) ” 的架构,核心是 “无客户端、基于模块、通过 Playbook 编排”,具体原理可拆解为 5 个关键环节:

1. 架构组成:核心组件

Ansible 的架构极简,仅需在 “控制节点” 安装 Ansible,目标节点无需任何额外软件(依赖系统自带的 SSH 服务),核心组件如下:

组件作用
控制节点(Control Node)安装 Ansible 的主机(通常是运维人员的工作机或专门的运维服务器),负责发起自动化任务。
目标节点(Managed Nodes)被管控的服务器(如 Web 服务器、数据库服务器),需开启 SSH 服务并允许控制节点免密登录。
Inventory(主机清单)配置文件(默认路径 /etc/ansible/hosts),定义 “目标节点的分组、IP / 域名、SSH 端口” 等信息,Ansible 仅对清单中的主机生效。
模块(Modules)Ansible 执行具体任务的 “工具单元”(如 yum 模块安装软件、copy 模块同步文件、service 模块管理服务),内置超 2000 个模块,支持自定义。
Playbook(剧本)基于 YAML 语法的配置文件,将 “多个模块按顺序 / 逻辑” 组合成 “任务集”,实现复杂流程的自动化(如 “安装 Nginx → 配置文件 → 启动服务”)。
SSH 协议控制节点与目标节点的通信载体,默认通过 SSH 远程执行命令(目标节点需开启 SSH,推荐配置控制节点免密登录,避免每次输入密码)。

2. 核心流程:任务执行步骤

Ansible 执行自动化任务的流程可概括为 “准备 → 解析 → 执行 → 反馈” 四步,具体如下:

  1. 步骤 1:准备 Inventory 与认证

    • 运维人员在控制节点定义 Inventory,将目标节点按业务分组(如 [web] 组包含所有 Web 服务器,[db] 组包含数据库服务器)。
    • 配置控制节点到目标节点的 SSH 免密登录(通过 ssh-keygen 生成密钥,ssh-copy-id 分发公钥到目标节点),避免任务执行中频繁输入密码。
  2. 步骤 2:解析任务指令(Ad-hoc 或 Playbook)

    • Ansible 支持两种任务发起方式,控制节点会先解析指令:
      • Ad-hoc 命令:单条临时命令(如批量查看主机磁盘使用情况),格式:ansible <主机组> -m <模块> -a <模块参数>
        示例:ansible web -m shell -a "df -h /"(查看 web 组所有主机的根目录磁盘使用)。
      • Playbook 剧本:复杂任务的 YAML 文件(如部署 Nginx),通过 ansible-playbook <剧本名.yml> 执行,Ansible 会解析 YAML 中的 “主机组、任务列表、模块参数”。
  3. 步骤 3:生成临时执行脚本并推送

    • Ansible 不会在目标节点留存任何文件,而是在控制节点动态生成 “临时 Python 脚本”(由模块逻辑转换而来)。
    • 通过 SSH 协议将临时脚本推送到目标节点的临时目录(默认 /tmp/ansible-xxx/),并赋予执行权限。
  4. 步骤 4:目标节点执行脚本并返回结果

    • 目标节点通过 SSH 执行临时脚本,完成具体任务(如安装软件、修改配置)。
    • 执行完成后,目标节点删除临时脚本(避免残留),并将 “执行结果”(成功 / 失败、输出日志)通过 SSH 回传至控制节点。
  5. 步骤 5:控制节点展示结果

    • 控制节点将所有目标节点的执行结果按 “颜色 + 格式” 汇总展示(绿色:成功且无变更;黄色:成功且有变更;红色:失败),便于运维人员快速排查问题。

3. 关键特性:为什么选择 Ansible?

Ansible 的原理设计决定了它的核心优势,也是其广泛应用的原因:

  • Agentless(无客户端):目标节点无需安装任何软件,降低部署成本和系统侵入性,尤其适合已上线的生产环境。
  • 幂等性(Idempotency):同一任务重复执行多次,结果一致(如 “安装 Nginx” 任务,第一次执行会安装,后续执行仅检查是否已安装,不重复操作),避免重复执行导致的异常。
  • 声明式语法(Playbook):通过 YAML 描述 “最终要达到的状态”(如 “Nginx 服务必须启动”),而非 “具体执行步骤”,简化脚本编写。
  • 模块化扩展:内置模块覆盖绝大多数运维场景,同时支持 Python 自定义模块,可适配企业个性化需求(如对接内部运维平台)。
一、自动化与linux系统管理(为什么要学习自动化运维)
大多系统管理和基础架构管理都依赖于通过图形或者命令行用户界面执行的手动任务,系统管理员通常使用检查清单、其他文档或者记忆的例程来执行标准任务,这样的做法容易出错,系统管理员很容易跳过某个步骤或者错误的执行某个步骤,对步骤执行是否正确或者产生的预期的结果的验证通常有限。
自动化可以帮助我们避免手动管理系统和基础架构造成的问题。作为系统管理员,我们可以使用它来确保快速、正确地部署和配置所有系统。这样,我们可以自动执行日常计划中的重复性任务,从而空出时间并专注于更重要的事情。
二,什么是ansible
Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
Ansible是一款开源自动化平台,它是一种简单的自动化语言,能够在ansible playbook中完美地描述IT应用基础架构。它也是一个自动化引擎,可运行ansible playbook。
Ansible功能很强大,可以利用ansible部署应用,也可将它用于配置管理、工作流自动化和网络自动化。Ansible可以用于编排整个应用生命周期。
Ansible围绕无代理架构构建。通常而言,ansible通过OpenSSH或WinRM连接它所管理的主机并且运行任务,方法通常是(但不总是)将称为ansible模块的小程序推送至这些主机。这些程序用于将系统置于需要的特定状态。在ansible运行完其任务后,推送的所有模块都会被删除。
Ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。ansible目前已经已经被红帽官方收购
三,ansible优点
  1. 跨平台支持:ansible提供Linux、windows、unix和网络设备的无代理支持,适用于物理、虚拟、云和容器环境。
  2. 人类可读的自动化:ansible playbook采用YAML文本文件编写,易于阅读,有助于确保所有人都能理解它们的用途。
  3. 完美描述应用:可以通过ansible playbook进行每一种更改,并描述和记录应用环境的每一个方面。
  4. 轻松管理版本控制:ansible playbook和项目是纯文本,它们可以视作源代码,放在您的现有版本控制系统中。
  5. 支持动态清单:可以从外部来源动态更新ansible管理的计算机的列表,随时获取所有受管服务器的当前正确列表,不受基础架构或位置的影响。
  6. 编排可与其他系统轻松集成:能够利用环境中现有的HP SA、Puppet、Jenkins、红帽卫星和其他系统,并且集成到您的ansible工作中。
4,ansible管理方式
Ansible是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用SSH进行远程连接。无需在被管节点上安装附加软件,可使用各种编程语言进行扩展。Ansible管理系统由控制主机和一组被管节点组成。控制主机直接通过SSH控制被管节点,被管节点通过 Ansible的资源清单 (inventory)来进行分组管理。
5,ansible系统架构

5,在控制主机时,ansible是如何知道哪些主机是被自己控制的呢?
这就需要一个Host Inventory(主机清单),用于记录ansible可以控制网络中的哪些主机。另外,要配置和管理这些主机,可以采用两种方式,一种是单一的命令实现,另外一种也可以使用palybook实现。单一的命令模式是采用不同的模块进行管理,一个模块类似于一些管理的命令,如top,ls,ping等等,适用于临时性的操作任务。如果需要执行一些例行性或经常性的操作,则需要采用playbook的方式,playbook类似于一个脚本,将多个模块按一定的逻辑关系进行组合,然后执行。ansible还支持一些插件,如邮件、日志等,在和远程主机通信时,也会采用类似的连接插件,这里使用则是SSH协议的插件进行通信。
核心: ansible
Core Modules: ansible自带的模块
Custom Modules: 核心模块功能不足时,用户可以添加扩展模块
Plugins: 通过插件来实现记录日志,发送邮件或其他功能
Playbooks: 剧本,YAML格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能
Connection Plugins: ansible基于连接插件连接到各个主机上,默认是使用ssh
Host Inventory: 记录由Ansible管理的主机信息,包括端口、密码、ip等
6,ansible任务执行模式
Ansible系统由控制主机对被管节点的操作方式可分为两类,即ad-hoc和playbook:
ad-hoc模式(点对点模式)
使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。就相当于bash中的一句话shell。
playbook模式(剧本模式)
是Ansible主要管理方式,也是Ansible功能强大的关键所在。playbook通过多个task集合完成一类功能,如Web服务的安装部署、数据库服务器的批量备份等。可以简单地把playbook理解为通过组合多条ad-hoc操作的配置文件。
7,ansible工作流程

ansible部署

1,安装RHEL9版本虚拟机

1.1 配置IP信息,时区,用户,分区等

分区大小:

1.2 安装完成,将ansibleIP改为192.168.100.100

2、配置本地yum源,在/etc/yum.repos.d/目录下新建server.repo,然后配置。

repodata在AppStream和BaseOS下

mount  /dev/cdrom  /mnt(需要连接一下光驱)
vim  /etc/yum.repos.d/server.repo
[aa]
name=aa1
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0[bb]
name=bb1
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
保存退出

3、安装软件包组

yum group install "Virtualization Client" "Virtualization Hypervisor" "Virtualization Tools" -y
##重启libvirtd服务,并设置下次启动生效
Systemctl  restart  libvirtd
Systemctl  enable  libvirtd

4,添加node,添加ansible的文件

4.1打开管理器

 [root@ansible ~]# virt-manager 

4.2 用fz将镜像传到root用户下,但是需要先开启远程连接

4.3 设置可以远程连接

[root@ansible ~]# vim /etc/ssh/sshd_config

5,创建五台node

Vrit-manager
先创建一台名为master,其余都克隆

5.2 安装好后配置好IP等信息

5.3 进入系统:克隆其余五台

6,修改每一台的主机名,IP地址以及删除UUID

Virbro桥接和node通信
Ens33和真实机通信
主机名IP地址
node1192.168.122.10

node2

192.168.122.20
node3192.168.122.30
node4192.168.122.40
node5192.168.122.50

6.1 重启网卡并ping测试是否可以相互通信

7,master为宿主机,其余五台为虚拟机

7.1 为了方便通信,ansible将所有的IP地址和域名写入 /etc/hosts,然后把文件内容发送给每一台虚拟机。

先将文件传给master,然后通过master批量发送给每一台虚拟机,发送之前先做免密钥

7.2 编辑/etc/hosts,并方式送给master

vim /etc/hosts
192.168.122.1   ansible.example.com  ansible
192.168.122.100    master.example.com  master
192.168.122.10     node1.example.com  node1
192.168.122.20     node2.example.com  node2
192.168.122.30     node3.example.com  node3
192.168.122.40     node4.example.com  node4
192.168.122.50     node5.example.com  node5[root@ansible~]#scp /etc/hosts root@master:/etc/hosts
[root@ansible~]#ssh root@master
[root@master~]#

7.3 配置master主机的免密钥登录

master分别用root用户和student用户操作做免密钥
ssh-keygen   一直回车到结束
(root用户)
for  i  in  node{1..5}
do ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@$i
donefor  i  in  node{1..5}
do ssh-copy-id  -i  ~/.ssh/id_rsa.pub  student@$i
done
(student用户)
Su - student #切换到student用户,同样生成密钥发送给所有的student和root用户
ssh-keygenkey
for  i  in  node{1..5}
do ssh-copy-id  -i  ~/.ssh/id_rsa.pub  root@$i
donefor  i  in  node{1..5}
do ssh-copy-id  -i  ~/.ssh/id_rsa.pub  student@$i
done

在master将/etc/hosts文件都发给所有主机

8,配置yum仓库

在宿主机ansible中配置本地yum仓库,然后安装httpd服务
将包文件上传到/var/www/html/目录下,然后重启httpd服务,并设置下次启动生效
关闭防火墙,selinux

8.1 在ansible主机中部署yum仓库

关闭防火墙以及selinux
yum -y install httpd##通过filez将网络源文件传到ansible的/etc/www/html文件中[root@ansible~]#vi  /etc/yum.repos.d/server.repo
[aa]
name=aa1
baseurl=http://ansible.example.com/rhel9/BaseOS
enabled=1
gpgcheck=0
[cc]
name=cc1
baseurl=http://ansible.example.com/rhel9/AppStream
enabled=1
gpgcheck=0
[dd]
name=dd1
baseurl=http://ansible.example.com/ansible-automation-platform
enabled=1
gpgcheck=0

8.2 测试安装 三个工具包

[root@master ~]# yum -y install vim bash-completion net-tools

9,student用户提权(管理ansible时用普通用户管理,所以需要对student用户提权)

[root@master ~]#vim  /etc/sudoers.d/student
student   ALL=(ALL)   NOPASSWD: ALLfor  i  in  node{1..5}
do scp /etc/sudoers.d/student root@$i:/etc/sudoers.d/
done

10,安装ansible(用student管理)

##切换到student用户   
[root@master~]#su  -   student
[student@master~]#sudo  yum  -y  install   ansible-core   ansible-navigator

11,配置ansible

11.1 定义主机清单位置

##在student用户家目录下新建ansible目录
[student@master ~]$ mkdir ansible
[student@master ~]$ cd ansible/
[student@master ansible]$ pwd
/home/student/ansible
[student@master ansible]$ vim /etc/ansible/ansible.cfg ##默认配置文件

[student@master ansible]$ ansible-config init --disabled > ansible.cfg
[student@master ansible]$ ls
ansible.cfg
[student@master ansible]$ vim ansible.cfg
[student@master ansible]$

修改文件:

1,定义执行命令的对象

执行一条命令,对象是受控主机,而受控主机写在主机清单的位置,所以要修改主机清单的位置
//搜索/inventory (主机清单)

因为没有主机清单所以需要创建
[student@master ansible]$vim inventory

2,student用户来管理ansible

打开远程登录

3,创建roles目录,定义目录路径

4,开放ssh远程登录验证

5,定义ansible模块存放路径

创建collections目录

[student@master ansible]$mkdir collections

6,student用户做了Linux的权限委派,但是没做ansible,开启四个

7,测试

单个测试:
[student@master ansible]$ansible node1
测试所有
[student@master ansible]$ansible all -m ping

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

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

相关文章

[机器学习]基于K-means聚类算法的鸢尾花数据及分类

基于Kmeans&#xff0c;对鸢尾花数据集前两个特征进行聚类分析通过迭代优化&#xff0c;将150个样本划分到K个簇中。目标函数&#xff1a;最小化所有样本到其所属簇中心的距离平方和。算法步骤&#xff1a;随机初始化K个簇中心。将每个样本分配到最近的中心。计算均值确定每个簇…

Altium Designer 22使用笔记(10)---PCB铺铜相关操作

目录 01 | 简 述 02 | 环境描述 03 | 铺 铜 04 | 铺铜挖空 05 | 敷铜合并 06 | 敷铜的修改 07 | 总 结 01 | 简 述 在PCB设计阶段&#xff0c;除了布局、布线操作需要频繁进行调整外&#xff0c;铺铜操作的使用也非常频繁&#xff1b;因此本篇文章的主要内容为&#xff…

leetcode 338 比特位计数

一、题目描述二、解题思路我们可以借助位运算的思想来解决这个问题。通过kk&(k-1)来消除k中最右边为1的比特位&#xff0c;每次消除后进行count&#xff0c;当k为0时&#xff0c;表示所有的1消除完毕&#xff0c;此时的count即为所有1的个数。三、代码实现时间复杂度&#…

PHP的md5()函数分析

MD5&#xff08;Message-Digest Algorithm 5&#xff09;是一种广泛使用的哈希函数&#xff0c;由Ronald Rivest于1991年设计&#xff0c;属于密码散列算法家族。其核心功能是将任意长度的输入数据&#xff08;如字符串、文件等&#xff09;通过不可逆的数学运算转换为固定长度…

【面试场景题】怎么做业务领域划分

文章目录一、核心原则&#xff1a;以业务为中心&#xff0c;而非技术二、具体步骤&#xff1a;从业务理解到边界定义1. 深入理解业务&#xff1a;梳理业务全景2. 识别核心领域与支撑领域3. 划分“限界上下文”&#xff1a;定义领域边界4. 定义领域内的“聚合”&#xff1a;细化…

海量小文件问题综述和解决攻略(二)

1. 解决NameNode的内存问题 上面的内容提到过每个block的元数据都需要加载到NameNode的内存中&#xff0c;这导致一个Hadoop集群在NameNode中存储的对象是有上限的&#xff0c;并且对象太多会带来启动时间较长以及网络延迟的问题。常见的有两种解决方案&#xff0c;减少集群的…

《开发避坑指南:从异常中读懂系统的“求救信号”》

异常现象从不只是孤立的“故障”&#xff0c;而是系统发出的“健康预警”。太多团队困在“出现问题-临时修复-再次复发”的循环里&#xff0c;将精力消耗在表面问题的扑救上&#xff0c;却忽视了背后潜藏的架构缺陷、逻辑漏洞与环境适配盲区。真正成熟的开发思维&#xff0c;是…

数字孪生技术为UI前端赋能:实现产品性能的实时监测与预警

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩!过去十年&#xff0c;前端技术栈翻天覆地&#xff1a;React/Vue/Angular、Webpack/Vite、Serve…

【性能优化】Unity 渲染优化全解析:Draw Call、Batch、SetPass 与批处理技术

Unity 渲染优化全解析&#xff1a;Draw Call、Batch、SetPass 与批处理技术 在 Unity 开发中&#xff0c;性能优化是保证游戏流畅的核心环节。尤其在移动端或 VR/AR 场景&#xff0c;Draw Call 过多、材质切换频繁都会严重影响帧率。 本文将从 Unity Statistics 面板参数解析…

基于Spring Boot的短信平台平滑切换设计方案

基于Spring Boot的短信平台平滑切换设计方案 案例背景 在电商系统中&#xff0c;短信服务是用户注册、登录验证、订单通知等环节的关键基础设施。由于业务需求或成本优化&#xff0c;企业可能需要在不同短信平台&#xff08;如阿里云、腾讯云、云片等&#xff09;之间进行切换。…

信息技术发展

信息技术是研究如何获取信息、处理信息、传输信息和使用信息的技术。计算机硬件控制器、运算器、存储器、输入设备、输出设备。计算机软件系统软件、应用软件、中间件。通信系统包括源系统、传输系统、目的系统。网络基础 个人局域网、局域网、城域网、广域网、公用网、专用网。…

2023年12月GESP5级C++真题解析,包括选择判断和编程

一、选择题&#xff08;每道题2分&#xff0c;共30分&#xff09; 1、下面C代码用于求斐波那契数列&#xff0c;该数列第1 、2项为1&#xff0c;以后各项均是 前两项之和。下面有关说法错误的是( ) A. fiboA( ) ⽤递归⽅式&#xff0c;fiboB() 循环⽅式 B. fiboA( ) 更加符合…

C++ 面试高频考点 力扣 704.二分查找 基础二分查找 题解 每日一题

文章目录二分查找&#xff1a;从基础原理到代码实现二分查找的特点算法重点题目描述&#xff1a;LeetCode 704. 二分查找为什么可以用二分查找&#xff1f;暴力算法解法二分查找解法核心逻辑&#xff1a;三种情况的处理二分查找什么时候结束&#xff1f;为什么二分查找一定是对…

《UE5_C++多人TPS完整教程》学习笔记45 ——《P46 待机与跳跃动画(Idle And Jumps)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P46 待机与跳跃动画&#xff08;Idle And Jumps&#xff09;》 的学习笔记&#xff0c;该系列教学视频为计算机工程师、程序员、游戏开发者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09…

2025年03月 Scratch 图形化(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch图形化等级考试(1~4级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 气球初始位置如下图所示,运行下列程序,气球会朝哪个方向移动?( ) A:水平向右 B:垂直向下 C:水平向左 D:垂直向上 答案:A 气球水平向右移动 第2题 使用下列哪个选项可以将…

android 不同分辨图片放错对应文件夹会怎样?

多年前有人问过我这个问题&#xff0c;当时没太了解这个东西&#xff0c;觉得是无所谓的东西&#xff0c;不过没答上来这个问题还是让我记了很久。今天又看到有人发文章讨论这个问题&#xff0c;我也就特意再研究下。1&#xff0c;了解一下Android分辨率是什么。2&#xff0c;同…

48.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--解决Refit接口调用未授权的访问问题

我们在项目中集成了Refit&#xff0c;但是在调用接口时&#xff0c;出现了问题&#xff0c;提示未授权的访问。这个问题是怎么导致的呢&#xff1f;我们该怎么处理呢&#xff1f;在这篇文章中我们一起来解决吧。 一、为什么会出现这个问题 让我们来深入分析一下是哪里返回的未授…

nacos登录认证

先看一个现象bootstrap.yml配置如下&#xff1a;spring:application:name: myservicecloud:nacos:discovery:server-addr: 127.0.0.1:8848username: nacospassword: nacosconfig:prefix: testfile-extension: ymlusername: nacos123password: nacos注意&#xff1a;配置中nacos…

论文阅读:arixv 2025 WideSearch: Benchmarking Agentic Broad Info-Seeking

WideSearch&#xff1a;大规模信息检索基准测试 https://arxiv.org/pdf/2508.07999 字节&#xff1a;Agent大规模信息获取基准WideSearch WideSearch&#xff1a;揭示 AI 智能体缺失的「广度」能力 Project Page: https://widesearch-seed.github.io/ get the data&#x…

【Docker基础】Docker-compose进阶配置:资源限制与高可用部署

目录 引言 1 Docker资源限制基础概念 1.1 为什么需要资源限制 1.2 Docker资源限制的类型 2 CPU与内存资源限制配置 2.1 传统资源限制方式&#xff08;version 2&#xff09; 2.2 现代资源限制方式&#xff08;version 3 deploy.resources&#xff09; 关键参数解释&…