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

Ansible---自动化运维工具

一、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
列出所有的内置命令: ?或helproot@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: websrvsremote_user: rootgather_facts: notasks:- name: hello worldcommand: /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.htmlhttps://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 模块可以获取这些信息

相关文章:

Ansible---自动化运维工具

一、Ansible概述 1.1 Ansible简介 Ansible是一款自动化运维工具&#xff0c;通过ssh对目标主机进行配置、应用部署、任务执行、编排调度等操作。它简化了复杂的环境管理和自动化任务&#xff0c;提高了工作效率和一致性&#xff0c;同时&#xff0c;Ansible的剧本(playbooks)…...

5.Git

Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html文件等&#xff09;。通过Git仓库来存储和管理这些文件&#xff0c;Git仓库分为两种 本地仓库&#xff1a;开发人员自己电脑上的Git仓库远程仓库&#xff1a;远程…...

探索中位数快速排序算法:高效寻找数据集的中间值

在计算机科学领域&#xff0c;寻找数据集的中位数是一个常见而重要的问题。而快速排序算法作为一种高效的排序算法&#xff0c;可以被巧妙地利用来解决中位数查找的问题。本文将深入探讨中位数快速排序算法的原理、实现方法以及应用场景&#xff0c;带你领略这一寻找中间值的高…...

密码学《图解密码技术》 记录学习 第十五章

目录 十五章 15.1本章学习的内容 15.2 密码技术小结 15.2.1 密码学家的工具箱 15.2.2 密码与认证 15.2.3 密码技术的框架化 15.2.4 密码技术与压缩技术 15.3 虚拟货币——比特币 15.3.1 什么是比特币 15.3.2 P2P 网络 15.3.3地址 15.3.4 钱包 15.3.5 区块链 15.3.…...

如何在 Ubuntu 16.04 上为 Nginx 创建自签名 SSL 证书

简介 TLS&#xff0c;即传输层安全协议&#xff0c;及其前身SSL&#xff0c;即安全套接字层&#xff0c;是用于将普通流量包装在受保护的加密包装中的网络协议。 使用这项技术&#xff0c;服务器可以在服务器和客户端之间安全地发送流量&#xff0c;而不会被外部方拦截。证书…...

5.协议的编解码

本章内容其实没有多大难度&#xff0c;主要考察大家的细心程度.计算数据长度然后截取相应字节数组并按照协议进行解码&#xff0c;编码则反之。 1.基础消息的编解码 Override public BasicMessage decode(byte[] bytes) {int dataLength ByteUtil.bytesToInt(ByteUtil.extra…...

数据结构基础| 线性表

线性表 定义 没有元素则为空表 例子: 稀疏多项式的运算 图书信息管理系统 特点 线性结构 同类型 线性表的类型定义 1.基本操作: InitList(&L) 操作结果:构造空的线性表L DestroyList(&L) 初始化条件:线性表L存在 操作结果:销毁线性表L(线性表L不存在) Cle…...

嵌入式学习

笔记 作业 有如下结构体 struct Student{ char name[16]; int age; double math_score; double chinese_score; double english_score; double physics_score; double chemistry…...

sass-loader和node-sass与node版本的依赖问题

sass-loader和node-sass与node版本的依赖问题 没有人会陪你走到最后&#xff0c;碰到了便是有缘&#xff0c;即使到了要下车的时候&#xff0c;也要心存感激地告别&#xff0c;在心里留下空白的一隅之地&#xff0c;多年后想起时依然心存甘味。——林清玄 报错截图 报错信息 np…...

基于BP神经网络的QPSK解调算法matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................................................ for ij 1:leng…...

Linux服务器常用巡检命令

在Linux服务器上进行常规巡检是确保服务器稳定性和安全性的重要措施之一。以下是一些常用的巡检命令和技巧&#xff1a; 1. 查看系统信息 1.1 系统信息显示 命令&#xff1a;uname -a ​​​​ [rootlinux100 ~]# uname -a Linux linux100 4.15.0-70-generic #79-Ubuntu SMP…...

VSCode 配置 CMake

VSCode 配置 C/C 环境的详细过程可参考&#xff1a;VSCode 配置 C/C 环境 1 配置C/C编译环境 如果是 Windows 环境&#xff0c;需要安装 MingW。 方案一 可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 windows she…...

​《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制德国每日风能和太阳能产量3D线图

在MATLAB中&#xff0c;要绘制3D线图&#xff0c;可以使用 plot3 函数。 在《MATLAB科研绘图与学术图表绘制从入门到精通》书中通过绘制德国每日风能和太阳能产量3D线图解释了如何在MATLAB中绘制3D线图。 购书地址&#xff1a;https://item.jd.com/14102657.html...

【信息系统项目管理师知识点速记】质量管理:控制质量

控制质量是为了评估绩效,确保项目输出完整、正确且满足客户期望,而监督和记录质量管理活动执行结果的过程。控制质量过程需要在整个项目期间开展,其目的是测量产品或服务的完整性、合规性和适用性,以确保项目达到主要干系人的质量要求。 12.5.1 输入 项目管理计划 质量管理…...

【云原生】Pod 的生命周期(一)

【云原生】Pod 的生命周期&#xff08;一&#xff09;【云原生】Pod 的生命周期&#xff08;二&#xff09; Pod 的生命周期&#xff08;一&#xff09; 1.Pod 生命期2.Pod 阶段3.容器状态3.1 Waiting &#xff08;等待&#xff09;3.2 Running&#xff08;运行中&#xff09;3…...

Golang | Leetcode Golang题解之第71题简化路径

题目&#xff1a; 题解&#xff1a; func simplifyPath(path string) string {stack : []string{}for _, name : range strings.Split(path, "/") {if name ".." {if len(stack) > 0 {stack stack[:len(stack)-1]}} else if name ! "" &am…...

Unreal游戏GPU性能优化检测模式全新上线

UWA已经在去年推出了针对于Unity项目的GPU性能优化工具&#xff0c;通过对GPU渲染性能、带宽性能以及各种下探指标&#xff0c;帮助Unity项目研发团队定位由GPU导致的发热耗电问题。这个需求在Unreal团队中也极为强烈&#xff0c;因此UWA将该功能移植到针对Unreal项目的GOT Onl…...

设计网页用什么软件

在设计网页时&#xff0c;可以使用多种软件来完成不同的任务。以下是一些常用的网页设计软件&#xff0c;以及它们的特点和用途。 1. Adobe Photoshop&#xff1a; Adobe Photoshop 是一款功能强大的图像编辑软件。在网页设计中&#xff0c;它常用于创建和编辑网页所需的图像、…...

⑪ - 测试工程师通识指南

📖 该文隶属 程序员:职场关键角色通识宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅...

RabbitMQ知识点总结和复习

之前项目中用到RabbitMQ的场景主要是订单信息的传递&#xff0c;还有就是利用RabbitMQ的死信队列属性设置&#xff0c;实现延迟队列效果&#xff0c;实现超时支付取消功能&#xff0c;以及在两个不同项目中传递数据等场景。 最近几年的工作中都是一直用的RabbitMQ&#xff0c;…...

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化&#xff1a;不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来&#xff0c;实体对齐的研究一直基于知识图谱是静态的假设&#xff…...

使用nvm切换nodejs版本

查看可以安装的版本&#xff1a; 使用nvm list显示已安装的nodejs版本&#xff1a; 选择一个版本下载&#xff1a; 切换对应的版本&#xff1a;...

机器学习_KNN算法

机器学习_KNN算法 K-近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;算法是一种基本的机器学习分类和回归算法 其核心思想是&#xff1a;如果一个样本在特征空间中的k个最相似&#xff08;即特征空间中最邻近&#xff09;的样本中的大多数属于某一个类别…...

学QT的第一天~

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //窗口相关设置// this->resize(427,330); this->setFixedSize(427,330); //设置图标 this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg&q…...

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果&#xff0c;包含如下特点&#xff1a; 左右轮播 鼠标悬浮切换&#xff0c;无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件&#xff0c;支持索引和自定义文本 界面美观&#xff0c;圆…...

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站&#xff1a;初雪云-提供一站式App上传发布解决方案...

39-1 Web应用防火墙 - WAF应用程序层绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、双重URL编码绕过 什么是URL编码 URL编码是一种将特殊字符转为%加上其ASCII值的方式,以确保在URL中传输时不会被误解或导致错误。例如,字母"s"的URL编码是"…...

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…...

linux下sd卡的备份与还原

在Ubuntu上制作SD卡备份镜像&#xff0c;你可以使用dd命令。以下是一个基本的步骤和示例代码&#xff1a; 插入SD卡到电脑。确定SD卡设备路径&#xff0c;使用lsblk或sudo fdisk -l命令。确定备份镜像文件的路径。使用dd命令制作备份。 示例代码&#xff1a; bash# 查看连接的…...

Spring Boot项目中集成Logback作为日志框架-笔记

在Spring Boot项目中集成Logback作为日志框架是一个标准做法&#xff0c;因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤&#xff1a; 1. 默认集成 Spring Boot会自动配置Logback&#xff0c;所以通常情况下&#xff0c;你不需要添加任何额外的依赖或…...

深圳专门做兼职的网站/山西网络营销seo

(三)解答题 1.设z(1xy) y ,求∂z∂x ∣ ∣ ∣ (1,1) 解:令u1xy,则zu y ∂z∂x dzdu ∂u∂x yu y−1 ⋅yy 2 (1xy) y−1 ∂z∂x ∣ ∣ ∣ (1,1) 1 2 (11⋅1) 1−1 1 解:\\ 令 u = 1 + xy, 则z = u^y \\ \dfrac{\partial z}{\partial x} = \dfrac{dz }{du} \dfrac{\parti…...

java做的网站怎么设置关闭和开启网站访问不了怎么办/国外网络推广

我在写插件时用到了 onresize 事件&#xff0c;在反复地测试后发现该事件在 Chrome 及 Opera&#xff08;内核基本与 Chrome 相同&#xff0c;以下统称 Chrome&#xff09;浏览器打开时就会执行&#xff0c;这种情况也许不能算作 bug 吧&#xff0c;估计他们的工程师认为浏览器…...

淘宝客网站需要备案/免费网站建站

Arrays.sort(&#xff09;方法 Java的Arrays类中有一个sort()方法&#xff0c;该方法是Arrays类的静态方法&#xff0c;在需要对数组进行排序时&#xff0c;非常的好用。 但是sort()的参数有好几种&#xff0c;基本上是大同小异&#xff0c;下面是以int型数组为例的Arrays.so…...

好看的网站设计公司/搜索引擎营销的方法包括

本文主要说明Java中继承与组合的概念&#xff0c;以及它们之间的联系与区别。首先文章会给出一小段代码示例&#xff0c;用于展示到底什么是继承。然后演示如何通过“组合”来改进这种继承的设计机制。最后总结这两者的应用场景&#xff0c;即到底应该选择继承还是组合。1、继承…...

烟台网站制作这/百度推广区域代理

编写自定义函数prime(int x),判断x是否为素数。利用此函数编写程序分别找出1~5000中满足下列条件的数x:(1)x是素数。(2)x的各位数字及x本身都是素数。(3)x是素数&#xff0c;从个位开始依次去掉一位数后的数仍然是素数。例如&#xff0c;233是素数&#xff0c;23和2仍然是素数&…...

网站开发实训课程的总结/查看今日头条

APMActions Per Minute 转载于:https://www.cnblogs.com/xiluhua/p/6113178.html...