【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: 2023年 11月 14日 星期二 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: 2023年 11月 14日 星期二 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 www11月 15 00:14:45 server1 systemd[1]: Starting The PHP FastCGI Process Manager...
11月 15 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 是不加括号的ÿ…...

求组合数(笔记)
//组合数2,取值在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];//阶乘,逆元阶乘ll qmi(ll a, ll k, ll p)//逆元模板 {ll res 1;while…...

《视觉SLAM十四讲》-- 后端 1(下)
8.2 BA 与图优化 Bundle Adjustment 是指从视觉图像中提炼出最优的 3D 模型和相机参数(内参和外参)。 8.2.1 相机模型和 BA 代价函数 我们从一个世界坐标系中的点 p \boldsymbol{p} p 出发,把相机的内外参数和畸变都考虑进来,…...

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

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…...

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

在docker下安装suiteCRM
安装方法: docker-hub来源: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文件里修…...

【Python大数据笔记_day08_hive查询】
hive查询 语法结构: SELECT [ALL | DISTINCT] 字段名, 字段名, ... FROM 表名 [inner | left outer | right outer | full outer | left semi JOIN 表名 ON 关联条件 ] [WHERE 非聚合条件] [GROUP BY 分组字段名] [HAVING 聚合条件] [ORDER BY 排序字段名 asc | desc] [CLUSTE…...

魔众文库系统 v5.6.0 DWG文件格式支持,部分数据封面显示异常,定时调度清理临时文件
魔众文库系统基于文档系统知识,建立平台与领域,打造流量、用户、付费和变现的闭环,帮助您更好的搭建文库系统。 魔众文库系统发布v5.6.0版本,新功能和Bug修复累计17项,DWG文件格式支持,部分数据封面显示异…...

2023 PostgreSQL 数据库生态大会:解读拓数派大数据计算系统及其云存储底座
11月3日-5日,由中国开源软件推进联盟 PostgreSQL 分会主办的中国 PostgreSQL 数据库生态大会在北京中科院软件所隆重举行。大会以”极速进化融合新生”为主题,从线下会场和线上直播两种方式展开,邀请了数十位院士、教授、高管和社群专家&…...

Android10 手势导航
种类 Android10 默认的系统导航有三种: 1.两个按钮的 2.三个按钮的 3.手势 它们分别对应三个包名 frameworks/base/packages/overlays/NavigationBarMode2ButtonOverlay frameworks/base/packages/overlays/NavigationBarMode3ButtonOverlay frameworks/base/packa…...

Pinia 插件 pinia-plugin-persist 添加 persist 属性时报错:没有与此调用匹配的重载
项目场景: Vue3TS 语言Pinia插件:pinia-plugin-persist 问题描述 代码如下: import { defineStore } from piniaexport const useInfoStore defineStore(info, {state: () > {return {activeIndex: 0}},actions: {updateIndex(active…...

Django知识
目录 一.request对象方法 1.request.method 2.request.POST 3.request.GET 4.request.FILES 5.request.path 二.FBV与CBV引入 1.FBV 2.CBV (1)路由 (2)视图 3.详解 (1)FBV (2)CBV (3)小结 三.CBV源码剖析 1.as_view方法 (1)路由对应函…...

vue2+antd——实现权限管理——js数据格式处理(回显+数据结构渲染)
vue2antd——实现权限管理——js数据格式处理 效果图如下:1.需求说明2.如何展开所有子项及孙子项目——在弹窗之前就获取树形结构,然后直接将数据传到弹窗中3.template部分代码4.script的data部分5.权限tree数据处理——将row中的权限分配到具体的value参…...

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析
目录 一、cenc-aes-ctr 原理介绍 二、显式 cenc-aes-ctr 和隐式 cenc-aes-ctr 三、加密工具---ffmpeg 四、播放---ffplay 五、总结 一、cenc-aes-ctr 原理介绍 加密算法:CENC-AES-CTR 使用 AES(Advanced Encryption Standard&…...

网络安全/黑客技术(0基础入门到进阶提升)
前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学 今天给大家分享一下,很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习…...

栈的三道oj【C++】
栈和队列的相关oj 最小栈思路解决代码 栈的压入弹出序列思路解决代码 逆波兰表达式思路:解决代码 这里就挑了三道题用来熟悉栈 最小栈 力扣链接 咱们已经是高贵的C使用者了,不用像C语言一样从头开始造轮子了 这里我们调用了stack后,就会发…...