<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Aaron Ji's blog (Posts about ops)</title><link>https://blog.jiya.net/</link><description></description><atom:link href="https://blog.jiya.net/categories/cat_ops.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:me@jiya.net"&gt;Aaron Ji&lt;/a&gt; </copyright><lastBuildDate>Wed, 19 Feb 2025 06:17:18 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Install Clash as Gateway on AlmaLinux</title><link>https://blog.jiya.net/posts/2022/05/install-clash-as-gateway-on-almalinux.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;p&gt;
这两天本来想升级下 OpenWRT 系统，没想到升级到新版本后有一些问题（后来发现应该是 AdGuardHome 的问题），而且在调教 Clash 配置的时候发现 OpenWRT 非常不友好的不能按照我所想的修改配置文件，即界面修改不能生效，于是决定使用类 RHEL 系统（本文使用 AlmaLinux 配置一下）。
&lt;/p&gt;
&lt;div id="outline-container-org0c9dcc4" class="outline-2"&gt;
&lt;h2 id="org0c9dcc4"&gt;&lt;span class="section-number-2"&gt;1.&lt;/span&gt; Clash 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-1"&gt;
&lt;/div&gt;
&lt;div id="outline-container-orgf4429c1" class="outline-3"&gt;
&lt;h3 id="orgf4429c1"&gt;&lt;span class="section-number-3"&gt;1.1.&lt;/span&gt; 首先从 Clash 首页下载执行文件并放至执行文件目录&lt;/h3&gt;
&lt;/div&gt;
&lt;div id="outline-container-org336a78c" class="outline-3"&gt;
&lt;h3 id="org336a78c"&gt;&lt;span class="section-number-3"&gt;1.2.&lt;/span&gt; 配置启动 &lt;code&gt;service&lt;/code&gt; 文件&lt;/h3&gt;
&lt;div class="outline-text-3" id="text-1-2"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;vi /etc/systemd/system/clash.service
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
文件内容如下所示：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target

[Service]
Type=simple
Restart=always
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/local/bin/clash -d /etc/clash

StandardOutput=file:/var/log/clash/clash.out
StandardError=file:/var/log/clash/clash.err

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-org6e8d8f3" class="outline-3"&gt;
&lt;h3 id="org6e8d8f3"&gt;&lt;span class="section-number-3"&gt;1.3.&lt;/span&gt; 将 Clash 的配置文件放至 &lt;code&gt;/etc/clash&lt;/code&gt; 目录下&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org9c7a651" class="outline-3"&gt;
&lt;h3 id="org9c7a651"&gt;&lt;span class="section-number-3"&gt;1.4.&lt;/span&gt; 配置防火墙&lt;/h3&gt;
&lt;div class="outline-text-3" id="text-1-4"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo firewall-cmd --permanent --direct --add-chain ipv4 nat clash
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 0.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 10.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 127.0.0.0/8 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 169.254.0.0/16 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 172.16.0.0/12 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 192.168.0.0/16 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 224.0.0.0/4 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 1 -d 240.0.0.0/4 -j RETURN
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat clash 2 -p tcp -j REDIRECT --to-ports "7892"
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0 -p tcp -j clash

# 使用 Clash DNS 切非 53 端口时需要，本文使用 AdGuard Home 作为 DNS 服务，故不需要进行如下配置
sudo firewall-cmd --permanent --direct --add-chain ipv4 nat CLASH_DNS
sudo firewall-cmd --permanent --direct --remove-rules ipv4 nat CLASH_DNS
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat CLASH_DNS 1 -p udp -j REDIRECT --to-port 1053
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p udp --dport 53 -j CLASH_DNS
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat CLASH_DNS 1 -p tcp -j REDIRECT --to-port 1053
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp --dport 53 -j CLASH_DNS

 sudo firewall-cmd --reload
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
处理后的 firewall 配置文件（/etc/firewalld/direct.xml）如下所示：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;
&amp;lt;direct&amp;gt;
  &amp;lt;chain ipv="ipv4" table="nat" chain="clash"/&amp;gt;
  &amp;lt;chain ipv="ipv4" table="nat" chain="CLASH_DNS"/&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 0.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 10.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 127.0.0.0/8 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 169.254.0.0/16 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 172.16.0.0/12 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 192.168.0.0/16 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 224.0.0.0/4 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="1"&amp;gt;-d 240.0.0.0/4 -j RETURN&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="clash" priority="2"&amp;gt;-p tcp -j REDIRECT --to-ports 7892&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="PREROUTING" priority="0"&amp;gt;-p tcp -j clash&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="CLASH_DNS" priority="1"&amp;gt;-p udp -j REDIRECT --to-port 1053&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="CLASH_DNS" priority="1"&amp;gt;-p tcp -j REDIRECT --to-port 1053&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="OUTPUT" priority="0"&amp;gt;-p udp --dport 53 -j CLASH_DNS&amp;lt;/rule&amp;gt;
  &amp;lt;rule ipv="ipv4" table="nat" chain="OUTPUT" priority="0"&amp;gt;-p tcp --dport 53 -j CLASH_DNS&amp;lt;/rule&amp;gt;
&amp;lt;/direct&amp;gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-orgbb7c2b3" class="outline-2"&gt;
&lt;h2 id="orgbb7c2b3"&gt;&lt;span class="section-number-2"&gt;2.&lt;/span&gt; AdGuard Home 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-2"&gt;
&lt;p&gt;
附 AdGuard Home &lt;code&gt;service&lt;/code&gt; 文件 &lt;code&gt;/etc/systemd/system/AdGuardHome.service&lt;/code&gt; ：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=AdGuard Home: Network-level blocker
ConditionFileIsExecutable=/opt/AdGuardHome/AdGuardHome

After=syslog.target network-online.target

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStartPre=/bin/mkdir -p /var/log/
# ExecStart=/opt/AdGuardHome/AdGuardHome "-s" "run"
ExecStart=/opt/AdGuardHome/AdGuardHome  -c /etc/AdGuardHome/AdGuardHome.yaml

WorkingDirectory=/opt/AdGuardHome


StandardOutput=file:/var/log/AdGuardHome/AdGuardHome.out
StandardError=file:/var/log/AdGuardHome/AdGuardHome.err

Restart=always

RestartSec=10
EnvironmentFile=-/etc/sysconfig/AdGuardHome

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
防火墙配置：
&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;sudo firewall-cmd --zone=public --add-port=53/udp --permanent
sudo firewall-cmd --zone=public --add-port=53/tcp --permanent
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-org69e4013" class="outline-2"&gt;
&lt;h2 id="org69e4013"&gt;&lt;span class="section-number-2"&gt;3.&lt;/span&gt; v2ray 配置&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-3"&gt;
&lt;p&gt;
附 v2ray &lt;code&gt;service&lt;/code&gt; 配置文件（/etc/systemd/system/v2ray.service）内容：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;[Unit]
Description=V2Ray Service
Documentation=https://www.v2fly.org/
After=network.target nss-lookup.target
StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
User=nobody
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ExecStart=/opt/v2ray/v2ray -config /etc/v2ray/config.json
Restart=on-failure
RestartSec=5s
RestartPreventExitStatus=23

[Install]
WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
本文中的 DNS 结构如下所示：
&lt;/p&gt;

&lt;p&gt;
客户端 -&amp;gt; AdGuard Home -&amp;gt; Clash -&amp;gt; Other DNS
&lt;/p&gt;

&lt;p&gt;
即 AdGuard Home 中的 DNS Upstream 只配置了 Clash 的地址。
&lt;/p&gt;

&lt;p&gt;
部分内容参考自网络。
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>clash</category><guid>https://blog.jiya.net/posts/2022/05/install-clash-as-gateway-on-almalinux.html</guid><pubDate>Mon, 02 May 2022 14:20:00 GMT</pubDate></item><item><title>Install Nextcloud and apps</title><link>https://blog.jiya.net/posts/2022/04/install-nextcloud-and-apps.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;div id="outline-container-orgf3c343e" class="outline-2"&gt;
&lt;h2 id="orgf3c343e"&gt;docker-compose&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orgf3c343e"&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;version: '2'

services:
  db:
    image: mariadb
    restart: always
    ports:
      - 3300:3306
    command: --innodb-read-only-compressed=OFF --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:fpm
    restart: always
    links:
      - db
    volumes:
      - ./app:/var/www/html
      - ./fonts:/usr/share/fonts
    environment:
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

  web:
    image: nginx
    restart: always
    ports:
      - 8081:80
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-orge9c09af" class="outline-2"&gt;
&lt;h2 id="orge9c09af"&gt;Apps&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orge9c09af"&gt;
&lt;/div&gt;
&lt;div id="outline-container-orgdc1c9a5" class="outline-3"&gt;
&lt;h3 id="orgdc1c9a5"&gt;&lt;a href="https://apps.nextcloud.com/apps/files_markdown"&gt;Markdown Editor&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org6f29304" class="outline-3"&gt;
&lt;h3 id="org6f29304"&gt;&lt;a href="https://apps.nextcloud.com/apps/files_texteditor"&gt;Plain text editor&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org21c4fc0" class="outline-3"&gt;
&lt;h3 id="org21c4fc0"&gt;&lt;a href="https://apps.nextcloud.com/apps/drawio"&gt;Draw.io&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org2328cc3" class="outline-3"&gt;
&lt;h3 id="org2328cc3"&gt;&lt;a href="https://apps.nextcloud.com/apps/richdocuments"&gt;Nextcloud Office&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-org10dc06c" class="outline-3"&gt;
&lt;h3 id="org10dc06c"&gt;&lt;a href="https://apps.nextcloud.com/apps/richdocumentscode"&gt;Collabora Online - Built-in CODE Server&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;

&lt;div id="outline-container-orge825c29" class="outline-3"&gt;
&lt;h3 id="orge825c29"&gt;&lt;del&gt;&lt;a href="https://apps.nextcloud.com/apps/onlyoffice"&gt;ONLYOFFICE&lt;/a&gt;&lt;/del&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>nextcloud</category><guid>https://blog.jiya.net/posts/2022/04/install-nextcloud-and-apps.html</guid><pubDate>Fri, 08 Apr 2022 04:10:00 GMT</pubDate></item><item><title>Deploy Jenkins With docker-compose</title><link>https://blog.jiya.net/posts/2022/03/deploy-jenkins-with-docker-compose.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;p&gt;
The docker-compose yaml file as follows:
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;---
version: '3'

services:
  jenkins:
    image: jenkins/jenkins:lts-jdk11
    privileged: true
    user: root
    restart: always
    ports:
      - 50000:50000
      - 8088:8080 # local port is 8088, container port is 8080
    volumes:
      - /data/work/jenkins/jenkins_home:/var/jenkins_home
    container_name: jenkins
    networks:
      jenkins:
        ipv4_address: 172.16.128.2
    environment:
      - TZ=Asia/Shanghai

  centos6:
     image: centos6-i386:20220321
     container_name: centos6-i386
     restart: always
     expose:
      - "22"
     networks:
       jenkins:
          ipv4_address: 172.16.128.6
     command: /bin/bash -c '/usr/sbin/sshd -D &amp;amp;&amp;amp; /bin/bash'
     volumes:
       - /data/work/jenkins/centos6-i386/home/centos:/home/centos

  centos7:
    image: centos7:20220321
    container_name: centos7
    restart: always
    expose:
      - "22"
    networks:
      jenkins:
        ipv4_address: 172.16.128.7
    command: /bin/bash -c '/usr/sbin/sshd -D &amp;amp;&amp;amp; /bin/bash'
    volumes:
      - /data/work/jenkins/centos7/home/centos:/home/centos

networks:
  jenkins:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.16.128.0/24
          gateway: 172.16.128.1
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
Since the slave nodes, &lt;code&gt;centos6&lt;/code&gt; and &lt;code&gt;centos7&lt;/code&gt; container's image is migrated from another host, and some issues occurred during the migration, the solution logged at  &lt;a href="https://blog.jiya.net/posts/2021/04/docker-note.html#migrate-container-from-a-host-to-another-host"&gt;Docker Note&lt;/a&gt; .
&lt;/p&gt;</description><category>jenkins</category><guid>https://blog.jiya.net/posts/2022/03/deploy-jenkins-with-docker-compose.html</guid><pubDate>Mon, 28 Mar 2022 05:27:00 GMT</pubDate></item><item><title>批量删除 jumpserver 节点</title><link>https://blog.jiya.net/posts/2022/03/jumpserver-delete-nodes-in-bulk.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;p&gt;
由于 jumpserver 中删除节点只能一部分一部分的删除，无法进行大量批量删除，分析后发现 jumpserver 中节点相关信息主要存储在以下数据表中：
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;
assets_authbook
&lt;/p&gt;

&lt;p&gt;
assets_asset_nodes
&lt;/p&gt;

&lt;p&gt;
assets_historicalauthbook
&lt;/p&gt;

&lt;p&gt;
ops_adhoc_hosts
&lt;/p&gt;

&lt;p&gt;
ops_commandexecution_hosts
&lt;/p&gt;

&lt;p&gt;
perms_assetpermission_assets
&lt;/p&gt;

&lt;p&gt;
assets_asset
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
因此，若想批量删除节点，则需要删除这些节点中的对应节点的数据。
&lt;/p&gt;

&lt;p&gt;
首先，使用 SQL 命令拼组删除命令（除 &lt;code&gt;assets_asset&lt;/code&gt; 表）：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from assets_asset_nodes where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from ops_commandexecution_hosts where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from assets_authbook where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from assets_asset_nodes where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from assets_historicalauthbook where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from ops_adhoc_hosts where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;CONCAT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="s1"&gt;'delete from perms_assetpermission_assets where asset_id =\'',&lt;/span&gt;
&lt;span class="s1"&gt;                `id`,&lt;/span&gt;
&lt;span class="s1"&gt;                '&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s1"&gt;';'&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;assets_asset&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;like&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'%192.168.199%'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
然后执行得到的 &lt;code&gt;SQL&lt;/code&gt; 语句。
&lt;/p&gt;

&lt;p&gt;
最后再删除 &lt;code&gt;assets_asset&lt;/code&gt; 表中的数据。
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;DELETE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;assets_asset&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;LIKE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'%192.168.199%'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
最后发现 WEB 终端更新的服务器数量还是原来的数量，点刷新没有作用，此时需要修改 &lt;code&gt;assets_node&lt;/code&gt; 表中的参数使数值变化。
&lt;/p&gt;

&lt;p&gt;
此外，还可以使用 JumpServer 服务 API 执行删除节点操作，详见&lt;a href="https://docs.jumpserver.org/zh/master/dev/rest_api/"&gt;JumpServer API&lt;/a&gt;。
&lt;/p&gt;

&lt;p&gt;
参考：
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://blog.csdn.net/madman163/article/details/115579814"&gt;https://blog.csdn.net/madman163/article/details/115579814&lt;/a&gt;
&lt;/p&gt;</description><category>jumperserver</category><guid>https://blog.jiya.net/posts/2022/03/jumpserver-delete-nodes-in-bulk.html</guid><pubDate>Mon, 28 Mar 2022 03:42:00 GMT</pubDate></item><item><title>安装 jumpserver</title><link>https://blog.jiya.net/posts/2021/05/install-jumperserver-on-centos.html</link><dc:creator>Aaron Ji</dc:creator><description>&lt;p&gt;
为了便于后续升级与迁移，使用外部 &lt;code&gt;redis&lt;/code&gt; 及 &lt;code&gt;MySQL&lt;/code&gt; 。另外，根据官方安装文档说明，要求 &lt;code&gt;Redis&lt;/code&gt; 版本要求 &lt;code&gt;6.0&lt;/code&gt; 以上， &lt;code&gt;MySQL&lt;/code&gt; 版本要求 &lt;code&gt;5.7&lt;/code&gt; 以上。本文中使用 &lt;code&gt;MariaDB 10.5&lt;/code&gt; 。
&lt;/p&gt;

&lt;p&gt;
安装 &lt;code&gt;MariaDB&lt;/code&gt; 教程见：&lt;a href="https://downloads.mariadb.org/mariadb/repositories/#distro=CentOS&amp;amp;distro_release=centos7-amd64--centos7&amp;amp;mirror=tuna&amp;amp;version=10.5"&gt;link&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
特别注意 &lt;code&gt;Mariadb&lt;/code&gt; 修改用户密码使用如下方式：
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;ALTER USER 'root'@'localhost' IDENTIFIED BY 'pass';
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;
&lt;code&gt;Redis&lt;/code&gt; 安装教程见：&lt;a href="https://computingforgeeks.com/how-to-install-latest-redis-on-centos-7/"&gt;link&lt;/a&gt;
&lt;/p&gt;


&lt;p&gt;
其余操作步骤参见：&lt;a href="https://www.cnblogs.com/you-men/p/13939724.html"&gt;link&lt;/a&gt;
&lt;/p&gt;

&lt;ul class="org-ul"&gt;
&lt;li&gt;注意使用 &lt;code&gt;nginx&lt;/code&gt; 转发 &lt;code&gt;websocket&lt;/code&gt; 请求的时候会有问题，报 &lt;code&gt;307&lt;/code&gt; 错误（解决方法见下）；&lt;/li&gt;
&lt;li&gt;注意使用 &lt;code&gt;terminal&lt;/code&gt; 登录需要使用 &lt;code&gt;websocket&lt;/code&gt; ，需要特别注意中间代理都需要如下设置。&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
&lt;/pre&gt;&lt;/div&gt;
&lt;div id="outline-container-orgc0e1926" class="outline-2"&gt;
&lt;h2 id="orgc0e1926"&gt;迁移后 &lt;code&gt;koko&lt;/code&gt; 模块报错 &lt;code&gt;register access key failed&lt;/code&gt; 或 &lt;code&gt;注册终端失败退出&lt;/code&gt;&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-orgc0e1926"&gt;
&lt;p&gt;
主要是因为 &lt;code&gt;jumperserver&lt;/code&gt; 其他组件需要通过终端注册注册对应组件用户，默认应该是关闭的，迁移后由于新部署的组件需要重新注册，故而需要重新开启 &lt;code&gt;终端注册&lt;/code&gt; 开关（安全设置 -&amp;gt; 终端注册）。
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id="outline-container-org73bb8d2" class="outline-2"&gt;
&lt;h2 id="org73bb8d2"&gt;2022-03-22 使用 docker 部署&lt;/h2&gt;
&lt;div class="outline-text-2" id="text-org73bb8d2"&gt;
&lt;p&gt;
docker 部署方案可参考&lt;a href="https://docs.jumpserver.org/zh/master/install/migration/"&gt;官方文档&lt;/a&gt;。
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><category>jumperserver</category><guid>https://blog.jiya.net/posts/2021/05/install-jumperserver-on-centos.html</guid><pubDate>Mon, 31 May 2021 09:01:00 GMT</pubDate></item></channel></rss>