ansible的安装和简单的块使用

目录

一、概述

二、安装

1、选择源

2、安装ansible

3、模块查看

三、实验

1、拓扑​编辑

2、设置组、ping模块

3、hostname模块

4、file模块

​编辑

5、stat模块

6、copy模块(本地拷贝到远程)

7、fetch模块与copy模块类似,但作用相反。用于把远程机器的文件拷贝到本地。

8、user模块

9、group模块

10、cron模块

四、yum_repository模块

五、yum模块

六、server模块

七、script模块

八、command与shell模块

九、playbook

YMAL格式



一、概述

Ansible是一种自动化工具,用于配置管理、应用程序部署和协调云部署。它是一个开源工具,使用Python编写,通过SSH协议与远程主机通信。

1. 相关介绍和同类平台:
   - 相关介绍:Ansible是一种基于代理的自动化工具,它使用简单、轻量级的语法。它的主要目标是使自动化过程简单易用,同时提供强大的功能来管理大规模的基础架构。
   - 同类平台:与Ansible类似的自动化工具包括Puppet、Chef和SaltStack等。这些工具都提供了类似的功能,但在语法、工作原理和部署模型上略有不同。

2. 为什么要用Ansible、它能做什么以及优点:
   - 简单易用:Ansible使用基于YAML的语法,易于理解和编写,无需编程知识。它还具有良好的文档和活跃的社区支持。
   - 无代理:Ansible使用SSH协议进行通信,无需在远程主机上安装任何代理程序,这使得部署和配置更加简单和安全。
   - 基于剧本:Ansible使用基于剧本的方式来描述并执行自动化任务,使得任务的组织和管理更加灵活和可扩展。
   - 高度可配置:Ansible支持各种平台和操作系统,并提供了丰富的模块和插件,可以管理各种类型的资源,包括服务器、网络设备、云平台等。
   - 扩展性:Ansible具有强大的可扩展性,可以根据特定需求编写自定义模块和插件,或与现有工具和系统集成。

3. 工作原理:
   - Ansible使用一个控制节点来管理多个远程主机。控制节点上的Ansible配置文件描述了需要执行的任务和相关主机的信息。
   - 当控制节点执行Ansible命令时,它会通过SSH连接到远程主机,并在远程主机上执行相应的任务。
   - Ansible使用基于模块的方式来管理和配置远程主机。它可以通过内置的模块执行各种操作,如文件管理、软件包安装、服务管理等。
   - Ansible还支持使用剧本(Playbooks)来定义和组织多个任务,以及使用变量和条件来实现更复杂的自动化流程。

总的来说,Ansible是一个功能强大、易于使用和无代理的自动化工具,可以帮助简化配置管理和应用程序部署的过程,提高工作效率和可维护性。

心组件:

•    Inventory:Ansible 管理的主机信息,包括 IP 地址、 SSH 端口、账号、密码 等;

    Modules:任务均有模块完成,也可以自定义模块,例如经常用的脚本;

•    Plugins使用插件增加Ansible 核心功能,自身提供了很多插件, 也可以自

定义插件。例如 connection 插件, 用于连接目标主机。 callback 插件可以将 果输出到其他地方。vars 插件将定义的比变量注入到Ansible 中运行。

•    Playbooks:“剧本”,模块化定义一系列任务,供外部统一调用。Ansible 核心功能。

 Ansible 可以在安装了 Python 2 (版本 2.6 或 2.7)或 Python 3 (版本 3.5 及更高版本) 的任何机器上运行(管理机器不支持 Windows)。

二、安装

在开始实验前我们先同步集群时间、进行ssh免密

##每台主机
ssh-keygen
ssh-copy-id 192.168.115.131
##在192.168.115.131
for i in 136 140 ;do scp /root/.ssh/authorized_keys 192.168.115.$i:/root/.ssh ;done
##同步集群时间
for i in 131 136 140 ;do ssh 192.168.115.$i yum -y install ntp;done
for i in 131 136 140 ;do ssh 192.168.115.$i systemctl restart ntpd;done

1、选择源

cd /etc/yum.repos.d
mkdir back
mv * bcak
yum clean all
yum makecache
yum update
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl-o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache frist
yum update

2、安装ansible

yum -y install epel-release.noarch
yum -y install ansible

3、模块查看

###模块列表
ansible-doc -l###模块用法查看
ansible-doc 模块名

三、实验

1、拓扑

2、设置组、ping模块

绿色成功、红色失败

方式1

vim /etc/ansible/hosts
###插入
[group]
192.168.115.131
192.168.115.136
192.168.115.140
###利用模块ping
ansible -m ping group

方式2

#如果主机数量太多就这样表示
[group]
192.168.115.[136:140]

方式3

##指定端口
[group]
192.168.115.136:22

方式4

###别名
[group]
192.168.115.136:22
hy ansible_ssh_host=192.168.115.140 ansible_ssh_port=22

方式5

##没有ssh免密的也可以
[group]
ansible_ssh_host=192.168.115.140 ansible_ssh_port=22 ansible_ssh_user=用户名 ansible_ssh_pass="密码"

方式6

###利用别名分组
[group]
192.168.115.136:22
hy ansible_ssh_host=192.168.115.136 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123.com"
nginx ansible_ssh_host=192.168.115.140 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass="123.com"
[nginx]
nginx
[hy]
hy

3、hostname模块

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

黄色表示成功

###修改192.168.115.136的主机名hy
###修改192.168.115.140的主机名nginx
ansible hy -m hostname -a 'name=hy'
ansible nginx -m hostname -a 'name=nginx'

4、file模块

1、创建目录

##创建一个目录
ansible hy -m file -a "path=/opt/hy.txt state=directory"

2、创建文件


ansible hy -m file -a "path=/opt/hy.txt/test.tst state=touch"

3、修改属主属组、权限

####修改属主为hy,属组hy 权限777
ansible hy -m file -a "path=/opt/hy.txt recurse=yes owner=hy group=hy mode=777"

4、删除目录(包括目录中的文件)

###删除/opt/hy.txtansible hy -m file -a "path=/opt/hy.txt state=absent"

5、创建软、硬连接

#软
ansible hy -m file -a "src=/etc/fstab path=/opt/fstab2 state=link"
#硬
ansible hy -m file -a "src=/etc/fstab path=/opt/fstab1 state=hard"

5、stat模块

###用来获取文件的信息状态
ansible hy -m file -a "path=/opt/hy.txt state=touch"
ansible hy -m stat -a "path=/opt/hy.txt"

6、copy模块(本地拷贝到远程)

在ansible上准备一个文件拷贝到2台agent

 echo 192.168.115.131 > 1.txt
ansible group -m copy -a "src=/root/1.txt dest=/opt"

使用content远程写入内容,并覆盖原内容

ansible group -m copy -a "content="hello\n" dest=/opt/1.txt"

使用force参数是否强制覆盖

##写入
echo 192.168.115.131 > 1.txt
ansible group -m copy -a "content="hello" dest=/opt/1.txt force=no"#如果目标文件存在,不覆盖
ansible group -m copy -a "content="hello" dest=/opt/1.txt force=yes"#如果目标文件存在,覆盖

使用backup模块备份,把本机文件备份到远端

###把本机的文件备份到远端
ansible group -m copy -a "src=/root/1.txt dest=/opt/2.txt backup=yes owner=root group=root mode=644"

拷贝时/与没有/的区别

ansible hy -m copy -a "src=/etc/yum.repos.d dest=/etc/yum.repos.d"

ansible nginx -m copy -a "src=/etc/yum.repos.d/ dest=/etc/yum.repos.d"

7、fetch模块与copy模块类似,但作用相反。用于把远程机器的文件拷贝到本地。

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

##两台agent上创建同名、路径文件
echo 192.168.115.136 hy > test.txt
echo 192.168.115.140 nginx > test.txt
###ansible上操作
group -m fetch -a "src=/etc/yum.repos.d/test.txt dest=/etc/yum.repos.d"

8、user模块

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

##创建aaa用户,默认为普通用户,创建家目录
ansible hy -m user -a "name=aaa state=present"

###创建系统用户
ansible hy -m user -a'name=bbb state=present system=yes shell="/sbin/nologin"'

##创建ccc用户, 使用uid参数指定uid, 使用password参数传密码
echo 123.com |openssl passwd -stdin
ansible hy -m user -a 'name=ccc state=present uid=6666 password="密码"'

##创建一个普通用户叫ddd,并产生空密码 密钥对
ansible hy -m user -a 'name=ddd state=present generate_ssh_key=yes'

##删除aaa用户,但家目录默认没有删除
ansible hy -m user -a 'name=aaa state=absent'

##删除aaa用户、家目录
ansible hy -m user -a 'name=aaa state=absent remove=yes'

9、group模块

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

###创建组
ansible hy -m group -a 'name=web gid=2000 state=present'

##删除组(如果有用户的gid为此组,则删除不了)
ansible hy -m group -a 'name=web state=absent'

10、cron模块

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

##创建一个cron任务,不指定user的话,默认就是root(因为我这里是用root操作的)。
如果minute,hour,day,month,week不指定的话,默认都为*
ansible hy -m cron -a 'name="test1" user=root job="touch /etc/6666" minute=26'

删除cron任务
ansible hy -m cron -a 'name="test1" state=sbsent'

四、yum_repository模块

yum_repository模块用于配置yum仓库。

### yum_repository模块yum_repository模块用于配置yum仓库。
注意:此模块只帮助配置yum仓库,但如果仓库里没有软件包,安装一样会失败。所以可以手动去挂载光驱到/mnt目录ansible hy -m yum_repository -a "name=local description=localyum baseurl=file:///mnt/ enabled=yes gpgcheck=no"##删除/etc/yum.repos.d/local.repo配置文件
ansible hy -m yum_repository -a "name=local state=absent"

五、yum模块

yum模块用于使用yum命令来实现软件包的安装与卸载。 前提:group的机器上的yum配置都已经OK ,如果是使用本地源的就需要挂载

##安装http
ansible group -m yum -a 'name=httpd state=present'
######使用网络源
##在ansible上安安装网络源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
##copy到其他主机

使用yum安装httpd,httpd-devel软件,state=latest表示安装最新版本

ansible group1 -m yum -a 'name=httpd,httpd-devel state=latest'

使用yum卸载httpd,httpd-devel软件

ansible group1 -m yum -a 'name=httpd,httpd-devel state=absent'

六、server模块

### service模块(重点)service模块用于控制服务的启动,关闭,开机自启动等。
启动vsftpd服务,并设为开机自动启动
master# ansible group -m service -a 'name=vsftpd state=started enabled=on'关闭vsftpd服务,并设为开机不自动启动
master# ansible group -m service -a 'name=vsftpd state=stoped enabled=false'

我们安装一个mariadb服务,并设置为开机自启

ansible group -m yum -a 'name=mariadb,mariadb-server state=present'
ansible group -m service -a 'name=mariadb state=started enabled=yes'

七、script模块

script模块用于在远程机器上执行本地脚本。

在master上准备一个脚本
master# vim /tmp/1.sh
#!/bin/bash
mkdir /tmp/haha
touch /tmp/haha/{1..10}在group1的远程机器里都执行master上的/tmp/1.sh脚本(此脚本不用给执行权限)
master# ansible group1 -m script -a '/tmp/1.sh'

八、command与shell模块

两个模块都是用于执行linux命令的,这对于命令熟悉的工程师来说,用起来非常high。

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

 ansible -m command group1 -a "useradd user2"
ansible -m command group1 -a "id user2"
​
ansible -m command group1 -a "cat /etc/passwd |wc -l"       --报错
ansible -m shell group1 -a "cat /etc/passwd |wc -l"     --成功
​
ansible -m command group1 -a "cd $HOME;pwd"   --报错
ansible -m shell  group1 -a "cd $HOME;pwd"    --成功

注意: shell模块并不是百分之百任何命令都可以,比如vim或ll别名就不可以。不建议大家去记忆哪些命令不可以,大家只要养成任何在生产环境里的命令都要先在测试环境里测试一下的习惯就好。

九、playbook

playbook(剧本): 是ansible用于配置,部署,和管理被控节点的剧本。用于ansible操作的编排。

使用的格式为yaml格式(saltstack,elk,docker,docker-compose,kubernetes等也都会用到yaml格式)

YMAL格式

  • 以.yaml或.yml结尾

  • 文件的第一行以 "---"开始,表明YMAL文件的开始(可选的)

  • 以#号开头为注释

  • 列表中的所有成员都开始于相同的缩进级别, 并且使用一个 "- " 作为开头(一个横杠和一个空格)

  • 一个字典是由一个简单的 键: 值 的形式组成(这个冒号后面必须是一个空格)

  • ==注意: 写这种文件不要使用tab键,都使用空格==

## playbook实例先直接来看一个实例**第1步: 创建一个存放playbook的目录(路径自定义)**```powershell
master# mkdir /etc/ansible/playbook
```**第2步: 准备httpd配置文件,并修改成你想要的配置**```powershell
master# yum install httpd -y按需要修改你想要的配置(为了测试可以随意改动标记一下)
master# vim /etc/httpd/conf/httpd.conf
```**第3步: 写一个playbook文件(后缀为.yml或.yaml)**```powershell
# vim /etc/ansible/playbook/example.yaml
---
- hosts: group1remote_user: roottasks:  - name: ensure apache is at the latest version	yum: name=httpd,httpd-devel state=latest- name: write the apache config file		copy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify:- restart apache- name: ensure apache is running (and enable it at boot)service: name=httpd state=started enabled=yeshandlers:	- name: restart apacheservice: name=httpd state=restarted
```第4步: 执行写好的palybook- 会显示出执行的过程,并且执行的每一步都有ok,changed,failed等标识
- 执行如果有错误(failed)会回滚,解决问题后,直接再执行这条命令即可,并会把failed改为changed(幂等性)```powershell
# ansible-playbook /etc/ansible/playbook/example.yaml
```## Playbook常见语法**hosts:** 用于指定要执行任务的主机,其可以是一个或多个由冒号分隔主机组.**remote_user:** 用于指定远程主机上的执行任务的用户.```powershell
- hosts: group1			remote_user: root	
```**tasks:** 任务列表, 按顺序执行任务. - 如果一个host执行task失败, 整个tasks都会回滚, 修正playbook 中的错误, 然后重新执行即可.```powershelltasks:- name: ensure apache is at the latest version	yum: name=httpd,httpd-devel state=latest- name: write the apache config file		copy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
```**handlers:**  类似task,但需要使用notify通知调用。- 不管有多少个通知者进行了notify,等到play中的所有task执行完成之后,handlers也只会被执行一次.
- handlers最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了.```powershellnotify:				  - restart apache- name: ensure apache is running (and enable it at boot)service: name=httpd state=started enabled=yeshandlers:- name: restart apacheservice: name=httpd state=restarted
```**练习:** 修改httpd的端口为8080,再执行playbook测试**variables:** 变量- 定义变量可以被多次方便调用```powershell
master# vim /etc/ansible/playbook/example2.yaml
---
- hosts: group1remote_user: rootvars:- user: test1tasks:- name: create useruser: name={{user}} state=present
~                                           
``````powershell
master# ansible-playbook /etc/ansible/playbook/example2.yaml
```### 案例: playbook编排vsftpd写一个playbook实现 1. 配置yum
2. 安装vsftpd包
3. 修改配置文件(要求拒绝匿名用户登录)
4. 启动服务并实现vsftpd服务开机自动启动```powershell
---
- hosts: group1                 remote_user: root                     tasks:                                - name: rm yum repository      file: path=/etc/yum.repos.d/ state=absent- name: 同步master上的yum源到group1copy: src=/etc/yum.repos.d dest=/etc/- name: ensure vsftpd is at the latest version        yum: name=vsftpd state=latest- name: write the apache config file          copy: src=/etc/vsftpd/vsftpd.conf dest=/etc/vsftpd/vsftpd.conf notify:                             - restart vsftpd- name: ensure vsftpd is running (and enable it at boot)service: name=vsftpd state=started enabled=yeshandlers:                     - name: restart vsftpd              service: name=vsftpd state=restarted
```## **playbook编排多个hosts任务**~~~powershell
---			# ---代表开始(可选项,不写也可以)
- hosts: 10.1.1.12remote_user: roottasks:- name: 创建/test1/目录file: path=/test1/ state=directory
# 这里不能用---分隔,会报语法错误(后面课程玩k8s编排也写YAML文件,是可以用---来分隔段落的)
- hosts: 10.1.1.13remote_user: roottasks:- name: 创建/test2/目录file: path=/test2/ state=directory
...			# ...代表结束(可选项,不写也可以)
~~~### 案例: 编排nfs搭建与客户端挂载1, 在master上准备nfs配置文件~~~powershell
# vim /etc/exports
/share  *(ro)
~~~2, 编写yaml编排文件~~~powershell
# vim /etc/ansible/playbook/nfs.yml
---
- hosts: 10.1.1.12remote_user: roottasks:- name: 安装nfs服务相关软件包yum: name=nfs-utils,rpcbind,setup  state=latest- name: 创建共享目录file: path=/share/ state=directory- name: 同步nfs配置文件copy: src=/etc/exports dest=/etc/exportsnotify: restart nfs- name: 启动rpcbind服务,并设置为开机自启动service: name=rpcbind state=started enabled=on- name: 启动nfs服务,并设置为开机自启动service: name=nfs state=started enabled=onhandlers:- name: restart nfsservice: name=nfs state=restarted- hosts: 10.1.1.13remote_user: roottasks:- name: 安装nfs客户端软件包yum: name=nfs-utils state=latest- name: 挂载nfs服务器的共享shell: mount 10.1.1.12:/share /mnt
~~~3, 执行playbook~~~powershell
# ansible-playbook /etc/ansible/playbook/nfs.yaml
~~~

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring AOP使用指南: 强大的面向切面编程技术

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Spring Boot 整合 Redis,使用 RedisTemplate 客户端

文章目录 一、SpringBoot 整合 Redis1.1 整合 Redis 步骤1.1.1 添加依赖1.1.2 yml 配置文件1.1.3 Config 配置文件1.1.4 使用示例 1.2 RedisTemplate 概述1.2.1 RedisTemplate 简介1.2.2 RedisTemplate 功能 二、RedisTemplate API2.1 RedisTemplate 公共 API2.2 String 类型 A…

基于jeecg-boot的flowable流程历史记录显示修改

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; https://gitee.com/nbacheng/nbcio-boot 前端代码&#xff1a;https://gitee.com/nbacheng/nbcio-vue.git 在线演示&#xff08;包括H5&#xff09; &#xff1a; http://122.227.135.243:9888 历…

文件上传漏洞

条件竞争 条件竞争型的漏洞在很多漏洞中都有涉及&#xff0c;在文件上传中造成这种漏洞的原因是代码中是先保存上传的文件在服务器上&#xff0c;然后验证再删除的&#xff0c;这就会造成攻击者可以利用文件被保存在服务器上与被删除的时间间隙来访问文件&#xff0c;然后重新生…

基于Java+SpringBoot+Vue校园求职招聘系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

OpenCV实现图像的混合

原理 这其实也是加法&#xff0c;但是不同的是两幅图像的权重不同&#xff0c;这就会给人一种混合或者透明的感觉。 图像混合的计算公式如下: g(x)(1-a)f0(x) af1(x) 通过修改α的值(0→1) &#xff0c;可以实现非常炫酷的混合。 现在我们把两幅图混合在一起。 第一幅图…

分布式多级缓存

例子&#xff08;测试环境&#xff09; 项目结构图 运行反向代理服务器也就是负责反向代理到三个nginx的nginx&#xff0c;该nignx也负责前端页面的跳转。 该nginx的conf为下: 突出位置就是该nginx需要反向代理的其他nginx的IP和端口。 Lua语法 linux安装Lua #安装lua环境 …

持安科技入选数说安全《2023中国网络安全市场年度报告》

近日&#xff0c;网络安全产业研究平台数说安全发布《2023中国网络安全市场年度报告》&#xff0c;报告共分为158页核心报告&#xff0c;及番外篇《网安融资新星及融资过亿企业介绍》&#xff0c;作为以甲方身份创业的零信任办公安全明星企业&#xff0c;持安科技以网安融资新星…

SQL数据库查询超时,查询数据库的哪些表被上锁的语句

1.异常提示 2.表语句 2.1 查询锁表的语句 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_typeOBJECT * 若是下面没有显示内容&#xff0c;说明当前没有锁住的表 2.2若是有显示锁住的表&#…

STM32移植FAT文件系统

所谓“移植”&#xff0c;就是打通FAT源码和物理设备之间的软件接口。 FAT源码早就被公益组织给写好了&#xff0c;直接下载源码。但是FAT作为顶层应用程序&#xff0c;它需要面对的底层物理设备是不确定的&#xff0c;那么底层的物理设备驱动程序就需要程序员来自己写。物理设…

18 矩阵置0

矩阵置0 题解1 首行首列做标志记录&#xff08;原地改数组&#xff09;题解2 位计算 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 …

无涯教程-JavaScript - CUMPRINC函数

描述 CUMPRINC函数返回start_period和end_period之间的贷款累计本金。 语法 CUMPRINC (rate, nper, pv, start_period, end_period, type)争论 Argument描述Required/OptionalRateThe interest rate.RequiredNperThe total number of payment periods.RequiredPvThe presen…

Wireshark 用命令行分析数据包

1&#xff0c;那些情况需要使用命令行 Wireshark一次性提供了太多的信息。使用命令行工具可以限制打印出的信息&#xff0c;最后只显示相关数据&#xff0c;比如用单独一行来显示IP地址。命令行工具适用于过滤数据包捕获文件&#xff0c;并提供结果给另一个支持UNIX管道的工具…

手动开发-简单的Spring基于注解配置的程序--源码解析

文章目录 设计注解$设计容器 $#完整代码# 在前文中 《手动开发-简单的Spring基于XML配置的程序–源码解析》&#xff0c;我们是从XML配置文件中去读取bean对象信息&#xff0c;再在自己设计的容器中进行初始化&#xff0c;属性注入&#xff0c;最后通过getBean()方法进行返回。…

Kafka/Spark-01消费topic到写出到topic

1 Kafka的工具类 1.1 从kafka消费数据的方法 消费者代码 def getKafkaDStream(ssc : StreamingContext , topic: String , groupId:String ) {consumerConfigs.put(ConsumerConfig.GROUP_ID_CONFIG , groupId)val kafkaDStream: InputDStream[ConsumerRecord[String, Strin…

WebRTC中 setup:actpass、active、passive

1、先看一下整个DTLS的流程 setup:actpass、active、passive就发生在Offer sdp和Anser SDP中 Offer的SDP是setup:actpass,这个是服务方&#xff1a; v0\r o- 1478416022679383738 2 IN IP4 127.0.0.1\r s-\r t0 0\r agroup:BUNDLE 0 1\r aextmap-allow-mixed\r amsid-semanti…

在MySQL客户端使用Tab健进行命令补全

在MySQL客户端中&#xff0c;你可以使用Tab键进行命令补全&#xff0c;这将提高我们的效率&#xff0c;这与Linux命令行中的行为类似。例如&#xff0c;如果你输入SEL然后按Tab键&#xff0c;MySQL客户端会自动补全为SELECT。 然而&#xff0c;需要注意的是&#xff0c;这个功能…

Unity Asset Bundle Browser 工具

Unity Asset Bundle Browser 工具 您可以在 Unity 项目中使用 Asset Bundle Browser 工具能够查看和编辑资源包的配置。 有关更多信息&#xff0c;请参阅 Unity Asset Bundle Browser 文档。 注意&#xff1a;此工具是不受支持的实用程序。查看极大的资源包可能会导致性能下…

谁在为网络安全制造标尺?

“我们想帮助企业往后退一步&#xff0c;去全局的看一下自己的安全能力建设水平如何&#xff0c;以及在当下的阶段最应该做的安全建设是什么&#xff1f; ” 度量&#xff0c;对应的是更清晰的认知。而对企业安全而言&#xff0c;这种认知&#xff0c;也更在成为一把新的标尺…

《AI辞职信一键生成》告别凡俗套路,展现独特个性!

在这个科技日新月异的时代&#xff0c;我们的生活被各种应用软件深深地渗透。其中&#xff0c;讯飞星火AI大模型的应用无疑是一种创新和突破。最近&#xff0c;我有幸体验了一款名为《AI辞职信一键生成》的web应用&#xff0c;它以其独特的功能和出色的用户体验&#xff0c;让我…