Ansible---自动化运维工具

news2024/11/17 2:39:45

一、Ansible概述

1.1 Ansible简介

Ansible是一款自动化运维工具,通过ssh对目标主机进行配置、应用部署、任务执行、编排调度等操作。它简化了复杂的环境管理和自动化任务,提高了工作效率和一致性,同时,Ansible的剧本(playbooks)可以使用YAML语言进行编写,易于维护和扩展。

  • Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。
  • Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个操作,使用Ansible只需在固定的一台Ansible控制节点上去完成所有主机的操作。
  • Ansible是基于模块工作的,它只是提供了一种运行框架,它本身没有完成任务的能力,真正执行操作的是Ansible的模块, 比如copy模块用于拷贝文件到远程主机上,service模块用于管理服务的启动、停止、重启等。
  • Ansible其中一个比较鲜明的特性是Agentless,即无Agent的存在,它就像普通命令一样,并非C/S软件,也只需在某个作为控制节点的主机上安装一次Ansible即可,通常它基于ssh连接来控制远程主机,远程主机上不需要安装Ansible或其它额外的服务。
  • 使用者在使用时,在服务器终端输入命令或者playbooks,会通过预定好的规则将playbook拆解为play,再组织成ansible可以识别的任务,调用模块和插件,根据主机清单通过SSH将临时文件发给远程的客户端执行并返回结果,执行结束后自动删除
  • Ansible的另一个比较鲜明的特性是它的绝大多数模块都具备幂等性(idempotence)。所谓幂等性,指的是多次操作或多次执行对系统资源的影响是一致的。比如执行 systemctl stop xxx 命令来停止服务,当发现要停止的目标服务已经处于停止状态, 它什么也不会做,所以多次停止的结果仍然是停止,不会改变结果,它是幂等的,而 systemctl restart xxx 是非幂等的。
  • Ansible的很多模块在执行时都会先判断目标节点是否要执行任务,所以,可以放心大胆地让Ansible去执行任务,重复执行某个任务绝大多数时候不会产生任何副作用。

1.2 Ansible的特点

  1. 部署简单,只需在主控端部署Ansible环境, 被控端无需做任何操作
  2. 默认使用SSH协议设备进行管理;
  3. 主从集中化管理
  4. 配置简单、功能强大、扩张性强;
  5. 支持API及自定义模块,可以通过Pyhton轻松扩展
  6. 通过playbooks 来定制强大的配置、状态管理
  7. 对云计算平台、大数据都有很好的支持

1.3 Ansible自动运维管理工具的优点

  • 轻量级,更新时,只需要在操作机上进行一次更新即可;
  • 采用 SSH 协议;
  • 不需要去客户端安装 agent;
  • 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
  • 使用 python 编写的,维护更简单;
  • 支持 sudo 普通用户命令;
  • 去中心化管理。

二、Ansible的数据流向(工作机制)

2.1 内部

加载自己的配置文件,默认/etc/ansible/ansible.cfg

查找对应的主机配置文件,找到要执行的主机或组

加载自己对应的模块文件,如command yum ping

通过ansible将模块命令生成对应临时py文件(pyhton),并将该文件传输至远程服务器上

对应执行用户的家目录的.ansible/tmp/xxx/xxxx.py文件

给文件+执行权限

执行并返回结果,删除临时文件,sleep 0 退出

2.2 外部

三、安装Ansible

3.1安装准备

[root@localhost ~]#setenforce 0              ##关闭核心防护
[root@localhost ~]#systemctl stop firewalld  #关闭防火墙

3.2 修改主机名

[root@localhost ~]#hostnamectl set-hostname ansible01
[root@localhost ~]#bash

[root@localhost ~]#hostnamectl set-hostname ansible02
[root@localhost ~]#bash

[root@localhost ~]#hostnamectl set-hostname ansible03
[root@localhost ~]#bash

 

3.3 给每台机器添加域名

echo "192.168.10.100 ansible01" >> /etc/hosts
echo "192.168.10.101 ansible02" >> /etc/hosts
echo "192.168.10.102 ansible03" >> /etc/hosts
cat /etc/hosts

3.4 Ansible控制端安装epel源

[root@localhost ~]#yum install epel-release.noarch -y

3.5 Ansible控制端安装Ansible

[root@ansible01 ~]#yum -y install ansible

3.6 Ansible控制端安装tree

yum -y install tree

3.7 查看ansible目录结构

ls /etc/ansible/
或是
tree /etc/ansible/

3.8 配置Ansible主机清单

[root@ansible01 ~]#cd /etc/ansible/
[root@ansible01 ansible]#ls
ansible.cfg  hosts  roles
[root@ansible01 ansible]#cp hosts{,.bak}   ##做备份
[root@ansible01 ansible]#ls
ansible.cfg  hosts  hosts.bak  roles
[root@ansible01 ansible]#vim hosts         ##修改配置文件

3.9 设置免密登录

[root@ansible01 ansible]#ssh-keygen -t rsa

##第一次设置免密的时候是失败的
[root@ansible01 ansible]#sshpass -p '123' ssh-copy-id root@192.168.10.101

[root@ansible01 ansible]#ssh root@192.168.10.101

##此次设置免密成功
[root@ansible01 ansible]#sshpass -p '123' ssh-copy-id root@192.168.10.101

##第一次设置免密的时候是失败的
[root@ansible01 ansible]#sshpass -p '123' ssh-copy-id root@192.168.10.102

[root@ansible01 ansible]#ssh root@192.168.10.102

##此次设置免密成功
[root@ansible01 ansible]#sshpass -p '123' ssh-copy-id root@192.168.10.102

四、Ansible相关工具

  • /usr/bin/ansible 主程序,临时命令执行工具
  • /usr/bin/ansible-doc 查看配置文档,模块功能查看工具,相当于man ansible-doc -l |grep 关键字 具体模块名字
  • /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具,相当于脚本
  • /usr/bin/ansible-pull 远程执行命令的工具
  • /usr/bin/ansible-vault 文件加密工具
  • /usr/bin/ansible-console 基于Console界面与用户交互的执行工具
  • /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台

4.1 ansible

格式:

ansible <host-pattern> [-m module_name] [-a args]
命令     主机或者清单中的组 -m 指定模块      -a  执行的任务

选项:

--version 					#显示版本
-m module   				#指定模块,默认为command
-v 							#详细过程 -vv -vvv更详细
--list-hosts 				#显示主机列表,可简写 --list
-C, --check   				#检查,并不执行 (检查的是脚本,不是配置文件)
-T, --timeout=TIMEOUT 		#执行命令的超时时间,默认10s
-k, --ask-pass     			#提示输入ssh连接密码,默认Key验证 
-u, --user=REMOTE_USER 		#执行远程执行的用户,默认root
-b, --become    			#代替旧版的sudo 切换
--become-user=USERNAME  	#指定sudo的runas用户,默认为root  vim /etc/sudoers 用户权限
-K, --ask-become-pass  		#提示输入sudo时的口令
-f FORKS, --forks FORKS 	#指定并发同时执行ansible任务的主机数

 -v                        #详细过程   -vv   -vvv更详细

[root@ansible01 ansible]#ansible nginx -a "touch /opt/kgc" -vv

去被管理的那两主机查看

--list-hosts                 #显示主机列表,可简写 --list

[root@ansible01 ansible]#ansible nginx --list

[root@ansible01 ansible]#ansible tomcat --list

[root@ansible01 ansible]#ansible all --list

[root@ansible01 ansible]#ansible 'nginx:tomcat' --list-hosts

[root@ansible01 ansible]#ansible 'nginx:&tomcat' --list-hosts

[root@ansible01 ansible]#ansible 'nginx:!tomcat' --list-hosts

4.2 ansible-doc 

格式:

ansible-doc   模块    #可以看模块的详细信息
[root@ansible01 ansible]#ansible-doc

ansible-doc -l				#列出所有已安装的模块,按q退出

[root@ansible01 ansible]#ansible-doc -l | wc -l
3387
[root@ansible01 ansible]#ansible-doc -s ping      ##显示模块的简单信息

[root@ansible01 ansible]#ansible-doc ping         ##该模块的详细信息

[root@zzzcentos1 ~]#ansible-doc file
#幂等性,安全性,自己写脚本    按q退出

4.3 ansible-console

#此工具可交互执行命令,支持tab,ansible 2.0+新增
提示符格式
执行用户@当前操作的主机组 (当前组的主机数量)[f:并发数]$
 
常用子命令:
设置并发数: forks n 例如: forks 10
切换组: cd 主机组 例如: cd web
列出当前组主机列表: list
列出所有的内置命令: ?或help
 
 
root@all (4)[f:5]$ cd nginx
root@nginx (2)[f:5]$ 
root@nginx (2)[f:5]$ forks 1
root@nginx (2)[f:1]$ 
 
 
[root@ansible01 ~]#ansible-console
Welcome to the ansible console.
Type help or ? to list commands.
 
root@all (4)[f:5]$ ping   
#直接使用模块

4.4 playbook

此工具用于执行编写好的 playbook 任务
范例
ansible-playbook hello.yml
cat hello.yml
---
#hello world yml file
- hosts: websrvs
 remote_user: root
 gather_facts: no
  
 tasks:
    - name: hello world
      command: /usr/bin/wall hello world

五、Ansible 模块

常用模块帮助文档参考:

https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html
https://docs.ansible.com/ansible/2.9/modules/list_of_all_modules.html
 
 
https://docs.ansible.com/ansible/latest/modules/list_of_all_modules.html
https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

用法:

ansible <host-pattern> [-m module_name] [-a args]
命令     主机或者清单中的组 -m 指定模块      -a  执行的任务

5.1 Command 模块

在远程主机执行命令,不支持管道,重定向等shell的特性。
ansible-doc -s command		#-s 列出指定模块的描述信息和操作动作

command模块是ansible的默认模块

vim /etc/ansible/ansible.cfg

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

注意:此命令不支持 $VARNAME < > | ; & 等,可能用shell模块实现

< >(重定向) |(管道符) ;(并行执行)  & (后台执行)

注意:此模块不具有幂等性

[root@ansible01 ansible]#ansible nginx -m command -a "cp /etc/passwd /opt/"

验证:

注意:此命令不支持 $VARNAME < > | ; & 等,可能用shell模块实现

[root@ansible01 ansible]#ansible nginx -a "echo hello > /opt/haha"

[root@ansible01 ansible]#ansible nginx -m shell -a "echo hello > /opt/haha"

5.2 shell 模块

功能:和command相似,用shell执行命令,支持各种符号,比如:*,$, >

shell 可以用特殊符号,可以用的命令更多

注意:此模块不具有幂等性

在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令(支持管道符号等功能)
ansible-doc -s shell

chdir:在远程主机上运行命令的前提进入目录
creates: 判断指定文件是否存在 如果存在 不执行后面的操作 
removes: 判断指定文件知否存在  如果存在 执行后面的操作
[root@ansible01 ansible]#ansible nginx -m shell -a "echo hahahaha > /opt/test1"

验证:

[root@ansible01 ansible]#ansible web -m shell -a "ifconfig ens33|awk 'NR==2{print}'"

提取出ip地址行

5.3 cron 模块

在远程主机定义任务计划。其中有两种状态(state):present表示添加(可以省略),absent表示移除。
ansible-doc -s cron				#按 q 退出

 5.3.1 制作计划任务

##制作计划任务
[root@ansible01 ansible]#ansible nginx -m cron -a 'minute="*/5" job="/bin/echo this is kysw" name="kysw crontab"'

[root@ansible01 ansible]#ansible nginx -a 'crontab -l'

验证:

[root@ansible02 ~]#crontab -l

5.3.2 移除计划任务

[root@ansible01 ansible]#ansible nginx -m cron -a 'name="kysw crontab" state=absent'

[root@ansible01 ansible]#ansible nginx -a 'crontab -l'

5.4 user 模块

用户管理的模块
ansible-doc -s user

5.4.1 创建用户

[root@ansible01 ansible]#ansible nginx -m user -a 'name="lisan"'

[root@ansible01 ansible]#ansible nginx -m user -a 'name="lisi"'

5.4.2 查看创建的用户

[root@ansible01 ansible]#ansible nginx -a 'tail /etc/passwd'

[root@ansible02 ~]#tail -n3 /etc/passwd

5.4.3 删除创建的用户

[root@ansible01 ansible]#ansible nginx -m user -a 'name="lisan" state=absent'

[root@ansible01 ansible]#ansible nginx -m user -a 'name="lisi" state=absent remove=yes'

[root@ansible02 ~]#tail -n3 /etc/passwd

[root@ansible02 ~]#ls /home/

5.5 group 模块

用户组管理的模块
ansible-doc -s group

5.5.1 创建myzh组

[root@ansible01 ansible]#ansible nginx -m group -a 'name=myzh gid=305 system=yes'

5.5.2 查看组

[root@ansible02 ~]#tail -n5 /etc/group

5.5.3 将用户添加到组中

[root@ansible01 ansible]#ansible nginx -m user -a 'name="wangwu" uid=305 system=yes group=myzh'

5.5.4 查看用户是否加入到组中

[root@ansible02 ~]#id wangwu

5.6 copy 模块

用于复制指定主机文件到远程主机的
ansible-doc -s copy

复制到指定的路径下,并添加权限

验证:

验证:

5.7 file模块

设置文件属性
ansible-doc -s file

5.7.1 创建文件

[root@ansible01 ansible]#ansible nginx -m file -a "path=/opt/ceshi.txt state=touch"

5.7.2 删除文件

[root@ansible01 ansible]#ansible nginx -m file -a "path=/opt/ceshi.txt state=absent"

5.7.3 创建软链接

[root@ansible01 ansible]#ansible nginx -m file -a "path=/opt/fstab.link src=/opt/fstab.bak  state=link"

5.8 hostname模块

用于管理远程主机上的主机名
ansible-doc -s hostname

[root@ansible01 ansible]#ansible tomcat -m hostname -a 'name=kysw'

5.9 ping 模块

检测远程主机的连通性
ansible-doc -s ping

[root@ansible01 ansible]#ansible nginx -m ping

[root@ansible01 ansible]#ansible tomcat -m ping

[root@ansible01 ansible]#ansible all -m ping

[root@ansible01 ansible]#ansible 192.168.10.101 -m ping

[root@ansible01 ansible]#ansible 192.168.10.102 -m ping

[root@ansible01 ansible]#ansible 192.168.10.103 -m ping

5.10 yum 模块

在远程主机上安装与卸载软件包
ansible-doc -s yum

5.10.1 安装tree

[root@ansible01 ansible]#ansible tomcat -m yum -a 'name=tree'

验证:

5.10.2 卸载tree

[root@ansible01 ansible]#ansible tomcat -m yum -a 'name=tree state=absent'

验证:

5.11 service/systemd 模块

用于管理远程主机上的管理服务的运行状态
ansible-doc -s service

5.11.1 安装httpd服务

[root@ansible01 ansible]#ansible tomcat -m yum -a 'name=httpd'

5.11.2开启httpd服务

[root@ansible01 ansible]#ansible tomcat -m service -a 'name=httpd enabled=true state=started'

验证:

5.11.3用Ansible查看服务状态

[root@ansible01 ansible]#ansible tomcat -a 'systemctl status httpd'

5.12 script 模块

实现远程批量运行本地的 shell 脚本
ansible-doc -s script

5.12.1 创建一个本地的shell脚本

[root@ansible01 ansible]#cd /opt/
[root@ansible01 opt]#ls
rh
[root@ansible01 opt]#vim test.sh

#!/bin/bash
echo "hello ansible from script" > /opt/script.txt

[root@ansible01 opt]#ls

[root@ansible01 opt]#chmod +x test.sh

5.12.2 给脚本添加执行权限 

5.12.3 远程批量运行本地脚本

[root@ansible01 opt]#ansible tomcat -m script -a 'test.sh'

验证:

5.12.4  远程查看脚本运行后的文档

[root@ansible01 opt]#ansible tomcat -a ' cat /opt/script.txt'

5.13 setup 模块

facts 组件是用来收集被管理节点信息的,使用 setup 模块可以获取这些信息
ansible-doc -s setup

5.13.1 获取mysql组主机的facts信息

[root@ansible01 opt]#ansible tomcat -m setup

5.13.2 使用filter可以筛选指定的facts信息

[root@ansible01 opt]#ansible nginx -m setup -a 'filter=ipv4'

[root@ansible01 opt]#ansible nginx -m setup -a 'filter=*ipv4'

正在加载...

总结:

1、ansible模块

1.1 ansible命令格式

## ansible命令格式
ansible <组名> -m <模块> -a <参数列表>
ansible-doc -l 列出所有已安装的模块  按q退出
ansible-doc -s 模块名 指导模块使用方法

1.2 ansible操作模式

command                ## 在远程主机执行命令,不支持管道,重定向等shell的特性。
##常用的参数
chdir:  在远程主机上运行命令前提前进入目录
creates:判断指定文件是否存在,如果存在,不执行后面的操作
removes:判断指定文件是否存在,如果存在,执行后面的操作

shell                  ## 在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令(支持管道符号等功能)
cron                   ## 在远程主机定义任务计划。其中有两种状态(state):present表示添加(可以省略),absent表示移除。
user                   ## 用户管理的模块
group                  ## 用户组管理的模块
copy                   ## 用于复制指定主机文件到远程主机的
file                   ## 设置文件属性
hostname               ## 用于管理远程主机上的主机名
ping                   ## 检测远程主机的连通性
yum                    ## 在远程主机上安装与卸载软件包
systemd/service        ## 用于管理远程主机上的管理服务的运行状态
script                 ## 实现远程批量运行本地的 shell 脚本
setup                  ## facts 组件是用来收集被管理节点信息的,使用 setup 模块可以获取这些信息

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

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

相关文章

centos7.9升级4.19内核

centos默认的内核版本是3.10 通过命令 uname -a 输出系统的详细信息 在部署k8s集群时使用默认的3.10版本的内核&#xff0c;容易出各种奇奇怪怪的问题、可以理解为docker和k8s与该内核版本不兼容&#xff0c;所以在部署k8s集群时&#xff0c;务必要升级内核&#xff0c;这里…

【论文笔记 | 异步联邦】FedSA

FedSA&#xff1a;一种处理 non-IID 数据 的 过时感知 异步联邦算法 1. 论文信息 FedSA&#xff1a;A staleness-aware asynchronous Federated Learning algorithm with non-IID data&#xff0c;Future Generation Computer Systems&#xff0c;2021.7&#xff0c;ccfc 是…

即插即用篇 | YOLOv8引入局部自注意力 HaloAttention | 为参数高效的视觉主干网络扩展局部自注意力

本改进已集成到 YOLOv8-Magic 框架。 我们提出了Axial Transformers,这是一个基于自注意力的自回归模型,用于图像和其他组织为高维张量的数据。现有的自回归模型要么因高维数据的计算资源需求过大而受到限制,要么为了减少资源需求而在分布表达性或实现的便捷性上做出妥协。相…

05-10 周五 FastBuild 容器启动引起超时问题定位与解决

05-10 周五 FastBuild 容器启动超时问题 时间版本修改人描述2024年5月11日16:45:33V0.1宋全恒新建文档2024年5月11日22:37:21V1.0宋全恒完成解决方案的撰写&#xff0c;包括问题分析&#xff0c;docker命令 简介 关于FastBuild的优化&#xff0c;已经撰写了多个博客&#xff0…

C#知识|无边框的WinForm窗体,如何拖动位置?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 上一节时练习做了一个简单的登录窗体界面&#xff0c;为了美观设置成了无边框&#xff0c; 当运行起来&#xff0c;发现无边框的窗体无法用鼠标拖动位置&#xff0c; 本节记录通过添加代码实现无边框窗体实现移动&…

IDEA创建springboot项目时不能选择java 8或者java 11等等版本的问题,解决方案

文章目录 1. Project JDK 和 Java 的区别2. 没有 java 8 或 java 11 等版本2.1 方案一2.2 方案二2.3 方案三 1. Project JDK 和 Java 的区别 我们在利用 idea 创建 spring boot 项目时&#xff0c;会有以上两个选项&#xff0c;这两个选项有什么区别&#xff1f; 答&#xff…

二、jacoco代码覆盖率工具

jacoco代码覆盖率工具 一、jacoco介绍二、常见的java代码覆盖率工具三、为什么选择jacoco四、jacoco的特点五、Jacoco 支持的覆盖率指标六、那些暂未支持的覆盖率指标七、jacoco技术原理八、Jacoco 下载与配置九、jacoco主要文件十、jacoco使用流程 一、jacoco介绍 JaCoCo 是一…

【GESP】2023年12月图形化二级 -- 小杨报数

小杨报数 【题目描述】 小杨需要从 1 1 1到 N N N报数。在报数过程中&#xff0c;小杨希望跳过 M M M的倍数。例如&#xff0c;如果 N 5 N5 N5&#xff0c; M 2 M2 M2&#xff0c;那么小杨就需要依次报出 1 1 1&#xff0c; 3 3 3&#xff0c; 5 5 5。 默认小猫角色和白色背…

LED液晶显示屏(LCD/TFT)抗干扰太阳光模拟器

LED&液晶显示屏(LCD/TFT)抗干扰太阳光模拟器&#xff1a;解决驾驶员视线问题 在驾车过程中&#xff0c;太阳光的干扰是一个常见的问题。特别是在高速公路等需要高度集中注意力的情况下&#xff0c;太阳光的干扰会严重影响驾驶员的视线&#xff0c;增加驾驶风险。为了解决这…

eNSP中小型园区网络拓扑搭建(上)

→b站直通车&#xff0c;感谢大佬← →eNSP中小型园区网络拓扑搭建&#xff08;下&#xff09;← 不带配置命令的拓扑图已上传~ 项目背景&#xff1a; 某公司准备新建一张网络供企业办公使用。写字楼共3层&#xff0c;一层会客大厅、二层行政部及市场部、三层研发部。一层设…

容器监控与日志管理

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、Docker监控工具 二、容器日志工具docker logs 三、第三方日志工具 四、容器日志驱动 五、示例 5.1、查看容器中运行的进程的信息 5.2、查看…

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读

TEINet: Towards an Efficient Architecture for Video Recognition 论文阅读 Abstract1 Introduction2 Related Work3 Method3.1 Motion Enhanced Module3.2 Temporal Interaction Module3.3 TEINet 4 Experiments5 Conclusion阅读总结 文章信息; 原文链接&#xff1a;https:…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签&#xff0c;但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

工业机器人应用实践之玻璃涂胶(篇二)

工业机器人 接上篇文章&#xff0c;浅谈一下实践应用&#xff0c;具体以玻璃涂胶为例&#xff1a; 了解工业机器人在玻璃涂胶领域的应用认识工具坐标系的标定方法掌握计时指令的应用掌握人机交互指令的应用掌握等待类指令用法&#xff08;WaitDI、WaitUnitl 等&#xff09;认…

表面的相似,本质的不同

韩信与韩王信&#xff0c;两个韩信的结局都是被刘邦所杀&#xff0c;似乎结局类似。但是&#xff0c;略加分析&#xff0c;就会发现其中存在本质的区别。 韩信属于必杀。他的王位是要来的&#xff0c;有居功自傲的本意&#xff0c;功高震主而且毫不避讳。而且年轻&#xff0c;…

REFORMER: 更高效的TRANSFORMER模型

大型Transformer模型通常在许多任务上都能达到最先进的结果&#xff0c;但是训练这些模型的成本可能会非常高昂&#xff0c;特别是在处理长序列时。我们引入了两种技术来提高Transformer的效率。首先&#xff0c;我们用一种使用局部敏感哈希的点积注意力替换了原来的点积注意力…

Apache ECharts

Apache ECharts介绍&#xff1a; Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 官网地址&#xff1a;https://echarts.apache.org/zh/index.html Apache ECh…

Django简介

Django 1.安装Django pip install djangopython的包的分布 \python- python.exe- Scripts- pip.exe- django-admin.exe [工具&#xff0c;创建django项目]- Lib- 内置模块- site-packages [安装的包]- pymysql- flask- django [框架的源码]2.创建项目 Django项目会有…

Windows系统下通过nginx配置多项目

文章目录 前言大概思路实际操作记录&#xff1a;查看nginx 错误日志问下AI注意点&#xff1a; 当访问域名根路径时&#xff0c;重定向到/pc解决&#xff1a; 总结 前言 在windows电脑启动一个nginx 测试配置多前端项目&#xff0c;一个pc端&#xff08;vue3tsvite &#xff0c…

鸿蒙ArkUI:【编程范式:命令式->声明式】

命令式 简单讲就是需要开发用代码一步一步进行布局&#xff0c;这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …