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

【Liunx】部署Ansible自动化运维工具

Ansible自动化运维工具

  • 概述
  • 安装部署
    • 1.通过yum下载Ansible
    • 2.对自己做免密配置
    • 3.修改ansiable host配置对服务器进行分组
    • 4.测试:对所有服务器进行ping命令
    • 5.写playbook
    • 6.执行我们写的playbook脚本
    • 7.验证

概述

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可。

安装部署

1.通过yum下载Ansible

[root@server1 ~]# yum install -y ansible
Last metadata expiration check: 1:33:20 ago on 2023年11月14日 星期二 19时08分08秒.
Dependencies resolved.
=================================================================================================================================================================================================================================================Package                                                     Architecture                                  Version                                                 Repository                                                               Size
=================================================================================================================================================================================================================================================
Installing:ansible                                                     noarch                                        2.9.11-1.uel20                                          UnionTechOS-Server-20-everything                                         17 M
Installing dependencies:libsodium                                                   x86_64                                        1.0.18-1.uel20                                          UnionTechOS-Server-20-everything                                        152 kpython3-asn1crypto                                          noarch                                        1.4.0-1.uel20                                           UnionTechOS-Server-20-everything                                        181 kpython3-babel                                               noarch                                        2.8.0-3.uel20                                           UnionTechOS-Server-20-everything                                        6.1 Mpython3-bcrypt                                              x86_64                                        3.2.0-1.uel20                                           UnionTechOS-Server-20-everything                                         40 kpython3-cffi                                                x86_64                                        1.14.1-1.uel20                                          UnionTechOS-Server-20-everything                                        236 kpython3-cryptography                                        x86_64                                        3.3.1-1.uel20                                           UnionTechOS-Server-20-everything                                        402 kpython3-invoke                                              noarch                                        1.5.0-1.uel20.01                                        UnionTechOS-Server-20-everything                                        267 kpython3-jinja2                                              noarch                                        2.11.2-2.uel20                                          UnionTechOS-Server-20-everything                                        223 kpython3-jmespath                                            noarch                                        0.9.0-11.uel20                                          UnionTechOS-Server-20-everything                                         42 kpython3-markupsafe                                          x86_64                                        1.1.1-1.uel20                                           UnionTechOS-Server-20-everything                                         28 kpython3-pyasn1                                              noarch                                        0.4.8-1.uel20                                           UnionTechOS-Server-20-everything                                        136 kpython3-pycparser                                           noarch                                        2.20-2.uel20                                            UnionTechOS-Server-20-everything                                        155 kpython3-pynacl                                              x86_64                                        1.2.1-5.uel20                                           UnionTechOS-Server-20-everything                                         76 kpython3-pyyaml                                              x86_64                                        5.3.1-4.uel20                                           UnionTechOS-Server-20-everything                                        188 ksshpass                                                     x86_64                                        1.06-8.uel20                                            UnionTechOS-Server-20-everything                                         24 k
Installing weak dependencies:python3-paramiko                                            noarch                                        2.7.2-2.uel20                                           UnionTechOS-Server-20-everything                                        289 kTransaction Summary
=================================================================================================================================================================================================================================================
Install  17 PackagesTotal download size: 26 M
Installed size: 135 M
Downloading Packages:
(1/17): libsodium-1.0.18-1.uel20.x86_64.rpm                                                                                                                                                                      177 kB/s | 152 kB     00:00    
(2/17): python3-asn1crypto-1.4.0-1.uel20.noarch.rpm                                                                                                                                                              108 kB/s | 181 kB     00:01    
(3/17): python3-bcrypt-3.2.0-1.uel20.x86_64.rpm                                                                                                                                                                  8.1 kB/s |  40 kB     00:04    
(4/17): python3-cffi-1.14.1-1.uel20.x86_64.rpm                                                                                                                                                                    25 kB/s | 236 kB     00:09    
(5/17): python3-cryptography-3.3.1-1.uel20.x86_64.rpm                                                                                                                                                             31 kB/s | 402 kB     00:12    
(6/17): python3-invoke-1.5.0-1.uel20.01.noarch.rpm                                                                                                                                                                31 kB/s | 267 kB     00:08    
(7/17): python3-jinja2-2.11.2-2.uel20.noarch.rpm                                                                                                                                                                  22 kB/s | 223 kB     00:10    
(8/17): python3-jmespath-0.9.0-11.uel20.noarch.rpm                                                                                                                                                                10 kB/s |  42 kB     00:04    
(9/17): python3-markupsafe-1.1.1-1.uel20.x86_64.rpm                                                                                                                                                              4.4 kB/s |  28 kB     00:06    
(10/17): python3-paramiko-2.7.2-2.uel20.noarch.rpm                                                                                                                                                                25 kB/s | 289 kB     00:11    
(11/17): python3-pyasn1-0.4.8-1.uel20.noarch.rpm                                                                                                                                                                  17 kB/s | 136 kB     00:07    
(12/17): python3-pycparser-2.20-2.uel20.noarch.rpm                                                                                                                                                                28 kB/s | 155 kB     00:05    
(13/17): python3-pynacl-1.2.1-5.uel20.x86_64.rpm                                                                                                                                                                  13 kB/s |  76 kB     00:05    
(14/17): python3-pyyaml-5.3.1-4.uel20.x86_64.rpm                                                                                                                                                                  31 kB/s | 188 kB     00:06    
(15/17): sshpass-1.06-8.uel20.x86_64.rpm                                                                                                                                                                         5.3 kB/s |  24 kB     00:04    
(16/17): python3-babel-2.8.0-3.uel20.noarch.rpm                                                                                                                                                                   35 kB/s | 6.1 MB     02:58    
(17/17): ansible-2.9.11-1.uel20.noarch.rpm                                                                                                                                                                        87 kB/s |  17 MB     03:22    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                            130 kB/s |  26 MB     03:22     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transactionPreparing        :                                                                                                                                                                                                                         1/1 Installing       : python3-jmespath-0.9.0-11.uel20.noarch                                                                                                                                                                                 1/17 Installing       : sshpass-1.06-8.uel20.x86_64                                                                                                                                                                                            2/17 Installing       : python3-pyyaml-5.3.1-4.uel20.x86_64                                                                                                                                                                                    3/17 Installing       : python3-pycparser-2.20-2.uel20.noarch                                                                                                                                                                                  4/17 Installing       : python3-cffi-1.14.1-1.uel20.x86_64                                                                                                                                                                                     5/17 Installing       : python3-bcrypt-3.2.0-1.uel20.x86_64                                                                                                                                                                                    6/17 Installing       : python3-pyasn1-0.4.8-1.uel20.noarch                                                                                                                                                                                    7/17 Installing       : python3-markupsafe-1.1.1-1.uel20.x86_64                                                                                                                                                                                8/17 Installing       : python3-invoke-1.5.0-1.uel20.01.noarch                                                                                                                                                                                 9/17 Installing       : python3-babel-2.8.0-3.uel20.noarch                                                                                                                                                                                    10/17 Installing       : python3-jinja2-2.11.2-2.uel20.noarch                                                                                                                                                                                  11/17 Installing       : python3-asn1crypto-1.4.0-1.uel20.noarch                                                                                                                                                                               12/17 Installing       : python3-cryptography-3.3.1-1.uel20.x86_64                                                                                                                                                                             13/17 Installing       : libsodium-1.0.18-1.uel20.x86_64                                                                                                                                                                                       14/17 Installing       : python3-pynacl-1.2.1-5.uel20.x86_64                                                                                                                                                                                   15/17 Installing       : python3-paramiko-2.7.2-2.uel20.noarch                                                                                                                                                                                 16/17 Installing       : ansible-2.9.11-1.uel20.noarch                                                                                                                                                                                         17/17 Running scriptlet: ansible-2.9.11-1.uel20.noarch                                                                                                                                                                                         17/17 Verifying        : ansible-2.9.11-1.uel20.noarch                                                                                                                                                                                          1/17 Verifying        : libsodium-1.0.18-1.uel20.x86_64                                                                                                                                                                                        2/17 Verifying        : python3-asn1crypto-1.4.0-1.uel20.noarch                                                                                                                                                                                3/17 Verifying        : python3-babel-2.8.0-3.uel20.noarch                                                                                                                                                                                     4/17 Verifying        : python3-bcrypt-3.2.0-1.uel20.x86_64                                                                                                                                                                                    5/17 Verifying        : python3-cffi-1.14.1-1.uel20.x86_64                                                                                                                                                                                     6/17 Verifying        : python3-cryptography-3.3.1-1.uel20.x86_64                                                                                                                                                                              7/17 Verifying        : python3-invoke-1.5.0-1.uel20.01.noarch                                                                                                                                                                                 8/17 Verifying        : python3-jinja2-2.11.2-2.uel20.noarch                                                                                                                                                                                   9/17 Verifying        : python3-jmespath-0.9.0-11.uel20.noarch                                                                                                                                                                                10/17 Verifying        : python3-markupsafe-1.1.1-1.uel20.x86_64                                                                                                                                                                               11/17 Verifying        : python3-paramiko-2.7.2-2.uel20.noarch                                                                                                                                                                                 12/17 Verifying        : python3-pyasn1-0.4.8-1.uel20.noarch                                                                                                                                                                                   13/17 Verifying        : python3-pycparser-2.20-2.uel20.noarch                                                                                                                                                                                 14/17 Verifying        : python3-pynacl-1.2.1-5.uel20.x86_64                                                                                                                                                                                   15/17 Verifying        : python3-pyyaml-5.3.1-4.uel20.x86_64                                                                                                                                                                                   16/17 Verifying        : sshpass-1.06-8.uel20.x86_64                                                                                                                                                                                           17/17 Installed:ansible-2.9.11-1.uel20.noarch             libsodium-1.0.18-1.uel20.x86_64        python3-asn1crypto-1.4.0-1.uel20.noarch python3-babel-2.8.0-3.uel20.noarch     python3-bcrypt-3.2.0-1.uel20.x86_64     python3-cffi-1.14.1-1.uel20.x86_64   python3-cryptography-3.3.1-1.uel20.x86_64 python3-invoke-1.5.0-1.uel20.01.noarch python3-jinja2-2.11.2-2.uel20.noarch    python3-jmespath-0.9.0-11.uel20.noarch python3-markupsafe-1.1.1-1.uel20.x86_64 python3-paramiko-2.7.2-2.uel20.noarchpython3-pyasn1-0.4.8-1.uel20.noarch       python3-pycparser-2.20-2.uel20.noarch  python3-pynacl-1.2.1-5.uel20.x86_64     python3-pyyaml-5.3.1-4.uel20.x86_64    sshpass-1.06-8.uel20.x86_64            Complete!
[root@server1 ~]# 

2.对自己做免密配置

之前已生成密钥 对这一块不了解的请查看 【LIUNX】机器互访:免密登陆

[root@server1 ~]# ssh-copy-id root@server1
/usr/bin/ssh-copy-id: INFO: Source of  key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'server1 (192.168.122.1)' can't be established.
ECDSA key fingerprint is SHA256:TWajqYQ0cY7n48NQANig8R2qvjcRIDQagMvYot7yIT4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
UnionTech OS Server 20 1050e
root@server1's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@server1'"
and check to make sure that only the key(s) you wanted were added.
[root@server1 ~]# ssh root@server1
UnionTech OS Server 20 1050eAuthorized users only. All activities may be monitored and reported.
Last login: Tue Nov 14 15:18:38 2023 from 192.168.3.1Welcome to 4.19.90-2201.4.0.0135.up1.uel20.x86_64System information as of time: 		20231114日 星期二 20:53:43 CSTSystem load: 		0.01
Processes: 		202
Memory used: 		58.1%
Swap used: 		0.2%
Usage On: 		10%
IP address: 		192.168.3.5
IP address: 		192.168.122.1
IP address: 		172.17.0.1
Users online: 		3[root@server1 ~]# exit
注销
Connection to server1 closed.
[root@server1 ~]# ssh root@server2
UnionTech OS Server 20 1050eAuthorized users only. All activities may be monitored and reported.
Last login: Tue Nov 14 15:18:29 2023 from 192.168.122.1Welcome to 4.19.90-2201.4.0.0135.up1.uel20.x86_64System information as of time: 		20231114日 星期二 20:53:41 CSTSystem load: 		0.00
Processes: 		121
Memory used: 		13.2%
Swap used: 		0.0%
Usage On: 		6%
IP address: 		192.168.122.2
Users online: 		2

免密已经成功了

3.修改ansiable host配置对服务器进行分组

  • 在/etc/ansible/hosts最下方新增一下组别和服务器名

[web]
server1
[db]
server2

结果如下

[root@server1 ~]# vi /etc/ansible/hosts 
[root@server1 ~]# cat /etc/ansible/hosts 
# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
#   - Comments begin with the '#' character
#   - Blank lines are ignored
#   - Groups of hosts are delimited by [header] elements
#   - You can enter hostnames or ip addresses
#   - A hostname/ip can be a member of multiple groups# Ex 1: Ungrouped hosts, specify before any group headers.## green.example.com
## blue.example.com
## 192.168.100.1
## 192.168.100.10# Ex 2: A collection of hosts belonging to the 'webservers' group## [webservers]
## alpha.example.org
## beta.example.org
## 192.168.1.100
## 192.168.1.110# If you have multiple hosts following a pattern you can specify
# them like this:## www[001:006].example.com# Ex 3: A collection of database servers in the 'dbservers' group## [dbservers]
## 
## db01.intranet.mydomain.net
## db02.intranet.mydomain.net
## 10.25.1.56
## 10.25.1.57# Here's another example of host ranges, this time there are no
# leading 0s:## db-[99:101]-node.example.com
[web]
server1
[db]
server2

4.测试:对所有服务器进行ping命令

root@server1 ~]# ansible all -m ping
[WARNING]: Platform linux on host server2 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
server2 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"
}
[WARNING]: Platform linux on host server1 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See
https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information.
server1 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"
}

5.写playbook

vi install_php_fpm.yml

内容如下:

---
- hosts: webuser: roottasks: - name: install php-fpmyum: name: php-fpmstate: present- name: start php-fpmservice: name: php-fpmstate: startedenable: yes

注意:yml文件每行的前面不能用tab只能使用空格

[root@server1 ~]# vi install_php_fpm.yml
[root@server1 ~]# cat install_php_fpm.yml 
---
- hosts: webtasks:- name: install phpyum:name: "{{item}}"state: presentloop:- php-fpm- samba- name: start phpservice:name: php-fpmstate: startedenabled: yes- name: start smbservice:name: smbstate: startedenabled: yes
- hosts: dbtasks:- name: install mariadbyum:name: mariadb-serverstate: present- name: start mariadbservice:name: mariadbstate: startedenabled: yes
[root@server1 ~]# ansible-playbook --syntax-check install_php_fpm.yml playbook: install_php_fpm.yml

ansible-playbook --syntax-check验证脚本是否正确
命令格式如下:
ansible-playbook --syntax-check xxx.yml

6.执行我们写的playbook脚本

[root@server1 ~]#  ansible-playbook install_php_fpm.yml -e "ansible_python_interpreter=/usr/bin/python3"PLAY [web] **************************************************************************************************************************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************************************************************************************************************************
ok: [server1]TASK [install php] ******************************************************************************************************************************************************************************************************************************
ok: [server1] => (item=php-fpm)
changed: [server1] => (item=samba)TASK [start php] ********************************************************************************************************************************************************************************************************************************
ok: [server1]TASK [start smb] ********************************************************************************************************************************************************************************************************************************
changed: [server1]PLAY [db] ***************************************************************************************************************************************************************************************************************************************TASK [Gathering Facts] **************************************************************************************************************************************************************************************************************************
ok: [server2]TASK [install mariadb] **************************************************************************************************************************************************************************************************************************
changed: [server2]TASK [start mariadb] ****************************************************************************************************************************************************************************************************************************
changed: [server2]PLAY RECAP **************************************************************************************************************************************************************************************************************************************
server1                    : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
server2                    : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   [root@server1 ~]# 

命令格式如下:
ansible-playbook xxx.yml

7.验证

[root@server1 ~]# rpm -qc php-fpm
/etc/httpd/conf.d/php.conf
/etc/logrotate.d/php-fpm
/etc/nginx/conf.d/php-fpm.conf
/etc/nginx/default.d/php.conf
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
[root@server1 ~]# systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process ManagerLoaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-11-15 00:14:45 CST; 4min 33s agoMain PID: 22863 (php-fpm)Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"Tasks: 6Memory: 16.1MCGroup: /system.slice/php-fpm.service├─22863 php-fpm: master process (/etc/php-fpm.conf)├─22864 php-fpm: pool www├─22865 php-fpm: pool www├─22866 php-fpm: pool www├─22867 php-fpm: pool www└─22868 php-fpm: pool www1115 00:14:45 server1 systemd[1]: Starting The PHP FastCGI Process Manager...
1115 00:14:45 server1 systemd[1]: Started The PHP FastCGI Process Manager.
[root@server1 ~]# 

相关文章:

【Liunx】部署Ansible自动化运维工具

Ansible自动化运维工具 概述安装部署1.通过yum下载Ansible2.对自己做免密配置3.修改ansiable host配置对服务器进行分组4.测试:对所有服务器进行ping命令5.写playbook6.执行我们写的playbook脚本7.验证 概述 ansible是新出现的自动化运维工具,基于Pytho…...

Python的基础语法

1. 注释:在Python中,使用井号(#)表示单行注释,三个单引号()或三个双引号(""")表示多行注释。 2. 变量:在Python中,不需要声明变量…...

Skywalking流程分析_8(拦截器插件的加载)

前言 在之前的文章中我们将,静态方法、构造方法、实例方法的增强逻辑都分析完毕,但在增强前,对于拦截类的加载是至关重要的,下面我们就来详细的分析 增强插件的加载 静态方法增强前的加载 //clazz 要修改的字节码的原生类 Sta…...

智能AI系统ChatGPT网站源码+支持OpenAI DALL-E3文生图+支持ai绘画(Midjourney)/支持GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

腾讯云服务器可用区是什么意思?可用区选择方法

腾讯云服务器可用区是什么意思?云服务器可用区如何选择?可用区是指在同一个地域内电力和网络相互独立的区域,可用区可以做到故障隔离,所以可用区存在的意义在于构建高可用、高容灾应用,将应用部署在不同可用区内&#…...

Jupyter运行显存爆炸,明明上一个单元格已经运行完毕为什么还是会炸?

问题再现 上一个单元格运行完了train(),我想要用模型输出做点东西,可是提醒我显存不够; 在命令行中查看显存占用情况,发现4张卡都占满了,可真是太厉害了! 解决方案 查看原来写的validate(),发…...

【ICE】webrtc lite 1:cmake构建

p2ptransportchannel 是 ICE 实现基于此实现了DTLTransport而前者是独立的模块。依赖库较少主要是ssl absl OpenSSL Protobuf 可选 absl webrtc 不支持大端 :big endian architectures defined in WebRTC’s arch.h D_WINSOCKAPI_ 用来做啥? 以下编译选项: add_compile_opti…...

国内最受欢迎电商API接口调用淘宝商品详情API接口数据

国内实用的API接口 国内最受欢迎的7大API供应平台对比和介绍 本文将介绍7款API供应平台:聚合数据、百度APIStore、Apix、数说聚合、通联数据、HaoService、datasift 。排名不分先后! 免费实用的API接口 第一部分 1、电商数据(API数据接口_开…...

第五篇 基于JSP 技术的网上购书系统——主页面和登录页面实现(网上商城、仿淘宝、当当、亚马逊)

目录 1.系统主界面 1.1功能说明 1.2界面设计 1.3处理流程 1.4 数据来源和算法 1.4.1数据来源 1.4.2查询条件 1.4.3表间关系 1.4.4相关sql实例 2.系统登陆后界面 2.1功能说明 2.2界面设计 2.3处理流程 2.4数据来源和算法 2.4.1数据来源 2.4.2查询条件 2.4.…...

【 云原生 | K8S 】kubeadm 部署Kubernetes集群

目录 1 环境准备 2 所有节点安装docker 3 所有节点安装kubeadm,kubelet和kubectl 4 部署K8S集群 4.1 查看初始化需要的镜像 4.2 初始化kubeadm 4.3 设定kubectl 4.4 所有节点部署网络插件flannel master(2C/4G,cpu核心数要求大于2&am…...

微信小程序rich-text 文本首行缩进和图片居中和富文本rich-text 解析多个空格不成功 nbsp

微信小程序开发使用rich-text组件渲染html格式的代码,常常因为不能自定义css导致文本不能缩进,以及图片不能居中等问题,这里可以考虑使用js的replace方法,替换字符串,然后在渲染的同时加载行内样式。 //获取字符串的图…...

uniapp 设置重写uni-body-page样式,输入字母转大写,条形码扫描

uniapp 设置重写uni-body-page样式,输入字母转大写 一、重写uni-body-page样式 page{ }二、输入字母转大写 input标签设置样式: style"text-transform: uppercase;"绑定的值通过.toUpperCase()转大写 三、条形码扫描 // 调起条码扫描uni…...

【uniapp/uview1.x】u-upload 在 v-for 中的使用时, before-upload 如何传参

引入: 是这样一种情况,在接口获取数据之后,是一个数组列表,循环展示后,需要在每条数据中都要有图片上传,互不干扰。 分析: uview 官网中有说明,before-upload 是不加括号的&#xff…...

求组合数(笔记)

//组合数2&#xff0c;取值在1e5 //Cab a! / (a - b)! * b! #include<iostream> using namespace std; using ll long long; const ll N 1e4 9, mod 1e9 7; ll fact[N], infact[N];//阶乘&#xff0c;逆元阶乘ll qmi(ll a, ll k, ll p)//逆元模板 {ll res 1;while…...

《视觉SLAM十四讲》-- 后端 1(下)

8.2 BA 与图优化 Bundle Adjustment 是指从视觉图像中提炼出最优的 3D 模型和相机参数&#xff08;内参和外参&#xff09;。 8.2.1 相机模型和 BA 代价函数 我们从一个世界坐标系中的点 p \boldsymbol{p} p 出发&#xff0c;把相机的内外参数和畸变都考虑进来&#xff0c;…...

io+day8

#ifndef __SEM2 #define __SEM3 4 //声明一个创>5 int init_sem(6 7 //声明一个p操8 int P(int sem9 10 //声明一个v操11 int W(int sem12 13 //声明一个删>14 int del_sem(i15 16 #endif 1 #include <myhead.h> …...

【图像处理:OpenCV-Python基础操作】

【图像处理&#xff1a;OpenCV-Python基础操作】 1 读取图像2 显示图像3 保存图像4 图像二值化、灰度图、彩色图&#xff0c;像素替换5 通道处理&#xff08;通道拆分、合并&#xff09;6 调整尺寸大小7 提取感兴趣区域、掩膜8 乘法、逻辑运算9 HSV色彩空间&#xff0c;获取特定…...

Java 简单实现一个 TCP 回显服务器

文章目录 TCP 服务端TCP 客户端实现效果TCP 服务端(实现字典功能)总结 TCP 服务端 package network;import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Soc…...

邦芒攻略:新手求职面试需要准备的材料

新手求职面试需要准备的材料&#xff0c;求职材料是求职者写给用人单位的信&#xff0c;目的是让对方了解自己&#xff0c;准备好充足的资料和自信的心态会让面试通过的几率大大增强&#xff0c;那么应聘者需要准备的材料呢&#xff0c;来看看吧。 ​ ​1、求职信。也是求职者…...

在docker下安装suiteCRM

安装方法&#xff1a; docker-hub来源&#xff1a;https://hub.docker.com/r/bitnami/suitecrm curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/suitecrm/docker-compose.yml > docker-compose.yml//然后可以在docker-compose.yml文件里修…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...