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

三主机部署HP Anyware Manager服务

一、序言

在部署拓扑和方案方面,HP Anyware Manager 非常灵活,可以部署在单个主机中,也可以部署在多个主机中,具体取决于组织的网络环境和运营要求。

二、单主机部署

2.1 描述

此部署配置是当 Anyware Manager 和 MongoDB 以及 Vault 服务器在单个主机上运行时,可将其部署在任何云或本地的虚拟机上。
可以使用与 Anyware Manager 进行初始原型设计或小规模生产部署。如果用于生产环境,则必须确保有备份和恢复过程。这对于最大限度地减少数据丢失和最大限度地减少停机时间是必要的。
在这里插入图片描述

2.2 虚拟机系统需求

  1. 操作系统:RHEL 8 和 Rocky Linux 8。
  2. 最低 8 GB RAM
  3. 4 CPU
  4. 60 GB 存储空间:如果您使用 LVM并/var安装在单独的卷上,则该卷必须具有 30GB 或更多空间才能成功安装并且 Anyware Manager 才能正常运行。
  5. Active Directory 权限设置为列出内容和读取所有属性。如果不设置这些权限,您将无法连接到特定的远程工作站。
  6. VM的主机名应符合RFC1123中定义的标准,并且必须:
    -仅包含 253 个字符。
    -仅包含小写字母数字字符、“-”或“。”。
    -以字母数字字符开头。
    -以字母数字字符结尾。

默认安装过程链接

三、两/三台主机部署

3.1 描述

此部署配置适用于 Anyware Manager、MongoDB 和 Vault 服务器在单独的主机上运行的情况。
通过在单独的计算机上托管数据库和机密存储,可以降低 Anyware Manager 服务器发生故障时数据丢失的风险。

此配置通过部署多个 Anyware Manager 实例来实现 Anyware Manager 的高可用性和可扩展性。此配置具有以下限制:

  • 如果仅部署一个 MongoDB 和 Vault 实例,数据持久层无法实现高可用性,并且必须为托管 MongoDB 和 Vault 的服务器制定备份和恢复过程,以最大限度地减少数据丢失。
  • 可以在本地或任何云上托管的虚拟机上配置此部署。 此配置需要一定程度的 MongoDB 和 Vault 技术知识,才能正确部署和操作这些外部组件。
  • 在这里插入图片描述

四、三主机安装 之 为外部DB和Vault创建自签名证书

这些命令的目的是生成一个自签名的根证书颁发机构 (CA) 证书和一个由该根CA签署的服务器证书,并包括特定的Subject Alternative Name (SAN) 条目。每个命令的详细功能如下:

  1. 生成根CA私钥

    openssl genrsa -out rootCA.key 4096
    
    • 生成一个4096位的RSA私钥并将其保存在rootCA.key文件中。
    • 这个私钥将用于签署根CA证书。
  2. 生成自签名根CA证书

    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt -subj "/C=CA/ST=BC/O=Team Voltron/CN=Voltron Test CA"
    
    • 使用生成的私钥rootCA.key创建一个新的自签名根CA证书,并将其保存为rootCA.crt
    • -x509表示生成一个自签名证书。
    • -days 1024指定证书的有效期为1024天。
    • -subj提供证书的主题信息(国家、州/省、组织和通用名称)。
  3. 设置Subject Alternative Name (SAN) 环境变量

    export SAN="subjectAltName=DNS:DBVault-10-47,IP:192.168.10.47,IP:192.168.10.47,IP:127.0.0.1"
    
    • 将特定的SAN值存储在SAN环境变量中。
    • SAN包含DNS名称和多个IP地址,用于扩展证书的主机名验证。
  4. 生成服务器私钥

    openssl genrsa -out mycert.key 2048
    
    • 生成一个2048位的RSA私钥并将其保存在mycert.key文件中。
    • 这个私钥将用于生成服务器证书签名请求 (CSR)。
  5. 生成证书签名请求 (CSR)

    openssl req -new -sha256 \
    -key mycert.key \
    -subj "/C=CA/ST=BC/O=Team Voltron/CN=localhost" \
    -reqexts SAN \
    -config <(cat /etc/pki/tls/openssl.cnf <(printf "\n[SAN]\n${SAN}")) \
    -out mycert.csr
    
    • 使用mycert.key生成一个新的CSR,并将其保存为mycert.csr
    • -subj提供CSR的主题信息。
    • -reqexts SAN-config <(cat /etc/pki/tls/openssl.cnf <(printf "\n[SAN]\n${SAN}"))用于将SAN信息添加到CSR中。
    • -sha256指定使用SHA-256哈希算法。
  6. 使用根CA签署服务器证书

    openssl x509 -req -in mycert.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out mycert.crt -days 500 -sha256 -extfile <(printf "${SAN}")
    
    • 使用根CA证书rootCA.crt和根CA私钥rootCA.key签署CSR mycert.csr,生成服务器证书mycert.crt
    • -CAcreateserial生成一个序列号文件(默认为rootCA.srl)。
    • -days 500指定证书的有效期为500天。
    • -extfile <(printf "${SAN}")包含SAN信息的扩展文件。
  7. 将服务器证书追加到 PEM 文件

    cat mycert.crt >> myserver.pem
    
    • 将生成的服务器证书 (mycert.crt) 的内容追加到 myserver.pem 文件中。
    • myserver.pem 文件将包含服务器证书的公钥。
  8. 将服务器私钥追加到 PEM 文件

    cat mycert.key >> myserver.pem
    
    • 将生成的服务器私钥 (mycert.key) 的内容追加到 myserver.pem 文件中。
    • myserver.pem 文件现在包含了服务器的公钥和私钥。

    通过这两个步骤,你将服务器证书和私钥组合到一个 PEM 文件 (myserver.pem) 中,这个文件可以方便地用于配置支持 SSL/TLS 的服务。

  9. 验证服务器证书

    openssl verify -CAfile rootCA.crt mycert.crt
    
    • 使用根CA证书 (rootCA.crt) 验证服务器证书 (mycert.crt) 的有效性。
    • -CAfile rootCA.crt 指定用于验证的根CA证书。
    • 如果证书有效且由指定的根CA签署,OpenSSL 会输出 mycert.crt: OK
    • 如果证书无效或不匹配,OpenSSL 会输出相应的错误信息。

总结

这些命令的整体操作流程如下:

  1. 创建一个根CA证书及其私钥。
  2. 为服务器生成一个私钥和一个包含SAN的CSR。
  3. 使用根CA证书和私钥签署该CSR,生成一个包含SAN的服务器证书。
  4. 将服务器证书和私钥组合到一个 PEM 文件中 (myserver.pem)。
  5. 使用根CA证书验证服务器证书的有效性,确保服务器证书是由指定的根CA签署的,并且没有问题。
    这些步骤通常用于准备证书和密钥,以便在配置支持SSL/TLS的服务(如MongoDB、HashiCorp Vault等)时使用。

五、三主机安装之 HashiCorp Vault 1.11 安装配置

安装和配置 Vault

  1. 安装 yum-utils 工具包:

    sudo yum install -y yum-utils
    
    • 安装 yum-utils,这是一个提供各种 YUM 命令的工具包,用于管理和维护 YUM 仓库及软件包。
  2. 添加 HashiCorp 的 YUM 仓库:

    sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
    
    • 将 HashiCorp 官方的 YUM 仓库添加到系统中,以便安装 HashiCorp 的软件包,包括 Vault。
  3. 安装 Vault:

    sudo yum -y install vault-1.11.6-1.x86_64
    
    • 从刚刚添加的 YUM 仓库安装 Vault 1.11.6 版本。
  4. 运行 Vault 命令以验证安装:

    vault
    
    • 运行 Vault 命令行工具以确认 Vault 已正确安装并能够启动。

配置 Vault

  1. 复制服务器证书到 Vault 目录:

    sudo cp myserver.pem /opt/vault/tls/myserver.pem
    
    • 将之前生成的服务器证书 (myserver.pem) 复制到 Vault 的 TLS 目录中。
  2. 备份现有的 Vault 配置文件:

    sudo mv /etc/vault.d/vault.hcl /etc/vault.d/vault.hcl.old
    
    • 将现有的 Vault 配置文件重命名为备份文件,以便后续创建新的配置文件。
  3. 编辑 Vault 配置文件:

    vi /etc/vault.d/vault.hcl
    
    • 打开 Vault 配置文件进行编辑。

Vault 配置文件 (/etc/vault.d/vault.hcl)

# Full configuration options can be found at https://www.vaultproject.io/docs/configurationui = truestorage "raft" {path = "/opt/vault/data"node = "node1"
}# HTTP listener
listener "tcp" {address       = "0.0.0.0:8200"tls_cert_file = "/opt/vault/tls/myserver.pem"tls_key_file  = "/opt/vault/tls/myserver.pem"
}api_addr = "https://127.0.0.1:8200"
cluster_addr = "https://127.0.0.1:8201"
  • ui = true: 启用 Vault 的 Web 用户界面。
  • storage "raft": 配置 Raft 存储后端,数据存储在 /opt/vault/data 目录。
  • listener "tcp": 配置 TCP 监听器,在 8200 端口上启用 TLS 加密,使用指定的证书和密钥文件。
  • api_addrcluster_addr: 配置 Vault 的 API 地址和集群地址,均使用 HTTPS。

配置 Vault 服务

  1. 编辑 Vault 服务文件:

    sudo vi /etc/systemd/system/vault.service
    

    Vault 服务文件内容 (/etc/systemd/system/vault.service):

    [Unit]
    Description="HashiCorp Vault - A tool for managing secrets"
    Documentation=https://www.vaultproject.io/docs/
    Requires=network-online.target
    After=network-online.target
    ConditionFileNotEmpty=/etc/vault.d/vault.hcl
    StartLimitIntervalSec=60
    StartLimitBurst=3[Service]
    User=vault
    Group=vault
    ProtectSystem=full
    ProtectHome=read-only
    PrivateTmp=yes
    PrivateDevices=yes
    SecureBits=keep-caps
    AmbientCapabilities=CAP_IPC_LOCK
    Capabilities=CAP_IPC_LOCK+ep
    CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK
    NoNewPrivileges=yes
    ExecStart=/usr/bin/vault server -config=/etc/vault.d/vault.hcl
    ExecReload=/bin/kill --signal HUP $MAINPID
    KillMode=process
    KillSignal=SIGINT
    Restart=on-failure
    RestartSec=5
    TimeoutStopSec=30
    StartLimitInterval=60
    StartLimitIntervalSec=60
    StartLimitBurst=3
    LimitNOFILE=65536
    LimitMEMLOCK=infinity[Install]
    WantedBy=multi-user.target
    
    • 定义了 Vault 的系统服务单元,配置了启动、重启、权限、安全设置等。
  2. 启用 Vault 服务:

    sudo systemctl enable vault
    
    • 设置 Vault 服务在系统启动时自动启动。
  3. 启动 Vault 服务:

    sudo systemctl start vault
    
    • 启动 Vault 服务。
  4. 检查 Vault 服务状态:

    sudo systemctl status vault
    
    • 检查 Vault 服务是否正在运行并且工作正常。

初始化和解封 Vault

以下命令需要重新开一个SSH执行

  1. 设置 Vault 地址:

    export VAULT_ADDR='https://192.168.10.47:8200'
    
    • 设置环境变量 VAULT_ADDR 指定 Vault 的 API 地址。
  2. 设置 CA 证书路径:

    export VAULT_CACERT=/opt/vault/tls/myserver.pem
    
    • 设置环境变量 VAULT_CACERT 指定 Vault 的 CA 证书路径。
  3. 初始化 Vault:

    vault operator init
    

    初始化输出示例:

    Unseal Key 1: 6vcvTn+oLnFirU9f4Ehrc88RWphgavO5fgdhiH4/DYDg
    Unseal Key 2: r+ZFy2KipZxnJec5O6geU4DFTXxiVZbLfuD5YDvSbbvl
    Unseal Key 3: COGjZgfPBlKS0Ok+6vLtIlfui2WA7LHmS5BC9ipXx7vD
    Unseal Key 4: Vee++P6EkdnW7Hs85KtY3Zo8sWfMNqG8RAMLHpin9MHU
    Unseal Key 5: s7eu5VWbjqaSAZZKI+ejdEIa7bDKbIoIT6rc7+jQ5XtZInitial Root Token: hvs.QIdivPRK0dUrycWFrh1gQe8Z
    
    • 初始化 Vault 并生成解封密钥和 Root Token。
  4. 解封 Vault:

    vault operator unseal
    
    • 需要执行三次,输入不同的解封密钥。
  5. 登录 Vault:

    vault login hvs.QIdivPRK0dUrycWFrh1gQe8Z
    
    • 使用 Root Token 登录 Vault。
  6. 启用密钥值 (KV) 存储引擎:

    vault secrets enable -path=secret/ kv
    
  7. 创建 Vault 策略:

    vault policy write casm-policy - << EOF
    path "secret/data/*" {
    capabilities = ["create", "update", "read", "delete", "list"]
    }
    EOF
    
  8. 创建角色和 token:

    vault write auth/token/roles/casm-role allowed_policies="casm-policy" period="768h"
    vault token create -role=casm-role -orphan
    

    创建 token 输出示例:

    Key                  Value
    ---                  -----
    token                hvs.CAESIDA0kcPwDitAjXPtrKjckEj1qJA8DQAl8fEyHo_z7g1WGh4KHGh2cy5lU2pLdU1tb1FWbFgyUE1nVUw0OVlYUzU
    
  9. 设置 Vault 跳过证书验证(仅用于测试环境):

    export VAULT_SKIP_VERIFY=True
    
  10. 重新解封 Vault:

    vault operator unseal
    
    • 在 Vault 重启后,执行解封操作。

六、三主机安装之 MongoDB 4.2 安装配置

下面是这些系统命令的详细解释及其功能:

配置 MongoDB YUM 仓库

  1. 创建并编辑 MongoDB 仓库文件:

    sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo
    

    MongoDB 仓库配置文件内容 (/etc/yum.repos.d/mongodb-org-4.2.repo):

    [mongodb-org-4.2]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
    
    • name: 为仓库指定名称。
    • baseurl: 指定 MongoDB 软件包的下载地址。
    • gpgcheck: 启用 GPG 签名检查,以确保软件包的完整性和来源可靠性。
    • enabled: 启用这个仓库。
    • gpgkey: 指定用于验证软件包签名的 GPG 密钥的 URL。
  2. 安装 MongoDB 相关包:

    yum install -y mongodb-org-4.2.14 mongodb-org-server-4.2.14 mongodb-org-shell-4.2.14 mongodb-org-mongos-4.2.14 mongodb-org-tools-4.2.14
    
    • 安装 MongoDB 4.2.14 及其所有相关组件,包括服务器、Shell、Mongos 和工具。

配置 MongoDB

  1. 移动和设置证书权限:

    mv myserver.pem /etc/myserver.pem
    chmod 755 /etc/myserver.pem
    
    • 将证书文件 myserver.pem 移动到 /etc 目录,并设置文件权限为 755(所有者可读写执行,其他用户可读)。
  2. 备份并编辑 MongoDB 配置文件:

    sudo mv /etc/mongod.conf /etc/mongod.conf.orig
    sudo vi /etc/mongod.conf
    

    MongoDB 配置文件内容 (/etc/mongod.conf):

    #mongod.conf#for documentation of all options, see:
    #   http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.
    systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongod.log# Where and how to store data.
    storage:dbPath: /var/lib/mongojournal:enabled: true
    #  engine:
    #  wiredTiger:# how the process runs
    processManagement:fork: true  # fork and run in backgroundpidFilePath: /var/run/mongodb/mongod.pid  # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfacesnet:port: 27017bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.tls:# mode allowTLS allows connections to be either TLS or non-TLS, but requireTLS means all connections must be TLSmode: requireTLS    # All connections MUST be TLScertificateKeyFile: /etc/myserver.pemsecurity:authorization: "enabled"
    
    • systemLog: 配置日志记录,包括日志文件位置和是否追加日志。
    • storage: 配置数据存储,包括数据文件位置和启用日志。
    • processManagement: 配置 MongoDB 进程管理,包括后台运行、PID 文件路径等。
    • net: 配置网络接口,包括端口号、绑定 IP 地址和 TLS 设置。
    • security: 启用 MongoDB 的认证授权。
  3. 重新加载系统服务管理器配置:

    sudo systemctl daemon-reload
    
    • 使系统服务管理器重新加载服务配置文件。
  4. 设置证书的 SELinux 上下文:

    chcon system_u:object_r:mongod_var_lib_t:s0 /etc/myserver.pem
    
    • 设置证书文件的 SELinux 上下文,以便 MongoDB 服务可以访问它。
  5. 启动 MongoDB 服务并检查状态:

    sudo systemctl start mongod
    sudo systemctl status mongod
    
    • 启动 MongoDB 服务,并检查其运行状态。

配置和使用 MongoDB

  1. 以 TLS 连接到 MongoDB:

    mongo --tls --tlsAllowInvalidCertificates
    
    • 使用 TLS 连接到 MongoDB 实例,即使证书无效也允许连接(用于测试)。
  2. 切换到 casm 数据库:

    use casm
    
  3. 创建用户并设置权限:

    db.createUser(
    {
    user: "sunia",
    pwd: "Hc@2024",
    roles: [ {db: "casm", role: "readWrite"} ], // user only needs readWrite Access to cam DB,authenticationRestrictions: [{serverAddress: ["192.168.10.47"] // IP for the MongoDB server}]
    });
    
    • casm 数据库中创建一个用户 sunia,密码为 Hc@2024,并赋予 readWrite 权限。用户只能从 IP 地址 192.168.10.47 进行认证。

注意事项:
1, 完成MongoDB安装后登录第一次创建用户,会出现问题是: 无权限在casm总增加用户
2024-07-18T20:04:42.959+0800 E QUERY [js] uncaught exception: Error: couldn’t add user: not authorized on casm to execute command { createUser: “sunia”, pwd: “xxx”, roles: [ { db: “casm”, role: “readWrite” } ], authenticationRestrictions: [ { serverAddress: [ “192.168.10.47” ] } ], digestPassword: true, writeConcern: { w: “majority”, wtimeout: 600000.0 }, lsid: { id: UUID(“05fe2644-2cdd-4e33-9476-e4e29ba5cbdb”) }, $db: “casm” } :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1413:11
@(shell):1:1

解决办法:
第一次安装mongodb后,需要增加一个账户,如果创建账户的时候报这个错误,是因为启动mongod的时候,指定的配置文件mongodb.conf中,需要先用noauth = true启动,注释掉auth = true

-------------------防火墙打开-----------------------------
sudo firewall-cmd --list-all
sudo firewall-cmd --add-port=27017/tcp --permanent #MongoDB
sudo firewall-cmd --add-port=8200/tcp --permanent #Vault
sudo firewall-cmd --reload

总结

这些命令完成了 MongoDB 的安装、配置和启动,包括:

  • 配置 MongoDB YUM 仓库,并安装 MongoDB 4.2 版本。
  • 配置 MongoDB 使其支持 TLS 和启用认证。
  • 设置 MongoDB 服务并启动,确保服务正常运行。
  • 创建 MongoDB 用户并设置权限,以便进行访问控制。

七、三主机安装之 Manager配置刷新

在虚机安装完成Manager之后,需要配置Manager使用外部安装的MongoDB和Vault服务上面。
如下是配置命令:

cat /opt/manager.conf 
{"vault-type": "vault","vault-url": "https://192.168.10.47:8200","vault-token": "hvs.CAESIEAIMGzQFyc3ts2WJsjvA-YcavVXizkdFdLFML0cw0bSGh4KHGh2cy5yeXFKTVFsekZDZlFwMUZ2UDJ5ejdjdmw","vault-secret-path": "secret/data","vault-skip-verify-cert": true,"db-connection-string": "mongodb://sunia:Hc%402024@192.168.10.47/casm","db-enable-tls": true,"db-skip-verify-cert": true 
}sudo /usr/local/bin/anyware-manager configure --config-file /opt/manager.conf

相关文章:

三主机部署HP Anyware Manager服务

一、序言 在部署拓扑和方案方面&#xff0c;HP Anyware Manager 非常灵活&#xff0c;可以部署在单个主机中&#xff0c;也可以部署在多个主机中&#xff0c;具体取决于组织的网络环境和运营要求。 二、单主机部署 2.1 描述 此部署配置是当 Anyware Manager 和 MongoDB 以及…...

Grafana :利用Explore方式实现多条件查询

背景 日志统一推送到Grafana上管理。所以&#xff0c;有了在Grafana上进行日志搜索的需求&#xff0c;而进行日志搜索通常需要多条件组合。 解决方案 通过Grafana的Explore的方式实现多条件查询。 直接看操作步骤&#xff1a; 在主页搜索框中输入“Explore” 进入这个界面…...

腾讯技术创作特训营 -- SUPERWINNIE -- AI重塑社交内容

目录 1 什么是AI社交内容 2 案例拆解 3 用LLM做爆文选题 4 用LLM出爆文脚本提示词 1 什么是AI社交内容 任何一个因素被AI取代都是AI社交内容 2 案例拆解 数字人 资讯素材 录屏产品的素材&#xff08;小红书测试AI产品&#xff09; 脚本 素材 剪辑 3 用LLM做爆文选题 &…...

AV1技术学习: Compound Prediction

一、双向 Compound Prediction AV1支持两个参考帧的预测通过多种复合模式线性组合。复合预测公式为 其中&#xff0c;权重m(x, y) is scaled by 64 以进行整数计算&#xff0c;R1(x, y)和R2(x, y)表示两个参考块中位于(x, y)的像素。P(x, y)将按比例缩小 1/64 以形成最终的预测…...

watch监听vue2与vue3的写法

watch的属性值 handler:回调函数, 即监听到变化时应该执行的函数&#xff0c;可以是单独的函数或带有 immediate 和 deep 属性的对象watch: {someProperty: function(newVal, oldVal) {// 处理逻辑}}deep: 其值是true或false, 当属性值是对象或数组时&#xff0c;深度观察会监…...

docker搭建普罗米修斯监控gpu

ip8的服务器监控ip110和ip111的服务器 被监控的服务器110和111只需要安装node-export和nvidia-container-toolkit 下载镜像包 docker pull prom/node-exporter docker pull prom/prometheus docker pull grafana/grafana新建目录 mkdir /opt/prometheus cd /opt/prometheus/…...

像 MvvmLight 一样使用 CommunityToolkit.Mvvm 工具包

文章目录 简介一、安装工具包二、实现步骤1.按照MvvmLight 的结构创建对应文件夹和文件2.编辑 ViewModelLocator3.引用全局资源二、使用详情1.属性2.命令3. 消息通知4. 完整程序代码展示运行结果简介 CommunityToolkit.Mvvm 包(又名 MVVM 工具包,以前称为 Microsoft.Toolkit…...

python入门课程Pro(2)--循环

循环 第1课 for循环的基本操作1.循环2.遍历3.for 循环遍历字典&#xff08;1&#xff09; 遍历字典的键(2)遍历字典的值(3)遍历字典的键和值 4.练习题&#xff08;1&#xff09;班级成绩单&#xff08;2&#xff09;最出名的城市&#xff08;3&#xff09;修改成绩&#xff08;…...

今日总结:雪花算法,拉取在线用户

雪花算法&#xff1a; public class SnowflakeIdGenerator {private final long epoch 1626804000000L; // 定义起始时间戳&#xff0c;这里设置为2021-07-21 00:00:00 UTCprivate final long workerIdBits 5L; // 机器ID所占的位数private final long sequenceBits 10L; /…...

前瞻断言与后瞻断言:JavaScript 正则表达式的秘密武器

JavaScript 中的前瞻断言&#xff08;lookahead&#xff09;和后瞻断言&#xff08;lookbehind&#xff09;相信用过的小伙伴就知道它的威力了&#xff0c;在一些特定的需求场景下&#xff0c;可以做到四两拨千斤的作用&#xff0c;今天让我们来盘点一下在 JavaScript 正则表达…...

昇思MindSpore学习总结十六 —— 基于MindSpore的GPT2文本摘要

1、mindnlp 版本要求 !pip install tokenizers0.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 该案例在 mindnlp 0.3.1 版本完成适配&#xff0c;如果发现案例跑不通&#xff0c;可以指定mindnlp版本&#xff0c;执行!pip install mindnlp0.3.1 !pip install mindnlp …...

React Router 6笔记

一个路由就是一个映射关系 key为路径&#xff0c;value可能是function或component 路由分类 后端路由&#xff08;node&#xff09; value是function&#xff0c;用来处理客户端提交的请求注册路由&#xff1a;router.get(path, function(req, res))工作过程&#xff1a;当…...

Android init 中的wait_for_property指令

Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…...

智能合约语言(eDSL)—— 并行化方案——调度算法

3、调度算法 处理区块的时候,我们会同时启动多个线程去执行多个交易,这个时候我们需要一个良好的调度策略,来决定当前的线程是应该执行交易还是验证交易、提前结束还是立刻重新执行交易等,只有有一个良好调度策略才能保证所有交易都稳定有序的执行; 线程数量 这是一个不…...

vue2.0中如何实现数据监听

vue2中实现数据监听的原理 在Vue 2中&#xff0c;数据监听是通过ES5的Object.defineProperty实现的。Vue在初始化数据对象时&#xff0c;会遍历data对象&#xff0c;并使用Object.defineProperty为每个属性设置getter和setter。当你尝试读取或修改数据属性时&#xff0c;这些g…...

kafka开启kerberos和ACL

作者&#xff1a;恩慈 一、部署kafka-KB包 1&#xff0e;上传软件包 依次点击 部署中心----部署组件----上传软件包 选择需要升级的kafka版本并点击确定 2&#xff0e;部署kafka 依次点击部署中心----部署组件----物理/虚拟机部署----选择集群----下一步 选择手动部署-…...

QT+winodow 代码适配调试总结(三)

问题描述: 1、开发测试环境为: A: window10 64位 B: QT版本为4.8.6 C:采用VS2017 C++ Compiler 9.0 (x86)编译器版本 根据总结(二)经验,开发环境的可执行程序显示正常; 2、新的环境运行的时候显示乱码; 经过查阅资料,还是代码环境编码配置的问题,下面为解…...

Linux之旅:常用的指令,热键和权限管理

目录 前言 1. Linux指令 &#xff08;1&#xff09; ls &#xff08;2&#xff09; pwd 和 cd &#xff08;3&#xff09;touch 和 mkdir &#xff08;4&#xff09; rmdir 和 rm &#xff08;5&#xff09;cp &#xff08;6&#xff09;mv &#xff08;7&#xff09;…...

简单实用的企业舆情安全解决方案

前言&#xff1a;企业舆情安全重要吗&#xff1f;其实很重要&#xff0c;尤其面对负面新闻&#xff0c;主动处理和应对&#xff0c;可以掌握主动权&#xff0c;避免股价下跌等&#xff0c;那么如何做使用简单实用的企业舆情解决方案呢&#xff1f; 背景 好了&#xff0c;提取词…...

【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.1计算机软硬件与2.1.2计算机网络

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…...

SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表

Sharding-JDBC系列 1、Sharding-JDBC分库分表的基本使用 2、Sharding-JDBC分库分表之SpringBoot分片策略 3、Sharding-JDBC分库分表之SpringBoot主从配置 4、SpringBoot集成Sharding-JDBC-5.3.0分库分表 5、SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表 前言 …...

ubuntu 上安装中文输入法

在Ubuntu上安装中文输入法&#xff0c;通常有以下几种方法&#xff1a; 方法一&#xff1a;使用Fcitx输入法框架和搜狗输入法 安装Fcitx&#xff1a; sudo apt update sudo apt install fcitx fcitx-bin fcitx-table-all 安装搜狗输入法&#xff1a; 首先&#xff0c;从搜狗…...

Postman导出excel文件

0 写在前面 在我们后端写接口的时候&#xff0c;前端页面还没有出来&#xff0c;我们就得先接口测试&#xff0c;在此记录下如何使用postman测试导出excel接口。 如果不会使用接口传参可以看我这篇博客如何使用Postman 1 方法一 2 方法二 3 写在末尾 虽然在代码中写入文件名…...

你还在手动构建Python项目吗?PyBuilder让一切自动化!

在 Python 项目开发中&#xff0c;构建和管理项目是一项繁琐但必不可少的工作。你可能需要处理依赖项、运行测试、生成文档等。这时候&#xff0c;PyBuilder 出场了。它是一个强大的构建自动化工具&#xff0c;可以帮助你简化项目管理&#xff0c;让你更专注于编写代码。 什么…...

WebRTC音视频-前言介绍

目录 效果预期 1&#xff1a;WebRTC相关简介 1.1&#xff1a;WebRTC和RTC 1.2&#xff1a;WebRTC前景和应用 2&#xff1a;WebRTC通话原理 2.1&#xff1a;媒体协商 2.2&#xff1a;网络协商 2.3&#xff1a;信令服务器 效果预期 1&#xff1a;WebRTC相关简介 1.1&…...

centos/rocky容器中安装xfce、xrdp记录

最近需要一台机器来测试rdp连接&#xff0c;使用容器linuxxfcexrdp来实现&#xff0c;在此记录下主要步骤 启动rockylinux容器&#xff08;其他linux发行版步骤应该相似&#xff09; docker run -it -p 33891:3389 rockylinux:9.3 bash容器内操作 # 省略替换软件源步骤 ...# …...

实战:Eureka的概念作用以及用法详解

概叙 什么是Eureka&#xff1f; Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心&#xff0c;用于提供服务发现功能。Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分&#xff0c;基于 Netflix Eureka 进行了二次封装&#xff0c;主要负责…...

jupyter_contrib_nbextensions安装失败问题

目录 1.文件路径长度问题 2.jupyter不出现Nbextensions选项 1.文件路径长度问题 问题&#xff1a; could not create build\bdist.win-amd64\wheel\.\jupyter_contrib_nbextensions\nbextensions\contrib_nbextensions_help_item\contrib_nbextensions_help_item.yaml: No su…...

设计模式-Git-其他

目录 设计模式&#xff1f; 创建型模式 单例模式&#xff1f; 啥情况需要单例模式 实现单例模式的关键点&#xff1f; 常见的单例模式实现&#xff1f; 01、饿汉式如何实现单例&#xff1f; 02、懒汉式如何实现单例&#xff1f; 03、双重检查锁定如何实现单例&#xff…...

【C#】计算两条直线的交点坐标

问题描述 计算两条直线的交点坐标&#xff0c;可以理解为给定坐标P1、P2、P3、P4&#xff0c;形成两条线&#xff0c;返回这两条直线的交点坐标&#xff1f; 注意区分&#xff1a;这两条线是否垂直、是否平行。 代码实现 斜率解释 斜率是数学中的一个概念&#xff0c;特别是…...

怎么设置批发网站怎么做/央视新闻的新闻

// 先导入gson的jar包 // gson的一般使用方法 // class的属性名必须与json字符串中的key大小写完全一致//解析JSONArrayprivate void parseJSONArray(){String jsonArr "[{key1:value1, key2:value2}, {key1:value1, key2:value2}]";Gson gson new …...

网站 关键词 挖掘/推广引流软件

命令怎么用&#xff08;三种方式&#xff09;shutdown --help shutdown --? man shutdown &#xff08;man 就是manual 手册, 指南&#xff09; 服务 service怎么知道服务的名字呢&#xff1f;用这个命令chkconfig&#xff1a; chkconfig --list 会列出所有的服务项 启动服务…...

http wordpress.org/上海网站seo诊断

跳转页面跳到不同的Tab点击整行进入详情页面tab点击兑换记录进入tab兑换记录阻止冒泡click.stop"detailGift()"点击整行进入详情页面tab <el-table:data"tableData"ref"tableDatas"class"view_table"style"width: 100%"…...

做公司网站成本/b2b推广网站

风险管理 风险管理是指如何在项目或者企业一个肯定有风险的环境里把风险可能造成的不良影响减至最低的管理过程。 风险管理当中包括了对风险的量度、评估和应变策略。理想的风险管理&#xff0c;是一连串排好优先次序的过程&#xff0c;使当中的可以引致最大损失及最可能发生的…...

网站开发项目源码/营销平台建设

参考链接&#xff1a; http://www.desktx.com/news/diannaojiqiao/4369.html 1、新建一个文本文档&#xff0c;将下面的代码复制进去&#xff1a; [Version] Signature"$Chicago$" [DefaultInstall] DelRegDeleteMe [DeleteMe] HKCU,"Software\Microsoft\Wind…...

yy怎么一直在模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?拼命加载中/徐州网站设计

hi 给自己放了大概三天的假&#xff0c;没有一点点防备&#xff0c;没有一点点准备&#xff0c;无意的 是不是贤者时间过不去了我不知道啊。。。继续看东西吧 1、MySQL -----运算符和函数----- 字符函数&#xff0c;数值运算符&#xff0c;比较运算等 ----字符函数 --- CONCAT(…...