运维自动化与Cobbler服务部署

news2024/9/21 4:39:46

运维自动化与Cobbler服务部署

  • 一.Cobbler简介
    • 1.1.简介
    • 1.2.Cobbler的下属服务
    • 1.3.工作流程
  • 二.Cobbler安装
    • 2.1.安装epel源
    • 2.2.安装Cobbler及其相关的服务和组件
  • 三.Cobbler配置
    • 3.1.Cobbler配置文件及各目录情况
    • 3.2.配置及启动cobblerd服务
  • 四.Cobbler使用
    • 4.1用法
    • 4.2配置linux发行版和关联相应的ks文件
      • 4.2.1拷贝事先准备好的ks文件
      • 4.2.2将linux发行版导入到cobbler在httpd服务的文件夹下
      • 4.2.3 导入后重启并同步
      • 4.2.4 将linux发行版系统镜像与其对应的ks文件建立关联
      • 4.2.5 建立关联后重启并同步
      • 4.2.6 查看详细信息
  • 五.测试安装
    • 5.1 新建一台虚拟机
    • 5.2 使用PXE网络引导启动
    • 5.3 选择相应版本安装
  • 六.优化
    • 6.1 菜单优化
    • 6.2 使用httpd服务和cobbler-web基于web界面来管理配置cobbler
      • 6.2.1 安装cobbler-web
      • 6.2.2 重启http服务
      • 6.2.3 访问web界面
  • 七.Trouble Shooting
    • :arrow_left:exit

一.Cobbler简介

1.1.简介

  • Cobbler是一款Linux生态的自动化运维工具,基于Python2开发,用于自动化批量部署安装操作系
    统;其提供基于CLI的管理方式和WEB配置界面,其中WEB配置界面是基于Python2和Django框架开
    发。另外,cobbler还提供了API,方便二次开发。当然,Cobbler属于C/S模型(客户端/服务器模型)

  • Cobbler主要用于快速网络安装linux操作系统,支持众多的Linux发行版如:Red Hat、
    Fedora、CentOS、Debian、Ubuntu和SuSE等。

  • 在cobbler之前,微软曾开发过另一项类似的基于C/S工作模式的技术PXE(Prebot eXecute
    Environment,预启动执行环境),其支持通过网络启动操作系统,亦可以让需要安装系统的带支持
    PEX技术网卡的裸机通过网络从http服务器下载映像来安装,在启动过程中,客户端需要从dhcp服务器
    得到IP地址、掩码、网关以及相关的配置文件路径,再用TFTP(trivial file transfer
    protocol)协议从服务器下载一个引导启动的软件包(类似linux光盘的isolinux文件夹下的文件)并加载
    到本机内存中执行,经过启动软件包中配置文件指定的ks应答文件指明服务器中的操作系统位置,进而
    找到安装源,并在ks文件的指导下完成操作系统的安装。

  • Cobbler实质是PXE的二次封装,将多种安装参数封装到一起,并提供统一的管理方法。

1.2.Cobbler的下属服务

  • 使用Cobbler安装系统需要一台专门提供各种服务的服务器,提供的服务包括(HTTP/FTP/NFS,
    TFTP,DHCP),也可以将这几个服务分别部署到不同服务器。事实上在实际应用中,总是将不同的服务分别
    部署到专门的服务器。

  • Cobbler是在HTTP、TFTP、DHCP等各种服务的基础上进行相关操作的,实际安装的大体过程类似于基
    于PXE的网络安装:客户端(裸机)开机使用网卡引导启动,其请求DHCP分配一个地址后从TFTP服务器获取
    启动文件,加载到客户端本地内存中运行,并显示出可安装的系统列表;在人为的选定安装的操作系统类
    型后,客服端会到HTTP服务器下载相应的系统安装文件并执行自动安装。

  • PXE网络安装示意
    在这里插入图片描述

1.3.工作流程

  • Cobbler大致工作流程如下
    在这里插入图片描述

二.Cobbler安装

2.1.安装epel源

  • Cobbler来源于epel源,在安装cobbler之前需要配置epel源,或者直接使用命令安装epel源:
    [root@mainserver ~]#wget -O /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

2.2.安装Cobbler及其相关的服务和组件

  • Cobbler下属的服务包括HTTPD,TFTP,DHCP等,如果有web界面要求,还需要安装相关的组件

[root@mainserver ~]#yum install -y httpd dhcp tftp-server cobbler cobbler-web pykickstart xinetd

httpd:配合cobbler-web使得cobbler可以通过web网页界面进行配置管理
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
cobbler-web.noarch : Web interface for Cobbler
pykickstart.noarch : 基于python的管理kickstart文件的库
xinetd.x86_64 : A secure replacement for inetd

三.Cobbler配置

3.1.Cobbler配置文件及各目录情况

  • 配置文件
/etc/cobbler/settings : cobbler 主配置文件 
/etc/cobbler/iso/: iso模板配置文件
/etc/cobbler/pxe: pxe模板文件
/etc/cobbler/power: 电源配置文件 
/etc/cobbler/user.conf: web服务授权配置文件 
/etc/cobbler/users.digest: web访问的用户名密码配置文件 
/etc/cobbler/dhcp.template : dhcp服务器的的配置模板
/etc/cobbler/dnsmasq.template : dns服务器的配置模板
/etc/cobbler/tftpd.template : tftp服务的配置模板
/etc/cobbler/modules.conf : cobbler模块的配置文件
  • 数据目录
/var/lib/cobbler/config/: 用于存放distros,system,profiles 等信息的配置文件
/var/lib/cobbler/triggers/: 用于存放用户定义的cobbler命令
/var/lib/cobbler/kickstarts/: 默认存放kickstart文件
/var/lib/cobbler/loaders/: 存放各种引导程序
  • 镜像目录
/var/www/cobbler/ks_mirror/: 导入的发行版系统的所有数据
/var/www/cobbler/images/ : 导入发行版kernel和initrd镜像用于远程网络启动
/var/www/cobbler/repo_mirror/: yum 仓库存储目录
  • 日志目录
/var/log/cobbler/installing: 客户端安装日志 
/var/log/cobbler/cobbler.log : cobbler日志

3.2.配置及启动cobblerd服务

  • 当httpd,tftp及dhcp服务都正常运行后,就可以启动cobblerd服务进行相关的配置了。
  • 启动cobblerd
    systemctl start cobbler
  • 检测cobbler的运行环境,并根据提示逐步配置cobbler
    cobbler check
1.更改/etc/xinetd.d/tftp配置文件
vim /etc/xinetd.d/tftp
disable  =  yes  -->  disable  =  no
systemctl restart xinetd
2.联网下载boot引导程序文件
cobbler get-loaders
3.没有网络情况下拷贝启动文件到TFTP服务文件夹
cp -a /usr/share/syslinux/{pxelinux.0,menu.c32}  /var/lib/tftpboot
4.更改/etc/cobbler/settings配置文件的server项为提供cobblerd服务的主机地址,也就是本机地址
sed -nri 's#server:172.0.0.1#server:192.168.31.17#' /etc/cobbler/settings
更改后的整行内容:server:192.168.131.17
5.更改/etc/cobbler/settings配置文件的next_server项,指明tftp服务器地址,使得客户端能够找
到TFTP服务器
sed -i 's/next_server: 127.0.0.1/next_server: 192.168.56.11/' /etc/cobbler/settings
更改后的整行内容:next_server:192.168.131.17
6.配置相应的选项来使用cobbler管理dhcp服务和tftp服务
manage_dhcp:1
manage_tftpd:1
7.pxe_just_once选项,该选项置1表示在pxe安装块结束时在cobbler系统中做相应的记录,这样会避免如果客户机的BIOS选项中PXE启动处于第一位导致的循环重启;如果第一个启动硬件不是PXE启动那就置0。
pxe_just_once:1  
  • 配置完成后重启
    systemctl restart cobblerd

四.Cobbler使用

4.1用法

  • '<>‘中的是必须跟的选项,后面’[]'中的是可选项
[root@old_centos7 ~]#cobbler
usage
=====
cobbler <distro|profile|system|repo|image|mgmtclass|package|file> ...
        [add|edit|copy|getks*|list|remove|rename|report] [options|--help]

cobbler <aclsetup|buildiso|import|list|replicate|report|reposync|sync|validateks|version|signature|get-loaders|hardlink> [options|--help]
  • 可以使用下面的方式得到使用帮助
    [root@old_centos7 ~]cobbler
    [root@old_centos7 ~]cobbler --help
[root@old_centos7 ~]#cobbler distro --help
usage
=====
cobbler distro add
cobbler distro copy
cobbler distro edit
cobbler distro find
cobbler distro list
cobbler distro remove
cobbler distro rename
cobbler distro report
[root@old_centos7 ~]#cobbler distro add --help
Usage: cobbler [options]

Options:
  -h, --help            show this help message and exit
  --name=NAME           Name (Ex: Fedora-11-i386)
  --ctime=CTIME
  --mtime=MTIME
  --uid=UID       Owners (Owners list for authz_ownership (space delimited))
......
  • 例如
    cobbler distro list 列出当前导入的linux发行版条目
    cobbler distro report 报告当前所有的linux发行版详细信息
    cobbler profile --name=centos7 --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg 将linux发行版系统镜像与其对应的ks文件建立关联

4.2配置linux发行版和关联相应的ks文件

4.2.1拷贝事先准备好的ks文件

[root@old_centos7 ~]#cp /var/www/html/ksdir/ks{6,7,8}.ks /var/lib/cobbler/kickstarts

4.2.2将linux发行版导入到cobbler在httpd服务的文件夹下

  • cobbler在httpd的服务文件夹位于/var/www/cobbler/ks_mirror
    cobbler import --name=centos6 --path=/var/www/html/centos/6/isos/x86_64/ --arch=x86_64
    cobbler import --name=centos7 --path=/var/www/html/centos/7/isos/x86_64/ --arch=x86_64
    cobbler import --name=centos8 --path=/var/www/html/centos/8/isos/x86_64/ --arch=x86_64

4.2.3 导入后重启并同步

systemctl restart cobblerd
cobbler sync

[root@old_centos7 /var/www/cobbler/ks_mirror]#ls
centos6-x86_64  centos-7.5-x86_64  centos7-x86_64  centos8-x86_64  config
# centos-7.5-x86_64 为cobbler默认创建的,里面无镜像
[root@old_centos7 /var/www/cobbler/ks_mirror]#ls -lh centos-7.5-x86_64/
total 0
[root@old_centos7 /var/www/cobbler/ks_mirror]#ls -lh centos6-x86_64/
total 276K
-r--r--r-- 1 root root   14 Jun 29  2018 CentOS_BuildTag
dr-xr-xr-x 3 root root   35 Jun 29  2018 EFI
-r--r--r-- 1 root root  212 Nov 27  2013 EULA
-r--r--r-- 1 root root  18K Nov 27  2013 GPL
dr-xr-xr-x 3 root root   95 Jun 29  2018 images
dr-xr-xr-x 2 root root  198 Jun 29  2018 isolinux
dr-xr-xr-x 2 root root 176K Jun 29  2018 Packages
-r--r--r-- 1 root root 1.4K Jun 29  2018 RELEASE-NOTES-en-US.html
dr-xr-xr-x 2 root root 4.0K Jun 29  2018 repodata
-r--r--r-- 1 root root 1.7K Nov 27  2013 RPM-GPG-KEY-CentOS-6
-r--r--r-- 1 root root 1.7K Nov 27  2013 RPM-GPG-KEY-CentOS-Debug-6
-r--r--r-- 1 root root 1.7K Nov 27  2013 RPM-GPG-KEY-CentOS-Security-6
-r--r--r-- 1 root root 1.7K Nov 27  2013 RPM-GPG-KEY-CentOS-Testing-6
-r--r--r-- 1 root root 3.4K Jun 29  2018 TRANS.TBL

4.2.4 将linux发行版系统镜像与其对应的ks文件建立关联

  • 图中红框表示安装源所在的服务器的文件夹位置
    在这里插入图片描述
    cobbler profile --name=centos6 --distro=centos6-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks6.cfg
    在这里插入图片描述
    cobbler profile --name=centos7 --distro=centos7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg
    在这里插入图片描述
    cobbler profile --name=centos8 --distro=centos8-x86_64 --kickstart=/var/lib/cobbler/kickstarts/ks8.cfg

  • 注意,在导入distro时,cobbler会自动生成distro条目,这些并未和ks文件关联,可以使用
    cobbler profile remove --name=PROFILE_NAME删除后,再关联ks文件。

4.2.5 建立关联后重启并同步

systemctl restart cobblerd
cobbler sync

4.2.6 查看详细信息

cobbler report

[root@old_centos7 ~]#cobbler report
distros:
==========
Name                           : centos7-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        : 
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/centos7-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/centos7-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos7-x86_64'}
Management Classes             : []
OS Version                     : rhel7
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

Name                           : centos8-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        : 
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/centos8-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/centos8-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos8-x86_64'}
Management Classes             : []
OS Version                     : rhel8
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

Name                           : centos6-x86_64
Architecture                   : x86_64
TFTP Boot Files                : {}
Breed                          : redhat
Comment                        : 
Fetchable Files                : {}
Initrd                         : /var/www/cobbler/ks_mirror/centos6-x86_64/images/pxeboot/initrd.img
Kernel                         : /var/www/cobbler/ks_mirror/centos6-x86_64/images/pxeboot/vmlinuz
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {'tree': 'http://@@http_server@@/cblr/links/centos6-x86_64'}
Management Classes             : []
OS Version                     : rhel6
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}


profiles:
Owners                         : ['admin']
Parent Profile                 : 
Internal proxy                 : 
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      : 
Virt RAM (MB)                  : 512
Virt Type                      : xenpv

Name                           : Install_centos6
TFTP Boot Files                : {}
Comment                        : 
DHCP Tag                       : default
Distribution                   : centos6-x86_64
Enable gPXE?                   : 0
Enable PXE Menu?               : 1
Fetchable Files                : {}
Kernel Options                 : {}
Kernel Options (Post Install)  : {}
Kickstart                      : /var/lib/cobbler/kickstarts/ks6.cfg
Kickstart Metadata             : {}
Management Classes             : []
Management Parameters          : <<inherit>>
Name Servers                   : []
Name Servers Search Path       : []
Owners                         : ['admin']
Parent Profile                 : 
Internal proxy                 : 
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Repos                          : []
Server Override                : <<inherit>>
Template Files                 : {}
Virt Auto Boot                 : 1
Virt Bridge                    : xenbr0
Virt CPUs                      : 1
Virt Disk Driver Type          : raw
Virt File Size(GB)             : 5
Virt Path                      : 
Virt RAM (MB)                  : 512
Virt Type                      : xenpv


systems:
==========

repos:
==========

images:
==========

mgmtclasses:
==========

packages:
==========

files:
==========
  • 上面信息中有一行如下:
    Kickstart Metadata : {'tree': 'http://@@http_server@@/cblr/links/centos8-x86_64'}
  • 该行的定义在文件[root@old_centos7 ~]#vim /var/www/cobbler/ks_mirror/config/ centos8-x86_64.repo中,是cobbler自己定义安装源路径的特有语法规定的,因此可以在ks文件中指定安装
    源时直接指定为$tree变量。(url --url=$tree)
    在这里插入图片描述
[root@old_centos7 ~]#vim /var/www/cobbler/ks_mirror/config/centos8-x86_64.repo
[core-0]
name=core-0
baseurl=http://@@http_server@@/cobbler/ks_mirror/centos8-x86_64/AppStream
enabled=1
gpgcheck=0
priority=$yum_distro_priority

五.测试安装

5.1 新建一台虚拟机

  • 设置其网络类型为NAT并桥接到和服务器相同的VMnet8,安装centos6时配置内存1G以上,安装centos7和
    centos8时配置内存大于1.6G

5.2 使用PXE网络引导启动

5.3 选择相应版本安装

六.优化

6.1 菜单优化

  • 修改/etc/cobbler/pxe/pxedefault.template模板文件,重启同步
[root@old_centos7 ~]#vim /etc/cobbler/pxe/pxedefault.template
DEFAULT menu
PROMPT 0
MENU TITLE Welcome! | suosuoli.cn      # 自定义项
TIMEOUT 200 
TOTALTIMEOUT 6000
ONTIMEOUT $pxe_timeout_profile

LABEL local
        MENU LABEL (local installation) # 自定义项1
        MENU DEFAULT
        LOCALBOOT -1

$pxe_menu_items

MENU end
[root@old_centos7 ~]#systemctl restart cobblerd
[root@old_centos7 ~]#cobbler sync
  • 重启同步后cobbler更新文件/var/lib/tftpboot/pxelinux.cfg/default
[root@old_centos7 ~]#vim /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu
PROMPT 0
MENU TITLE Welcome! | suosuoli.cn
TIMEOUT 200 
TOTALTIMEOUT 6000
ONTIMEOUT local

LABEL local
        MENU LABEL (local installation)
        MENU DEFAULT
        LOCALBOOT -1
LABEL Install_centos6
        kernel /images/centos6-x86_64/vmlinuz
        MENU LABEL Install_centos6
        append initrd=/images/centos6-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://192.168.131.17/cblr/svc/op/ks/profile/Install_centos6
        ipappend 2

LABEL Install_centos7
        kernel /images/centos7-x86_64/vmlinuz
        MENU LABEL Install_centos7
        append initrd=/images/centos7-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://192.168.131.17/cblr/svc/op/ks/profile/Install_centos7
        ipappend 2

LABEL Install_centos8
        kernel /images/centos8-x86_64/vmlinuz
        MENU LABEL Install_centos8
        append initrd=/images/centos8-x86_64/initrd.img ksdevice=bootif lang=  kssendmac text  ks=http://192.168.131.17/cblr/svc/op/ks/profile/Install_centos8
        ipappend 2



MENU end 

6.2 使用httpd服务和cobbler-web基于web界面来管理配置cobbler

6.2.1 安装cobbler-web

yum install cobbler-web

6.2.2 重启http服务

systemctl restart httpd

6.2.3 访问web界面

https://cobblerserver/cobbler_web

七.Trouble Shooting

  • 遇到下面这种情况?
    在这里插入图片描述

    • 这种情况是ks文件中的安装源路径出错,改为如下:
      centos6:url --url=http://httpserver/ksdir/ks.cfg或者url --url=$tree
      centos7:url --url=http://httpserver/ksdir/ks.cfg或者url --url=$tree
      centos8:url --url=http://httpserver/ksdir/ks.cfg或者url --url=$tree
  • 遇到下面这种情况?
    在这里插入图片描述

    • 这种情况是因为在安装配置cobbler时httpd服务一直在运行中,没有正确的为cobbler提供服务,
      因此重启httpd服务就ok了systemctl restart httpd
  • 遇到下面这种情况?

  • httpd服务运行中安装cobbler-web包后无法访问https://cobblerserver/cobbler-web管理界面?

    • 重启httpd服务:systemctl restart httpd
  • cobbler-web界面的默认账号

login:cobbler
passwd:cobbler
  • cobbler访问图示

在这里插入图片描述
默认账户密码都是:cobbler
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在就可以点点鼠标管理le!!!

⬅️exit

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

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

相关文章

IIC总线原理

1. IIC总线概述 IIC总线 IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信&#xff1b;IIC总线有两根双向的信号线一根数据线SDA用于收发数据&#xff0c;一根时钟线SCL用于通信双方时钟的同步&#xff1b;IIC总线硬件结构简…

elementPlus——图标引入+批量注册全局组件——基础积累

因为我们要根据路由配置对应的图标&#xff0c;也要为了后续方便更改。因此我们将所有的图标注册为全局组件。&#xff08;使用之前将分页器以及矢量图注册全局组件的自定义插件&#xff09;&#xff08;所有图标全局注册的方法element-plus文档中已给出&#xff09; 全局注册…

vue中 .env .env.development .env.production 详细说明

1.配置文件有&#xff1a; .env 全局默认配置文件&#xff0c;不论什么环境都会加载合并 .env.development 开发环境下的配置文件 .env.production 生产环境下的配置文件 2.命名规则&#xff1a; 属性名必须以VUE_APP_开头&#xff0c;比如VUE_APP_XXX 3.关于文件的加载&#x…

kubernetes基于helm部署minecraft

kubernetes基于helm部署minecraft kubernetes容器集群中部署minecraft server服务器。 项目地址&#xff1a;https://github.com/itzg/minecraft-server-charts 官方文档&#xff1a;https://itzg.github.io/minecraft-server-charts/ 前置要求&#xff1a; 已准备kubern…

国标GB28181视频平台EasyGBS国标平台的应用场景以及方案实现

EasyGBS国标视频融合云平台基于端-边-云一体化架构&#xff0c;部署轻量简单、功能灵活多样&#xff0c;平台可支持多协议&#xff08;GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等&#xff09;、多类型设备接入(IPC/NVR/监控平台)&#xff0c;在视频能力上&#xff0…

华为认证含金量如何

华为认证是指通过华为技术有限公司官方认证考试所获得的认证资格。华为认证主要分为三个级别&#xff1a;华为认证工程师&#xff08;HCIE&#xff09;、华为认证专家&#xff08;HCNP&#xff09;和华为认证技术专家&#xff08;HCNA&#xff09;&#xff0c;每个级别都有不同…

lvs集群与nat模式

一&#xff0c;什么是集群&#xff1a; 集群&#xff0c;群集&#xff0c;Cluster&#xff0c;由多台主机构成&#xff0c;但是对外只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名与ip地址&#xff09;&#xff0c;相当于一台大型计算机。 二&#xff0c;集…

什么是Liquid UI?

热门议题&#xff1a; 1、企业如何快速解决人员移动办公的需求&#xff0c;比如在苹果安卓手机&#xff0c;平板电脑&#xff0c;MAC登录SAP。2、企业如何解决用户经常抱怨的流程复杂&#xff0c;操作繁琐&#xff0c;难以使用等问题 公司介绍&#xff1a; Synactive,Inc. 是…

【推荐】深入浅出学习Spring框架

​ 目录 1.spring简介 1.1含义 1.2优点 2&#xff0c;Spring之IOC详解 2.1&#xff0c;控制反转是什么 2.2&#xff0c;控制反转案例 2.1.3案例前台测试 3、IoC的三种注入方式 3.1 构造方法注入 3.2 setter方法注入 3.3 接口注入&#xff08;自动装配&#xff09;用的最多&…

⛳ Java 反射

目录 ⛳ Java 反射&#x1f3a8; 一、反射概述**&#x1f383; 使用反射的前提条件: **&#x1f3b2; 类正常加载过程如下图&#xff1a;反射优缺点&#xff1a;&#x1f9f8; Java反射机制提供的功能: **&#x1f945; 反射主要API** &#x1f3ed; 二、反射的使用&#x1f3a…

01.修改simvision字体大小

修改simvision字体大小 ①cd ~/.simvision ② ls 查看是否有Xdefaults文件 1.如果有&#xff0c;gedit/vim Xdefaults 打开文件&#xff0c;搜索SrcBrowser修改数字&#xff0c;默认12这里修改成25&#xff0c;还有WaveWindow、DesignBrowser等都能改&#xff0c;我全部都修改…

爬虫逆向实战(四)--猿人学第一题

一、数据接口分析 主页地址&#xff1a;猿人学第一题 1、抓包 当我们打开F12时会发现直接debugger了&#xff0c;是一个无限debugger&#xff0c;我们直接右键debugger那一行&#xff0c;然后选择“一律不再此处暂停”就可以了 通过抓包可以发现登录接口是api/match/1 2、…

一条提示词等同于多少个数据点?

数据点&#xff08;data points&#xff09;通常用于描述单个信息单位或观测值&#xff0c;在本文中&#xff0c;它被用来量化“提示词”方法相对于传统方法的效率和效果。文章比较了两种训练&#xff08;微调&#xff09;机器学习模型的方法&#xff1a;一种是使用提示 (promp…

python——案例23:创建一个按钮

案例23&#xff1a;创建一个按钮from tkinter import * def xinlabel():global xinsLabel(xin,text完成)s.pack() xinTk() blButton(xin,text下一步,commandxinlabel) bl.pack() xin.mainloop()

【golang】函数(func)正确使用姿势

函数不但可以用于封装代码、分割功能、解耦逻辑&#xff0c;还可以化身为普通的值&#xff0c;在其他函数间传递、赋予变量、做类型判断和转换等等&#xff0c;就像切片和字典的值那样。 而更深层次的含义就是&#xff1a;函数值可以由此成为能够被随意传播的独立逻辑组件&…

使用PyMuPDF库的PDF合并和分拆程序

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具&#xff0c;用于合并和分拆PDF文件。它提供了一个用户友好的图形界面&#xff0c;允许用户选择源文件夹和目标文件夹&#xff0c;并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…

高速数据采集卡---AD采集FMC子卡模块产品资料下载

FMC152是一款基于VITA57.1标准的&#xff0c;实现2路14-bit、2GSPS/2.6GSPS/3GSPS AD采集FMC子卡模块。该模块可直接与FPGA载卡配合使用&#xff0c;板卡ADC器件采用ADI公司的AD9208芯片&#xff0c;与ADI公司的AD9689可以实现PIN脚兼容。该模块全功率模拟输入带宽&#xff08;…

【FAQ】安防监控视频云存储平台EasyNVR频繁离线的原因排查与解决

有用户反馈&#xff0c;在使用EasyNVR时会出现通道频繁离线的情况。针对该反馈我们立即进行了排查。 安防视频监控汇聚EasyNVR视频集中存储平台&#xff0c;是基于RTSP/Onvif协议的安防视频平台&#xff0c;可支持将接入的视频流进行全平台、全终端分发&#xff0c;分发的视频流…

(二)结构型模式:6、外观模式(Facade Pattern)(C++实例)

目录 1、外观模式&#xff08;Facade Pattern&#xff09;含义 2、外观模式的UML图学习 3、外观模式的应用场景 4、外观模式的优缺点 5、C实现外观模式的简单实例 1、外观模式&#xff08;Facade Pattern&#xff09;含义 外观模式&#xff08;Facade Pattern&#xff09;…

气象监测设备——分类与应用

气象监测设备多种多样&#xff0c;不同的应用场景选择适合的气象监测设备才能事半功倍。 在植保站中&#xff0c;可以 选择农林植保小气候气象站&#xff0c;它可以帮助植保站的工作人员完成气象监测工作&#xff0c;对天气环境进行预报预测&#xff0c;为植物的健康生长提供保…