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

培训第三十天(ansible模块的使用)

上午

ansible是⼀种由Python开发的⾃动化运维⼯具,集合了众多运维⼯ 具(puppet、cfengine、chef、func、fabric)的优点,实现了批量 系统配置、批量程序部署、批量运⾏命令等功能。

1、学习ansible的使用

ansible 主机ip|域名|组名|别名 -m ping|copy... ‘参数’

(1)下载ansible软件包
 [root@1 ~]# yum -y install ansible
(2)创建ansible组

ansible通过⼀个主机清单功能来实现服务器分组。

Ansible的默认主机清单配置⽂件为/etc/ansible/hosts.

 [root@1 ~]# vim /etc/ansible/hosts [group01]10.0.0.1210.0.0.1310.0.0.14[group02]10.0.0.1210.0.0.13

(3)执行ansible的ping命令

(测试网络连通性)

主机12和主机13都进行了免密,主机14未进行免密

 ssh-keygenssh-copy-id -i 10.0.0.12ssh-copy-id -i 10.0.0.13
 [root@1 ~]# ansible 10.0.0.12 -m ping10.0.0.12 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}[root@1 ~]# ansible group02 -m ping10.0.0.12 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}10.0.0.13 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
 # 由于group01中的10.0.0.14主机未做免密操作,所以会产生报错[root@1 ~]# ansible group01 -m pingThe authenticity of host '10.0.0.14 (10.0.0.14)' can't be established.ECDSA key fingerprint is SHA256:/p0PnfBbtW2E/MOWaBziXwCBEnuznb+x1DiNgh1+qJw.ECDSA key fingerprint is MD5:62:73:f0:9f:e3:b5:f1:d2:d4:73:b3:2e:1b:14:16:d0.Are you sure you want to continue connecting (yes/no)? yes10.0.0.14 | UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '10.0.0.14' (ECDSA) to the list of known hosts.\r\nPermission denied (publickey,gssapi-keyex,gssapi-with-mic,password).", "unreachable": true}
(4)为主机设置ansible别名(携带用户和密码)

没有做免密登录的服务器可以指定⽤户名与密码

 [root@1 ~]# vim /etc/ansible/hostsother ansible_ssh_host=10.0.0.14 ansible_ssh_port=22 ansible_ssh_user=root  ansible_ssh_pass=1[group01]10.0.0.1210.0.0.13other[root@1 ~]# ansible group01 -m ping10.0.0.13 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}10.0.0.12 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}other | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}[root@1 ~]# ansible other -m pingother | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"}, "changed": false, "ping": "pong"}
(5)查看ansible帮助信息

查看所有⽀持的模块

 [root@1 ~]# ansible-doc -l
 如果要查看ping模块的⽤法,使⽤下⾯命令(其它模块以此类推)# ansible-doc ping
(6)ansible hostname模块的使用

使用ansible(hostname模块)批量修改主机名

(注意: 它不能修改/etc/hosts⽂件)

基本格式为: ansible 操作的机器名或组名 -m 模块名 -a "参数 1=值1 参数2=值2"

 [root@1 ~]# ansible group02 -m hostname -a 'name=ab.li'
(7)练习

不论你用哪种环境(免密或者不免密,端口是否22),请最终将两台被管理机器加入到group1组即可

 vim /etc/ansible/hostsweb01 ansible_ssh_host=10.0.0.12 ansible_ssh_user=root ansible_ssh_pass=1 ansible_ssh_port=22 web02 ansible_ssh_host=10.0.0.13 ansible_ssh_user=root ansible_ssh_pass=1 ansible_ssh_port=2222[group1]web01web02

下午

1、ansible介绍

ansible是基于模块⼯作的,本身没有批量部署的能⼒。真正具有批量部署的是ansible所运⾏的模块,ansible只是提供⼀种框架。

2、ansible file模块的使用

file模块⽤于对⽂件相关的操作(创建, 删除, 软硬链接等)

(1)创建目录
 创建目录[root@1 ~]# ansible group02 -m file -a 'path=/tmp/abc/def state=directory'
(2)创建文件
 [root@1 ~]# ansible group1 -m file -a 'path=/test/111 state=touch'
(3)递归修改owner,group,mode
 [root@1 ~]# ansible group02 -m file -a 'path=/tmp/abc recurse=yes owner=bin group=daemon mode=1777'[root@2 ~]# ll /tmp/总用量 0drwxrwxrwt. 3 bin  daemon 17 8月  16 14:09 abc[root@2 ~]# ll /tmp/abc/总用量 0drwxrwxrwt. 2 bin daemon 6 8月  16 14:09 def
(4)删除⽬录

(连同⽬录⾥的所有⽂件)

 [root@1 ~]# ansible group02 -m file -a 'path=/tmp/abc state=absent'
(5)创建⽂件并指定owner,group,mode等
 [root@1 ~]# ansible group02 -m file -a 'path=/tmp/aaa state=touch owner=bin group=daemon mode=1777'
(6)创建软链接⽂件

(软链接指向硬链接,硬链接指向文件)

 [root@1 ~]# ansible group02 -m file -a 'src=/etc/fstab path=/tmp/xxx state=link' [root@2 ~]# ll /tmp/lrwxrwxrwx. 1 root root 10 8月  16 14:30 xxx -> /etc/fstab
(7)创建硬链接⽂件
 [root@1 ~]# ansible group02 -m file -a 'src=/etc/fstab path=/tmp/xxx2 state=hard'[root@2 ~]# ll /tmp/-rw-r--r--. 2 root root 502 7月  23 03:23 xxx2

3、ansible stat模块的使用

stat模块类似linux的stat命令,⽤于获取⽂件的状态信息。

获取/etc/fstab⽂件的状态信息
 [root@1 ~]# ansible group02 -m stat -a 'path=/etc/fstab'

4、ansible copy模块的使用

copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程的机器上)

(1)拷贝文件

拷⻉mysql文件到10.0.0.12主机上

 [root@1 ~]# ansible 10.0.0.12 -m copy -a 'src=/root/mysql57.tar.gz dest=/root/'[root@1 ~]# ansible group02 -m copy -a 'src=/etc/fstab dest=/tmp/a.txt backup=yes owner=bin group=daemon mode=1777'
(2)远程向文件中写入数据

使⽤content参数(默认会覆盖原内容)

 [root@1 ~]# ansible group01 -m copy -a 'content="wo" dest=~/tst'# 注意:ansible中-a后⾯的参数⾥也有引号时,记得要单引双引交叉使⽤,如果都为双引会出现问题
(3)force参数的使用,是否强制覆盖执行命令

如果⽬标⽂件已经存在,则会强制覆盖(force=yes)

如果⽬标⽂件已经存在,则不覆盖(force=no)

 [root@1 ~]# touch tst[root@1 ~]# ansible group02 -m copy -a 'src=./tst dest=/root/ force=no'[root@1 ~]# dd if=/dev/zero of=tst1 bs=100M count=1[root@1 ~]# ansible group01 -m copy -a 'src=./tst1 dest=/root/ force=yes'[root@1 ~]# ansible group01 -m copy -a 'content="wo" dest=~/tst force=no'# 不执行写入操作,操作无意义
(4)backup参数控制是否备份⽂件
 [root@1 ~]# ansible group01 -m copy -a 'src=./tst dest=~ backup=yes owner=bin group=daemon mode=1777'# backup=yes表示如果拷⻉的⽂件内容与原内容不⼀样,则会备份⼀份(将原来的文件修改文件名变成备份文件)
(5)拷贝目录

copy模块拷⻉时要注意拷⻉⽬录后⾯是否带"/"符号

后⾯不带/符号,则表示把整个⽬录拷⻉过去

后⾯带/符号,则表示把⽬录⾥的所有⽂件拷⻉过去

 [root@1 ~]# ansible group01 -m copy -a 'src=/etc/yum.repos.d dest=/etc/yum.repos.d/ backup=yes'[root@2 ~]# ls /etc/yum.repos.d/CentOS-Base.repo  epel.repo  epel-testing.repo  hh.repo  repo.tar.gz  yum.repos.d

5、ansible template模块的使用

与copy模块功能⼏乎⼀样

template模块⾸先使⽤变量渲染jinja2模板⽂件成普通⽂件,然后再复制过去.⽽copy模块不⽀持.(jinja2是⼀个基于python的模板引擎)

ansible.builtin.template module – Template a file out to a target host — Ansible Community Documentation

 ansible -m template group01 -a "src=/etc/hosts dest=/tmp/hosts"

template模块不能拷⻉⽬录

 ansible -m template group01 -a "src=/etc/yum.repos.d/ dest=/etc/yum.repos.d/"

6、ansible fatch模块的使用

fetch模块与copy模块类似,但作⽤相反。⽤于把远程机器的⽂件拷⻉到本地(收文件)。

注意: fetch模块不能从远程拷⻉⽬录到本地

 [root@1 ~]# ansible group01 -m fetch -a 'src=/etc/sysconfig/network-scripts/ifcfg-ens33 dest=/tmp'# 因为group01⾥有3台机器,为了避免同名⽂件⽂件冲突,它使⽤了不同的⽬录)[root@1 ~]# tree /tmp//tmp/├── 10.0.0.12│   └── etc│       └── sysconfig│           └── network-scripts│               └── ifcfg-ens33├── 10.0.0.13│   └── etc│       └── sysconfig│           └── network-scripts│               └── ifcfg-ens33├── other│   └── etc│       └── sysconfig│           └── network-scripts│               └── ifcfg-ens33​

7、ansible user模块的使用

user模块⽤于管理⽤户账号和⽤户属性。

(1)创建普通用户
 [root@1 ~]# ansible group02 -m user -a 'name=aaa state=present'
(2)创建系统用户,并设置shell环境为/sbin/nologin
 [root@1 ~]# ansible group01 -m user -a 'name=mysql state=present system=yes shell="/sbin/nologin"'
(3)创建mysql账户,并指定uid和密码
 # 创建mysql家目录[root@1 ~]# ansible group01 -m file -a 'path=/usr/local/mysql state=directory'# 创建mysql-files目录并修改文件的权限和所属主与组[root@1 ~]# ansible group01 -m file -a 'path=/usr/local/mysql/mysql-files state=directory owner=mysql group=mysql mode=750'
 [root@1 ~]# ansible group01 -m user -a 'name=abc state=present uid=1999 password=abc'

生成加密密码

 [root@1 ~]# echo 123456 | openssl passwd -1 -stdin$1$YxSnSopH$0t2l5RUA4m9JKlmjVZbta.
(4)创建普通用户,并产⽣空密码密钥对
 [root@1 ~]# ansible group01 -m user -a 'name=hadoop generate_ssh_key=yes'
(5)删除用户,默认不删除家目录
 [root@1 ~]# ansible group01 -m user -a 'name=hadoop state=absent'[root@2 ~]# ll /home/总用量 0drwx------. 2 aaa   aaa   62 8月  16 16:03 aaadrwx------. 2 abc   abc   62 8月  16 16:14 abcdrwx------. 3  2000  2000 74 8月  16 16:20 hadoopdrwx------. 2 mysql mysql 62 8月  16 16:06 mysql
(7)删除用户的同时删除家目录

使⽤remove=yes参数

 [root@1 ~]# ansible group01 -m user -a 'name=aaa state=absent remove=yes'

8、ansible group模块的使用

group模块⽤于管理⽤户组和⽤户组属性。

(1)创建组
 ansible group01 -m group -a 'name=groupa gid=3000 state=present'
(2)删除组

如果有⽤户的gid为此组,则删除不了

 ansible group01 -m group -a 'name=groupa state=absent'

9、ansible cron模块的使用

cron模块⽤于管理周期性时间任务

创建⼀个cron任务,不指定user的话,默认就是root(因为这⾥是⽤root用户操作的)。

如果minute,hour,day,month,week不指定的话,默认都为*

(1)添加计划任务
 [root@1 ~]# ansible group01 -m cron -a 'name="abc" user=root job="/usr/sbin/ntpdate cn.ntp.org.cn" hour=2'
(2)删除cron任务
 [root@1 ~]# ansible group01 -m cron -a 'name="abc" state=absent'

10、ansible yum_repository模块的使用

yum_repository模块⽤于配置yum仓库。

(1)增加⼀个/etc/yum.repos.d/local.repo配置⽂件

注意:此模块只帮助配置yum仓库,但如果仓库⾥没有软件包,安装⼀ 样会失败。

所以可以⼿动去挂载光驱到/mnt⽬录

mount /dev/cdrom /mnt

 ansible group01 -m yum_repository -a "name=local description=localyum baseurl=file:///mnt/ enabled=yes gpgcheck=no"
(2)删除/etc/yum.repos.d/local.repo配置⽂件
 ansible group01 -m yum_repository -a "name=local state=absent"

11、ansible yum模块的使用

yum模块⽤于使⽤yum命令来实现软件包的安装与卸载。

(1)安装软件
 [root@1 ~]# ansible group01 -m yum -a 'name=ntpdate state=present'

state=latest表示安装最新版本

 ansible group01 -m yum -a 'name=httpd,httpddevel state=latest'
(2)卸载软件
 ansible group1 -m yum -a 'name=httpd,httpddevel state=absent'

12、ansible service模块的使用

service模块⽤于控制服务的启动,关闭,开机⾃启动等。

(1)启动服务
 # 启动vsftpd服务,并设为开机⾃动启动ansible group01 -m service -a 'name=vsftpd state=started enabled=on'
(2)关闭服务
 # 关闭filewalld服务,并设为开机不⾃动启动[root@1 ~]# ansible group01 -m service -a 'name=firewalld state=stopped enabled=false'

13、ansible script模块的使用

script模块⽤于在远程机器上执⾏本地脚本。

(此脚本不⽤给执⾏权限)

 [root@1 ~]# vim /tmp/1.sh[root@1 ~]# ansible group01 -m script -a '/tmp/1.sh'

练习:使⽤shell脚本实现在group01的被管理机⾥的mariadb⾥创建⼀ 个abc库

 [root@1 ~]# vim /tmp/2.sh#!/bin/bashyum install mariadb-server -y  &> /dev/nullsystemctl start mariadbsystemctl enable mariadbmysql << EOFcreate database abc;quitEOF[root@1 ~]# ansible group01 -m script -a '/tmp/2.sh'

14、ansible command模块与shell模块的使用

两个模块都是⽤于执⾏linux命令的,这对于命令熟悉的⼯程师来说,⽤起来⾮常high。

shell模块与command模块差不多(command模块不能执⾏⼀些类似 $HOME,>,<,|等符号,但shell可以)

(1)使用command模块创建用户
 [root@1 ~]# ansible group01 -m command -a 'useradd user1'[root@1 ~]# ansible group01 -m command -a 'id user1'10.0.0.13 | CHANGED | rc=0 >>uid=2000(user1) gid=2000(user1) 组=2000(user1)10.0.0.12 | CHANGED | rc=0 >>uid=2000(user1) gid=2000(user1) 组=2000(user1)other | CHANGED | rc=0 >>uid=2000(user1) gid=2000(user1) 组=2000(user1)
(2)使用shell模块使用管道符进行统计查询信息
 [root@1 ~]# ansible group01 -m shell -a 'cat /etc/passwd | wc -l'10.0.0.13 | CHANGED | rc=0 >>2210.0.0.12 | CHANGED | rc=0 >>22other | CHANGED | rc=0 >>22
(3)使用shell模块使用$HOME变量
 [root@1 ~]# ansible -m shell  group01 -a "cd $HOME;pwd"10.0.0.13 | CHANGED | rc=0 >>/rootother | CHANGED | rc=0 >>/root10.0.0.12 | CHANGED | rc=0 >>/root
(4)使用command模块进行关机
 [root@1 ~]# ansible group01 -m command -a 'shutdown -h 0'10.0.0.12 | FAILED | rc=-1 >>Failed to connect to the host via ssh: ssh: connect to host 10.0.0.12 port 22: Connection refusedother | FAILED | rc=-1 >>Failed to connect to the host via ssh: ssh_exchange_identification: read: Connection reset by peer10.0.0.13 | CHANGED | rc=0 >>Shutdown scheduled for 五 2024-08-16 16:49:28 CST, use 'shutdown -c' to cancel.

注意: shell模块并不是百分之百任何命令都可以,⽐如vim或ll别名就不可以。

相关文章:

培训第三十天(ansible模块的使用)

上午 ansible是⼀种由Python开发的⾃动化运维⼯具&#xff0c;集合了众多运维⼯ 具&#xff08;puppet、cfengine、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量 系统配置、批量程序部署、批量运⾏命令等功能。 1、学习ansible的使用 ansible 主机ip|域名|组…...

关于Log4net的使用记录——无法生成日志文件输出

关于Log4net的使用记录 前言遇到的问题具体使用总结前言 最近在使用log4net进行日志记录,保存一些需要的数据,以便后期使用需要。在使用的时候出现没有生成日志文件,针对这些问题,发现解决的办法! 遇到的问题 报错,提示没有找到对应的文件。 log4net:ERROR Failed to f…...

golang Kratos 概念

"Kratos"指的是一个开源的微服务框架&#xff0c;它用于构建高性能和可扩展的云原生应用。Kratos框架提供了一套丰富的工具和库&#xff0c;旨在简化微服务的开发和维护。下面是Kratos框架的一些基本概念&#xff1a; 服务构建与注册&#xff1a; gRPC与HTTP服务&…...

入门 MySQL 数据库:基础指南

简介 MySQL 是一个非常流行的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;广泛用于 Web 应用、企业应用和数据仓库。本博客将引导你从零开始&#xff0c;学习 MySQL 数据库的基础知识。 什么是 MySQL&#xff1f; MySQL 是一个基于 SQL&#xff08;Str…...

【Hexo系列】【3】使用GitHub自带的自定义域名解析

上一期我们通过学习【Hexo系列】【2】使用Vercel加速Hexo博客访问使用Vercel进行GitHub同步与加速&#xff0c;有时候Vercel也不太稳定访问不了。本身GitHub也是支持自定义域名的&#xff0c;本次教程将讲解如何使用GitHub自带的自定义域名解析。 1. GitHub设置 1.1 登录GitH…...

智能监控,无忧仓储:EasyCVR视频汇聚+AI智能分享技术为药品仓库安全保驾护航

随着科技的飞速发展&#xff0c;药品仓库的安全管理正迎来前所未有的变革。药品作为直接关系到公众健康的重要物资&#xff0c;其安全存储和监管显得尤为重要。在这个背景下&#xff0c;视频汇聚平台EasyCVR视频智能管理系统的应用&#xff0c;为药品仓库的安全监管提供了强有力…...

本地创建PyPI镜像

背景: 在安装一些库时,经常需要反复下载包(有的体积比较大,所以会比较慢),所以考虑在本地创建一个pypi镜像,把常用的库缓存下来,这样安装就会很省事.比较从本地安装库和从服务器下载会快很多. 安装使用 安装:pip install devpi 初始化: devpi-init --serverdirF:\pypioutput…...

使用 Elasticsearch RestHighLevelClient 进行查询

Elasticsearch 提供了多种客户端库&#xff0c;以方便不同编程语言的用户进行操作。其中&#xff0c;Java 的 RestHighLevelClient 是 Elasticsearch 官方推荐的客户端之一&#xff0c;用于 Java 应用程序中。本文将介绍如何使用 Java 的 RestHighLevelClient 进行 Elasticsear…...

【jvm】符号引用

目录 1. 说明2. 特点3. 组成与格式4. 作用5. 过程 1. 说明 1.在Java虚拟机中&#xff0c;符号引用&#xff08;Symbolic Reference&#xff09;是一种重要的引用机制。2.它主要用于在编译阶段和类加载阶段之间建立对类、方法、字段等元素的引用关系。3.符号引用是指用一个符号…...

征服云端:Java微服务与Docker容器化之旅

引言 随着云计算技术的迅猛发展&#xff0c;越来越多的企业开始拥抱云原生技术。在这个过程中&#xff0c;微服务架构以其独特的魅力成为了众多开发者的首选方案。而Docker作为容器化领域的佼佼者&#xff0c;在微服务部署与管理方面扮演着不可或缺的角色。本文将带你深入了解…...

python 如何实现执行selenium自动化测试用例自动录屏?

做自动化测试已经好多年了&#xff0c;随着项目技术的正增长提升&#xff0c;我们也不断完善并提高自己的技术能力&#xff0c; 下面给大家分享一个 selenium 自动化执行测试用例的录屏功能。希望对大家有帮助&#xff01; 首先&#xff0c;我们为什么要执行自动化录屏功能呢…...

03 网络编程 TCP传输控制协议

目录 1、TCP基本特征 2、TCP通信流程基本原理 &#xff08;1&#xff09;基本原理 &#xff08;2&#xff09;TCP通信代码实现 &#xff08;3&#xff09;核心API解析 1&#xff09;地址绑定--bind 2)设置监听-listen 3)等待连接请求-accept-产生一个已连接套接字 4&a…...

1. 数据结构——顺序表的主要操作

1. 内容 顺序表的初始化、插入、删除、按值查找、输出以及其时间复杂度的计算。 2.代码 #include<stdio.h> #include<stdlib.h> //函数结果状态代码 #define OK 1 #define OVERFLOW -2 #define ERROR 0 #define MAXSIZE 100typedef int ElemType; //顺序表每个…...

[openSSL]TLS 1.3握手分析

文章目录 前言一、ECDHE密钥交换二、TLS单向身份认证三、TLS双向身份认证 前言 关于TLS握手网上资料很多&#xff0c;但是有一些写的很不清楚&#xff0c;导致学习时对概念和流程出现混淆&#xff0c;以下是我觉得写得比较清晰和准确的供学习参考。 浅析 TLS&#xff08;ECDHE…...

无人机之螺旋桨的安装与维护

一、安装&#xff1a;正确安装桨叶至关重要。请确保顺时针旋转的桨叶安装在对应的电机上&#xff0c;并使逆时针旋转的桨叶安装在相应的电机上。否则&#xff0c;无人机可能无法正常飞行或失去控制。 二、维护&#xff1a;为了确保无人机的安全及长久使用&#xff0c;请定期检…...

手机设备IP地址切换:方法、应用与注意事项

在当今数字化时代&#xff0c;手机已成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;手机都扮演着重要角色。然而&#xff0c;随着网络环境的日益复杂&#xff0c;有时我们需要切换手机设备的IP地址以满足特定的需求&#xff0c;如保护隐私、绕过地…...

华为HCIP证书好考吗?详解HCIP证书考试难易程度及备考策略!

华为认证体系主要分为三个层次&#xff1a;HCIA(Huawei Certified ICT Associate)&#xff0c;HCIP(Huawei Certified ICT Professional)和HCIE(Huawei Certified Internetwork Expert)。作为中级认证&#xff0c;HCIP证书主要面向具备一定技术基础和项目实践能力的专业人士。在…...

《SPSS零基础入门教程》学习笔记——05.模型入门

文章目录 5.1 回归模型5.2 分类模型5.3 降维和刻度模型5.4 生存分析和时间序列模型 5.1 回归模型 线性回归&#xff08;分析 -> 回归 -> 线性&#xff09;曲线估计&#xff08;分析 -> 回归 -> 曲线估计&#xff09; 二元Logistic回归&#xff08;分析 -> 回归…...

如何用不到一分钟的时间将Excel电子表格转换为应用程序

我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时&#xff0c;Excel和Google Sheets是首选。这些文档非常容易创建&#xff0c;它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外&#xff0c;事情可能会变得一团糟。 对于…...

WordPress 中 cURL 请求出现 504 网关超时错误的解决方法

错误原因 504网关超时错误通常发生在服务器作为网关或代理&#xff0c;不能在规定的时间内得到响应时。在WordPress中&#xff0c;这可能是因为目标服务器响应过慢&#xff0c;或请求的队列过长导致的。 解决方案 首先&#xff0c;您应该检查您的cURL请求是否设置了一个合理的…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...