当前位置: 首页 > news >正文

[Do374]ansible-nagivator考前整理

[Do374]ansible-nagivator考前整理

  • 1. Ansible-Navigator 升级后的变化
    • 1.1 主要变化
    • 1.2 重大改变
  • 2. ansible主要配置文件
    • 2.1 .ansible-navigator.yml
    • 2.2 ansible.cnf
  • 3. 常用模块
    • 3.1 file模块
    • 3.2 copy模块
    • 3.3 user模块和lookup模块
    • 3.4 yum和yum_repository模块
    • 3.5 systemd和service模块
  • 4. collection和role
    • 4.1 Collections(集合)
      • 4.1.1 定义
      • 4.1.2 特点
      • 4.1.3 使用场景
    • 4.2 Roles(角色)
      • 4.2.1 定义
      • 4.2.2 特点
      • 4.2.3 使用场景
    • 4.3 collection和role综合示例
      • 4.3.1 创建collection
      • 4.3.2 创建role
  • 5. ansible-builder构建执行环境
    • 5.1 示例

1. Ansible-Navigator 升级后的变化

从rhel7开始使用ansible已经7,8年了,之前的rhce8和DO447也都是考的ansible,ansible 2.9之后开始使用ansible-navigator但一直没系统的看过.这次正好有个ansible-navigator内部培训,系统的撸一遍顺带给CA加个等级.

Ansible Navigator 是 Red Hat 在 Ansible 2.9 之后推出的新工具,旨在提供更高效、更安全的自动化运维体验。

以下是 Ansible Navigator 相对于 Ansible Playbook 的主要变化和优势:

1.1 主要变化

  1. 容器化执行环境

    • Ansible Navigator 通过在容器中运行 Playbook,提供了一个隔离且一致的执行环境。这有助于确保 Playbook 在开发和测试环境中与生产环境的行为一致。
  2. 自动化执行环境(Automation Execution Environments, AEE)

    • Ansible Navigator 允许用户选择不同的 AEE 来运行 Playbook。这些 AEE 是预配置的容器镜像,包含 Ansible Core、Ansible Content Collections 以及运行 Playbook 所需的所有依赖项。这为用户提供了更大的灵活性和可定制性。
  3. 改进的用户体验

    • Ansible Navigator 提供了一个更友好的用户界面和更丰富的命令行工具,使得编写、测试和调试 Playbook 更加容易。它还提供了更好的错误处理和调试信息,帮助用户更快地定位和解决问题。

1.2 重大改变

  1. 从命令行工具到集成开发环境(IDE)

    • Ansible Navigator 不仅仅是一个命令行工具,它还提供了一个集成的开发环境,支持代码补全、语法高亮、调试等功能。这使得开发人员能够更高效地编写和维护 Playbook。
  2. 安全性增强

    • 通过使用容器化技术,Ansible Navigator 提供了更高的安全性。每个 Playbook 的执行都在独立的容器中进行,避免了潜在的安全风险。此外,Ansible Navigator 还支持更细粒度的权限控制和审计功能。
  3. 性能优化

    • Ansible Navigator 通过优化执行流程和使用更高效的通信机制,显著提高了 Playbook 的执行效率。这对于大规模自动化任务尤为重要,可以大幅减少任务执行时间。

2. ansible主要配置文件

2.1 .ansible-navigator.yml

  1. 获取文件例子
ansible-navigator settings  --eei hub.lab.example.com/ee-supported-rhel8 -m stdout > 1.txt
  1. 配置 .ansible-navigator.yml(以下内容都来自上一条命令产生的1.txt中进行查询)
ansible-navigator:execution-environment:image: ee-supported-rhel8pull:policy: missing

2.2 ansible.cnf

  1. 配置参数获取方法
ansible-config init --disabled > ansible.cfg
  1. 常见配置及含义
    以下是 ansible.cnf 文件中常用配置项的表格格式:
参数含义例子
inventory指定默认的库存文件路径inventory = inventory
gathering指定默认是否收集服务器实时变量参数gathering=explicit
forks并行执行任务的最大主机数forks = 45
become是否使用提升权限(如 sudo)执行任务become = True
become_method提升权限的方法,常用的有 sudosubecome_method = sudo
become_user提升权限后使用的用户become_user = root
become_ask_pass是否在提升权限时提示输入密码become_ask_pass = False
roles_path定义 Ansible 查找角色的路径,多个路径用冒号分隔roles_path = ./roles:/usr/share/ansible/roles
ask_pass是否在连接时提示输入 SSH 密码ask_pass = False
ask_su_pass是否在以超级用户身份执行任务时提示输入密码ask_su_pass = False
ask_vault_pass是否在访问加密文件时提示输入 Vault 密码ask_vault_pass = False
host_key_checking是否检查远程主机的 SSH 主机密钥host_key_checking = True
timeoutSSH 连接的超时时间(秒)timeout = 10
ssh_args传递给 SSH 客户端的额外参数ssh_args = -o ControlMaster=auto -o ControlPersist=60s
pipelining是否启用 pipelining 以减少 SSH 连接次数pipelining = True
control_master是否启用 SSH 控制主连接control_master = auto
connection_timeout持久连接的超时时间(秒)connection_timeout = 30
keepalive持久连接的保持活动间隔(秒)keepalive = 30
library自定义模块的路径library = ./library
filter_plugins自定义过滤器插件的路径filter_plugins = ./filter_plugins
action_plugins自定义动作插件的路径action_plugins = ./action_plugins
log_pathAnsible 日志文件的路径log_path = /var/log/ansible.log
remote_user默认的远程连接用户remote_user = ansible
ansible_python_interpreter指定远程主机上使用的 Python 解释器路径ansible_python_interpreter = /usr/bin/python3

3. 常用模块

3.1 file模块

设置文件、符号链接或目录的属性。或者,删除文件、符号链接或目录。
以下是通过变量传递来创建目录

根据变量创建给定的目录

- name: Create a directory if it does not existansible.builtin.file:path: "{{ directory }}"state: directorywhen: directory is defined

3.2 copy模块

主要功能是将文件从本地或远程计算机复制到远程计算机上的某个位置。但考试常考的点是将某段内容填充到文件中
以下是通过tag来生成不同的文件

根据env文件创建文件及生成内容
play:

---
- name: Deploy contenthosts: devbecome: yesvars_files:- env.ymltasks:- block:- name: create dirfile:dest: "{{ directory }}"state: directory- name: alphaansible.builtin.copy:content: 'The sun rises in the east and sets in the west'dest: "{{ directory }}/{{ file }}"tags: [ never, alpha ]- name: betaansible.builtin.copy:content: 'Which seasons do you like best?'dest: "{{ directory }}/{{ file }}"tags: [ never, beta ]when:- directory is defined- file is defined

env: 这部分的变量也可以通过-e进行传递

file: "exam.txt"
directory: "/opt"

3.3 user模块和lookup模块

user模块用做管理用户帐户和用户属性。
lookup模块主要用来生成随机明文密码,并将其存储在给定文件路径的文件中。

根据给定的用户清单文件,在web服务器组中所有服务器上按要求创建用户.

---
- name: Create user from user_list.yml file.become: truehosts: webservervars_files:- from user_list.ymltasks:- name: Add the user from user_list.yml.ansible.builtin.user:name: "{{ item.name }}"comment: "{{ item.first | capitalize }} {{ item.middle | capitalize }} {{ item.last | capitalize }}"uid: "{{ item.uid }}"password: password: "{{ lookup('ansible.builtin.password', '{{ item.name }}_password length=14 chars=ascii_letters,digits,punctuation') }}"loop: "{{ users }}" 

3.4 yum和yum_repository模块

yum_repository模块用来配置yum仓库
yum模块用来安装或删除yum包

配置yum仓库并安装git包

- name: Add multiple repositories into the same file (1/2)ansible.builtin.yum_repository:name: BaseOSdescription: BaseOS YUM repofile: BaseOSbaseurl: https://hub.lab.example.com/pub/epel/$releasever/$basearch/BaseOSgpgcheck: noenabled: yes- name: Add multiple repositories into the same file (2/2)ansible.builtin.yum_repository:name: AppStreamdescription: AppStream YUM repofile: AppStreambaseurl: https://hub.lab.example.com/pub/epel/$releasever/$basearch/AppStreamgpgcheck: noenabled: yes- name: Install the latest version of Gitansible.builtin.yum:name: gitstate: latest

3.5 systemd和service模块

这2个模块除了模块名不一样以外基本一样
如果生成文件成功,那么重启httpd服务

tasks:
- name: create index htmlcopy:dest: /var/www/html/index.htmlcontent: 'The sun is up,the sky is blue.Wake up old lazy man'notyfi: restart httpd
handlers:
- name: restart httpdansible.builtin.systemd:state: restartedname: httpd

4. collection和role

4.1 Collections(集合)

4.1.1 定义

Ansible Collections 是一种打包和分发自动化内容(如模块、插件、角色等)的方式。它们允许开发者将相关的组件组织在一起,便于管理和分发。

4.1.2 特点

模块和插件:Collections 可以包含自定义模块和插件,扩展 Ansible 的功能。
角色:虽然 Collections 主要用于模块和插件,但也可以包含角色。
版本管理:每个 Collection 都有独立的版本号,便于管理和升级。
分发渠道:Collections 可以通过 Ansible Galaxy、私有仓库或其他方式进行分发。

4.1.3 使用场景

扩展功能:当你需要使用或分发自定义模块、插件时,Collections 是理想的选择。
组织复杂内容:对于包含多个模块和插件的复杂项目,Collections 可以提供更好的组织结构。

4.2 Roles(角色)

4.2.1 定义

Ansible Roles 是一种组织 Playbooks、任务、变量、文件和模板的方式,使得自动化内容更具可重用性和可维护性。角色通常用于定义特定功能或应用的配置和部署。

4.2.2 特点

结构化组织:角色有固定的目录结构,包括 tasks/、handlers/、templates/、files/、vars/ 等子目录。
可重用性:角色可以在不同的 Playbooks 和项目中重复使用。
易于共享:角色可以通过 Ansible Galaxy 分享和分发。
版本控制:角色可以有自己的版本号,便于管理和升级。

4.2.3 使用场景

标准化配置:当你需要标准化某些配置或部署流程时,角色非常有用。
简化 Playbooks:通过将重复的任务和配置抽象成角色,可以简化 Playbooks 的编写和维护。

4.3 collection和role综合示例

创建collection,包含以下文件:

  • main.yml
  • user.conf
    collection 名为rhel.user
    Role名为createuser

4.3.1 创建collection

在命令行中执行:

ansible-galaxy collection init rhel.user

4.3.2 创建role

在命令行中执行

cd rhel/user/
ansible-galaxy role init createuser --init-path roles 
cp ../../main.yml roles/createuser/tasks/main.yml
cp ../../user.conf roles/createuser/files/
mkdir meta
echo 'requires_ansible: ">=2.90"' > meta/runtime.yml
ansible-galaxy collection build

执行以上命令后会生成文件: rhel-user-1.0.0.tar.gz

5. ansible-builder构建执行环境

ansible-builder 是一个用于构建 Ansible 运行环境的工具,它可以帮助你创建一个包含所有必要依赖项的 Podman 镜像。使用 ansible-builder create 命令生成的镜像主要用于以下几个方面:

  1. 隔离和一致性
    隔离环境:通过创建一个独立的 Podman 镜像,你可以确保 Ansible 运行在一个隔离的环境中,不受宿主机或其他环境的影响。
    一致性:镜像可以确保在不同的开发和生产环境中,Ansible 的运行环境是一致的,从而减少“在我机器上可以运行”的问题。
  2. 可移植性
    跨平台:生成的 Podman 镜像可以在任何支持 Podman 的平台上运行,无论是本地开发环境、CI/CD 管道还是云服务提供商。
    简化部署:通过使用 Podman 镜像,你可以简化 Ansible 运行环境的部署过程,无需在目标机器上手动安装和配置所有依赖项。
  3. 依赖管理
    自动处理依赖:ansible-builder 会自动处理 Ansible 及其插件的依赖关系,确保所有必要的库和工具都包含在镜像中。
    版本控制:你可以通过 builder.yml 文件明确指定所需的 Ansible 版本和插件版本,从而实现精确的版本控制。
  4. 安全性
    最小化攻击面:通过仅包含必要的组件,可以减少镜像的攻击面,提高安全性。
    审计和合规性:Podman 镜像可以更容易地进行审计和合规性检查,确保符合安全标准。
  5. 性能优化
    缓存和优化:Podman 镜像可以利用缓存机制,加快构建和部署速度。此外,通过优化镜像大小和层数,可以提高运行时的性能。

5.1 示例

编辑execution-environment.yml

---
version: v1.0
build_arg_defaults:EE_BASE_IMAGE: hub.lab.example.com/ee-29-rhel8:latestEE_BUILDER_IMAGE: hub.lab.example.com/ansible-builder-rhel8:latest
dependencies:system: python.yml

编辑python.yml

python3-ldap: [platform:rpm]
python36: [platform:rpm]

生成镜像并上传至hub

ansible-builder create
ansible-builder build -t hub.lab.example.com/ee-ansible-image:1.0
podman push hub.lab.example.com/ee-ansible-image:1.0

总结
ansible-builder create 命令生成的 Docker 镜像主要用于提供一个隔离、一致、可移植且安全的 Ansible 运行环境。通过这种方式,你可以简化环境配置和依赖管理,提高开发和部署的效率。

至此ex374大部分考试内容已经包含在内了

相关文章:

[Do374]ansible-nagivator考前整理

[Do374]ansible-nagivator考前整理 1. Ansible-Navigator 升级后的变化1.1 主要变化1.2 重大改变 2. ansible主要配置文件2.1 .ansible-navigator.yml2.2 ansible.cnf 3. 常用模块3.1 file模块3.2 copy模块3.3 user模块和lookup模块3.4 yum和yum_repository模块3.5 systemd和se…...

deepseek+kimi自动生成ppt

打开deepseek官网,输入详细的需求,让他生成个ppt 接着deepseek开始思考生成了 接着复制生成了的内容 打开kimi粘贴刚才deepseek生成的内容 可以一键生成啦,下载编辑使用吧...

循环神经网络学习01——transformer:输入部分-嵌入层位置编码

一、介绍 1、核心思想 利用自注意力机制来捕获输入序列中各元素之间的全局依赖关系,无论这些元素之间的实际距离有多远。 自注意力机制:允许模型在处理序列的每个元素时,考虑到序列中的所有其他元素,从而捕捉它们之间的关系和依…...

centos系统清理docker日志文件

在CentOS系统中,Docker日志文件的不断增长可能会占用大量磁盘空间,影响系统性能和正常运行。为了保持系统的健康状态,需要定期清理Docker日志文件。本文将详细介绍如何在CentOS系统上清理Docker日志文件的具体步骤和方法。 Docker日志文件位…...

低成本+高性能+超灵活!Deepseek 671B+Milvus重新定义知识库搭建

“老板说,这个项目得上Deepseek,还得再做个知识库...” 还有哪个开发者,最近没听到这样的抱怨? Deepseek爆火,推理端的智能提速,算力成本急剧下降,让不少原本不想用大模型,用不起大模型的企业&a…...

Windows 本地部署大模型 OpenWebUI+Ollama

安装Ollama Ollama官方网址:https://ollama.com 下载运行大模型 在Ollama官网中查看需要下载的大模型 https://ollama.com/library 复制图片中的链接 打开cmd,运行此命令(此过程会时间会很久) 下载Miniconda Miniconda作用是…...

【iOS自动化】Xcode配置WebDriverAgent

WebDriverAgent 是 iOS 端自动化测试的工具,这里记录下 MacOS 环境 Xcode 如何配置 WebDriverAgent。 【重要】环境准备 ‼️ 注意:Xcode 版本需要支持对应的 iOS 版本,而 Xcode 版本又依赖 MacOS 版本;在开始部署前&#xff0c…...

RabbitMQ 延迟队列

1.延迟队列插件安装(版本号要对其) Releases rabbitmq/rabbitmq-delayed-message-exchange GitHub 下载的文件: rabbitmq_delayed_message_exchange-3.13.0.ez 直接复制到以下文件夹: \RabbitMQ Server\rabbitmq_server-3.13.7\plugins\ 执行命令…...

JVM-Java虚拟机

基础知识 JVM的定义与作用 定义:JVM是Java语言的一部分,它是一个虚拟的计算机,通过它可以执行Java程序。 作用: 跨平台支持:实现了“编译一次,到处运行”的目标。 自动内存管理:通过垃圾回收…...

Unity底层C#处理机制深度解析

一、Unity脚本执行架构 Unity采用分层架构处理C#脚本,核心由以下组件构成: 脚本引擎层 Mono Runtime(旧版本) IL2CPP(2015版本) Burst Compiler(DOTS体系) 原生交互层 Runtime …...

【WB 深度学习实验管理】使用 PyTorch Lightning 实现高效的图像分类实验跟踪

本文使用到的 Jupyter Notebook 可在GitHub仓库002文件夹找到,别忘了给仓库点个小心心~~~ https://github.com/LFF8888/FF-Studio-Resources 在机器学习项目中,实验跟踪和结果可视化是至关重要的环节。无论是调整超参数、优化模型架构,还是监…...

MFC 应用最小化到系统托盘

本指南将实现 MFC 应用程序在关闭时最小化系统托盘的功能,并左键和右键系统托盘图标进行交互。 目标: 左键点击托盘图标:恢复对话框窗口。右键点击托盘图标:弹出右键菜单,提供 恢复窗口 和 退出程序 两个选项。退出时…...

C++ ——从C到C++

1、C的学习方法 (1)C知识点概念内容比较多,需要反复复习 (2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深 (3)学好编程要多练习,简…...

【OCPP】ocpp1.6J协议框架说明

目录 1.简介 1.1.本文件的目的 1.2.目标受众 1.3. OCPP-S and OCPP-J 1.4. 约定 1.5.定义和缩写 1.6.参考 2.优点和问题 3.连接 3.1.客户要求 3.1.1.连接URL 3.1.2.OCPP版本 3.1.3.打开HTTP请求的示例 3.2.服务器响应 3.3.更多信息 4.RPC框架 4.1.介绍 4.1.1…...

Swipe横滑与SwipeItem自定义横滑相互影响

背景 vue项目&#xff0c;H5页面&#xff0c;使用vant的组件库轮播组件<Swipe>&#xff0c;UI交互要求&#xff0c;在每个SwipeItem中有内容&#xff0c;可自横滑&#xff0c;查看列表内容 核心代码 <template><Swipeclass"my_swipe":autoplay&quo…...

渗透利器工具:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.&#xff08;主动扫描被动扫描&#xff09; Burp Suite 和 Xray 联合使用&#xff0c;能够将 Burp 的强大流量拦截与修改功能&#xff0c;与 Xray 的高效漏洞检测能力相结合&#xff0c;实现更全面、高效的网络安全测试&#xff0c;同时提升漏…...

C# 学习目录

以下内容仅供参考 基础概念 数据类型(使用与定义)-CSDN博客 var使用-CSDN博客 运算符&#xff08;new、sizeof、is、as)_new 运算符-CSDN博客 数据结构 数组定义与使用-CSDN博客 动态数组和泛型集合-CSDN博客 字典&#xff08;Dictonary)-CSDN博客 集合类型&#xff0…...

react native学习【9】——动态路由

react native学习【9】——动态路由 1、进入终端2、动态路由dynamic router3、编写app/_layout.jsx布局文件4、创建动态路由5、完善index.jsx文件6、完善[id].jsx文件扩展运算符...7、完整的index.jsx文件1、进入终端 2、动态路由dynamic router 官方网站 视频中的举例:当我们…...

[AI]Mac本地部署Deepseek R1模型 — — 保姆级教程

[AI]Mac本地部署DeepSeek R1模型 — — 保姆级教程 DeepSeek R1是中国AI初创公司深度求索&#xff08;DeepSeek&#xff09;推出大模型DeepSeek-R1。 作为一款开源模型&#xff0c;R1在数学、代码、自然语言推理等任务上的性能能够比肩OpenAI o1模型正式版&#xff0c;并采用MI…...

LeetCodehot 力扣热题100 验证二叉搜索树

class Solution {vector<int> nums; // 用来存储二叉树节点值的数组 public:bool isValidBST(TreeNode* root) {inorder(root); // 中序遍历二叉树&#xff0c;填充 nums 数组// 遍历 nums 数组&#xff0c;检查是否为严格递增序列for(int i0; i<nums.size()-1; i){…...

使用Kickstart配置文件封装操作系统实现Linux的自动化安装

使用Kickstart配置文件封装操作系统实现Linux的自动化安装 创建ks.cfg配置文件 可以使用已经安装完成的Linux操作系统中的/root目录下的anaconda.cfg配置文件 注意&#xff0c;配置文件会因为kickstart的版本兼容性的问题导致无法安装报错需要在实际使用过程中删除某些参数 …...

前端开发架构师Prompt指令的最佳实践

前端开发架构师Prompt 提示词可作为系统提示词使用&#xff0c;可基于用户的需求输出对应的编码方案。 本次提示词偏向前端开发的使用&#xff0c;如有需要可适当修改关键词和示例。 推荐使用 Cursor 中作为自定义指令使用Cline 插件中作为自定义指令使用在力所能及的范围内使…...

flink判断两个事件之间有没有超时(不使用CEP)

1.为啥不使用cep呢&#xff0c;cep的超时时间设置不好配置化&#xff0c;无法满足扩展要求 2.超时怎么界定。A事件发生后&#xff0c;过了N时间&#xff0c;还没有收到B事件&#xff0c;算超时。 代码如下&#xff1a; import com.alibaba.fastjson.JSONObject; import lombo…...

vue3+ts+vite+element plus设置日期时间禁止选择小于当前时间精确到时分秒

ts组件 // timeUtils.ts/*** 生成一个数组* param start* param end*/ export const makeRange (start: number, end: number): number[] > {const result: number[] [];for (let i start; i < end; i) {result.push(i);}return result; };/*** 限制今天之前的时间不…...

2025web寒假作业二

一、整体功能概述 该代码构建了一个简单的后台管理系统界面&#xff0c;主要包含左侧导航栏和右侧内容区域。左侧导航栏有 logo、管理员头像、导航菜单和安全退出按钮&#xff1b;右侧内容区域包括页头、用户信息管理内容&#xff08;含搜索框和用户数据表格&#xff09;以及页…...

2025.2.8——二、Confusion1 SSTI模板注入|Jinja2模板

题目来源&#xff1a;攻防世界 Confusion1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;查看网页源码信息 step 2&#xff1a;模板注入 step 3&#xff1a;构造payload&#xff0c;验证漏洞 step 4&#xff1a;已确认为SSTI漏洞中的Jinjia2…...

Mysql 函数解析

文章目录 一、模糊匹配【like】二、CASE函数1、简单case2、搜索case3、搜索case 聚合函数 一、模糊匹配【like】 一般形式为&#xff1a;列名 [NOT] LIKE ‘%关键字%’&#xff0c;示例如下&#xff1a; like %北京%列名包括北京的字样like ‘北京%’ 列名北京开头like ‘%北…...

Docker 部署 MongoDB | 国内阿里镜像

一、简易单机版 1、镜像拉取 docker pull registry.cn-hangzhou.aliyuncs.com/farerboy/mongo:8.0.5-rc1 2、运行镜像 docker run -it --name mongodb \ -e MONGO_INITDB_ROOT_USERNAMEmongoroot \ -e MONGO_INITDB_ROOT_PASSWORDmongoroot \ -v /wwwroot/opt/docker/mong…...

加速度计信号处理

【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究&#xff08;Matlab代码实现&#xff09;_加速度计滤波器-CSDN博客 https://wenku.baidu.com/view/622d38b90f22590102020740be1e650e52eacff9.html?_wkts_1738906719916&bdQ…...

Baumer工业相机堡盟相机的相机传感器芯片清洁指南

Baumer工业相机堡盟相机的相机传感器芯片清洁指南 Baumer工业相机1.Baumer工业相机传感器芯片清洁工具和清洁剂2.Baumer工业相机传感器芯片清洁步骤2.1、准备步骤2.2、清洁过程1.定位清洁工具2.清洁传感器3&#xff0e;使用吹风装置 Baumer工业相机传感器芯片清洁的优势设计与结…...

20240824 美团 笔试

文章目录 1、单选题1.11.21.31.41.51.61.71.81.91.101.111.121.131.141.151.161.171.181.191.202、编程题2.12.2岗位:硬件开发工程师(嵌入式系统软件开发方向) 题型:20 道单选题,2 道编程题题 1、单选题 1.1 C 语言中,如果输入整数 v 是 2 的幂,下面表达式中哪个会返…...

【扫描件PDF】如何批量识别扫描件PDF多个区域内容保存到Excel表格,基于WPF和腾讯OCR的详细解决方案

在很多实际业务场景中&#xff0c;需要对大量扫描件 PDF 中的特定区域内容进行识别并整理到 Excel 表格里&#xff0c;以下是一些常见的应用场景&#xff1a;物流运单扫描件 PDF 中包含发货人信息、收货人信息、货物信息等。批量识别这些区域内容到 Excel 表格&#xff0c;有助…...

Django开发入门 – 3.用Django创建一个Web项目

Django开发入门 – 3.用Django创建一个Web项目 Build A Web Based Project With Django By JacksonML 本文简要介绍如何利用最新版Python 3.13.2来搭建Django环境&#xff0c;以及创建第一个Django Web应用项目&#xff0c;并能够运行Django Web服务器。 创建该Django项目需…...

C# OpenCV机器视觉:OSTU算法实现背景差分的自适应分割

在一个热闹的科技公司里&#xff0c;阿强是一个负责图像分析的员工。他的日常工作就是从各种复杂的图像中提取出有用的信息&#xff0c;可这可不是一件轻松的事情哦 最近&#xff0c;阿强接到了一个艰巨的任务&#xff1a;要从一堆嘈杂的监控图像中分离出运动的物体&#xff0c…...

SIPp的参数及命令示例

以下是SIPp参数的分类表格整理&#xff0c;方便快速查阅和使用&#xff1a; SIPp 参数分类表格 分类参数描述默认值示例基本参数-sc指定XML场景文件&#xff08;客户端模式&#xff09;无-sc uac.xml-sd指定XML场景文件&#xff08;服务器端模式&#xff09;无-sd uas.xml-i本…...

【Mac排错】ls: command not found 终端命令失效的解决办法

【TroubleShooting on Mac】ls: command not found 终端命令失效的解决办法 A Solution to Solve “Command not found” of Terminal on Mac 一直在使用心爱的MacBook Pro的Terminal&#xff0c;并且为她定制了不同的Profile。 这样&#xff0c;看起来她可以在不同季节&…...

【OneAPI】通过网页预渲染让搜索引擎收录网页

API简介 网页预渲染&#xff0c;适用于动态网页以及单页面的SEO&#xff0c;支持网页缓存。 您无须更改代码即可让搜索引擎收录您的网页。只要将需要预渲染的页面转发的本接口即可。 如果您使用Nginx作为网页服务器&#xff0c;推荐使用以下配置&#xff1a; #您的网站locat…...

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上&#xff0c;首先将J5处的跳帽接到1~2引脚&#xff0c;使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中&#xff0c;发现有按键触发信号后(不做去抖动)&#xff0c;待按键松开后&#xff0c;在数码管的第一位显示相应的数字:从左至右&…...

git命令行删除远程分支、删除远程提交日志

目录 1、从本地通过命令行删除远程git分支2、删除已 commit 并 push 的记录 1、从本地通过命令行删除远程git分支 git push origin --delete feature/feature_xxx 删除远程分支 feature/feature_xxx 2、删除已 commit 并 push 的记录 git reset --hard 7b5d01xxxxxxxxxx 恢复到…...

05-多数元素

给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 方法一&#xff1a;哈希表法 通过哈希表来记录每个元素出现的次数&#xff0c;…...

一个简单的Windows TCP服务器实现

初始化 WSADATA wsaData; SOCKET serverSocket, clientSocket; struct sockaddr_in serverAddr { 0x00 }; struct sockaddr_in clientAddr { 0x00 }; int clientAddrLen sizeof(clientAddr);if (WSAStartup(MAKEWORD(2, 2), &wsaData) ! 0) {printf("WSAStartup f…...

salesforce 中 Account 转移给新 Owner 后如何仅转移 Case,而不转移 Opportunity

在 Salesforce 中&#xff0c;当更改 Account Owner 时&#xff0c;系统默认会将所有相关的 Opportunities&#xff08;商机&#xff09; 和 Cases&#xff08;案例&#xff09; 也一并转移给新的 Account Owner。如果你希望 仅转移 Case&#xff0c;而不转移 Opportunities&am…...

Spring Boot 中的日志配置

文章目录 Spring Boot 中日志配置的源码分析1. Spring Boot 日志框架的选择与自动配置2. 日志自动配置与默认行为3. 日志系统的核心组件&#xff1a;Logger 和 LoggerFactory4. 日志配置文件的解析配置日志级别配置日志输出格式和目标 5. 日志级别的控制自定义日志级别 6. 自定…...

[前端]CRX持久化

在 Chrome 扩展开发中&#xff0c;持久化保存数据通常使用 Chrome 的 storage API。storage API 提供了两种存储选项&#xff1a;local 和 sync。使用 local 存储的数据保存在本地浏览器中&#xff0c;只能在同一设备上访问。使用 sync 存储的数据可以在用户登录其 Google 帐户…...

绕组电感 - Ansys Maxwell 磁通链与电流

在本博客中&#xff0c;我将演示如何使用 Ansys Maxwell 中磁瞬态求解器的磁通链和电流结果来计算绕组电感。Ansys Maxwell 磁瞬态求解器在场计算中考虑了涡流效应&#xff0c;我将展示一种使用磁通链和电流结果来计算绕组电感的简单方法。 实际上&#xff0c;电感是非线性的…...

ComfyUI 安装教程:macOS 和 Linux 统一步骤

本教程将详细介绍如何在 macOS 和 Linux 上安装 ComfyUI。我们将从 安装 Anaconda 开始&#xff0c;到安装 PyTorch 和 ComfyUI&#xff0c;最后提供一些常见问题的解决方法。 macOS和linux安装步骤很相似 可以按照1️⃣安装anaconda2️⃣安装python3️⃣torch4️⃣comfyui Co…...

SMTP和POP3协议

SMTP和POP3协议 SMTP&#xff08;简单邮件传输协议&#xff09;和POP3&#xff08;邮局协议版本3&#xff09;是电子邮件系统中用于发送和接收邮件的核心协议。以下是它们的详细说明&#xff1a; 1. SMTP&#xff08;Simple Mail Transfer Protocol&#xff09; SMTP和POP3分…...

【C语言】#define和typedef的区别

文章目录 1.define特点 2.typedef特点 1.define #define 是预处理器指令&#xff0c;用来进行宏定义。它在编译之前由预处理器处理&#xff0c;主要用于定义常量、简单的函数宏或者代码片段的替换。 特点 文本替换&#xff1a;#define 主要用于文本替换&#xff0c;在编译前…...

2025清华:DeepSeek从入门到精通.pdf(附下载)

本文是一份关于如何深入理解和使用DeepSeek技术的全面指南&#xff0c;由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队编撰。DeepSeek是一家中国科技公司&#xff0c;专注于通用人工智能&#xff08;AGI&#xff09;的研发&#xff0c;其开源推…...

Linux运维——用户管理

Linux用户管理 一、Linux用户管理要点二、常用命令2.1、groupadd2.2、groupdel2.3、groupmod2.4、groups2.5、useradd2.6、userdel2.7、passwd2.9、su2.10、sudo2.10.1、给普通用户授权 sudo2.10.2、 免密码授权 sudo 一、Linux用户管理要点 创建用户组 - 使用 groupadd删除用…...