「Rancher」- 通过 Helm 部署

问题描述
该笔记将记录:通过 Helm 将 Rancher 部署到 Kubernetes Cluster 的方法以及相关问题的解决办法。
解决方案
第一步、版本选择
当前为 1.22.15 版本集群,查阅 Support matrix/All other Distros 获取支持该集群版本的 Ranhcer 版本;
这里,我们将部署 Rancher 2.6.9 版本,通过 Helm 部署;
第二步、服务部署

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update

helm search repo rancher-stable/
helm pull rancher-stable/rancher –version 2.6.9 # rancher-2.6.9.tgz

helm show values ./rancher-2.6.9.tgz > rancher-2.6.9.helm-values.yaml
vim rancher-2.6.9.helm-values.yaml
… bootstrapPassword:
… hostname:
… ingress:

helm install –namespace cattle-system –create-namespace \
rancher ./rancher-2.6.9.tgz -f rancher-2.6.9.helm-values.yaml

参考文献
Support matrix | SUSE Install/Upgrade Rancher on a Kubernetes Cluster | Rancher Manager[……]

READ MORE

「IT Service Provisioning Platform」- 研发服务提供平台

开源服务提供系统
六款开源CMDB | 6 Open Source CMDB 百度百科/CMDB
itop – ITSM & CMDB OpenSource
http://www.combodo.com/?lang=en https://sourceforge.net/projects/itop
OneCMDB
RapidOSS
ECDB
i-doit
CMDBuild
OpenDevOps
项目:https://github.com/opendevops-cn/opendevops 地址:https://demo.opendevops.cn/login 用户:demo 密码:2ZbFYNv9WibWcR7GB6kcEY
Snipe-IT – Open Source Asset Management System
snipe/snipe-it: A free open source IT asset/license management system
演示站点:https://demo.snipeitapp.com/login / admin / password
Ralph
allegro/ralph: Ralph is the CMDB / Asset Management system for data center and back office hardware.
OpsManage
OpsManage/requirements.txt at v3 · welliamcao/OpsManage
硬件及网络,资源管理
phpIPAM, Open-source IP Address Management
phpIPAM IPAM IP address management software
特性特征:Feature list
NetBox, Infrastructure Resource Modeling
NetBox Documentation [經驗分享] NetBox 安裝記錄與初步使用心得
FIXME ! NetBox 相关调研工作; CENGN/netbox-kubernetes: Repo containing an example set of manifests and docs to deploy Netbox 与 PVE 集成 提供 Prometheus 进行非容器主机的监控;
相关问题
# 哥们别逗了,写个脚本那真不叫运维自动化! http://blog.51cto.com/3060674/1590803

章节列表
「NetBox」- 常见问题处理 「Jump[……]

READ MORE

「IT Asset Management」

开源免费的跳板机系统
Jump host software : linuxadmin The Top 7 Bastion Host Open Source Projects
bastillion-io/Bastillion: Bastillion is a web-based SSH console that centrally manages administrative access to systems. Web-based administration is combined with management and distribution of user’s public SSH keys.
GitHub – jimmy201602/webterminal: ssh rdp vnc telnet sftp bastion/jump web putty xshell terminal jumpserver audit realtime monitor rz/sz 堡垒机 云桌面 linux devops sftp websocket file management rz/sz otp 自动化运维 审计 录像 文件管理 sftp上传 实时监控 录像回放 网页版rz/sz上传下载/动态口令 django
GitHub – aker-gateway/Aker: SSH bastion/jump host/jumpserver
GitHub – akittana/aws-virtual-bastion: A web based terminal for EC2 instances that does not require SSH or any other inbound connections to the instaces. Instead it uses the AWS Systems Manager (SSM) API to run commands (bash or powershell).
GitHub – bastillion-io/Bastillion-EC2: A web-based SSH console to execute commands and manage multiple EC2 instances simultaneously running on Amazon Web Services (AWS).
GitHub – ivanilves/xiringuito: SSH-based “VPN for poors”
GitHub – daradib/sidedoor: SSH connection daemon for Debian/Raspbian/Ubuntu/[……]

READ MORE

「ITAM」- 电脑租赁服务(Computer Rental Service)

问题描述
很多企业开始使用电脑租赁服务,如果租赁划算的话,我们也使用租赁服务(作为个人,借以企业名义,如果允许)。
解决方案
https://www.edianyun.com/[……]

READ MORE

「Jumpserver」- 开源堡垒机

全球首款完全开源的堡垒机,是符合4A的专业运维审计系统,支持身份验证、账号管理、授权控制、安全审计。
相关链接
GitHub/jumpserver/jumpserver Jumpserver/Docs/Jumpserver文档

章节列表
「Jumpserver」- 关于日志存储 「Jumpserver」- 清理 SSH 公钥 「Jumpserver」- 限制 System users 访问部分资产 「Kubernetes」- 部署 JumpServer 服务 「Jumpserver」- 常见问题处理 「JumpServer」- 已知错误及问题[……]

READ MORE

「Jumpserver」- 安装与升级

安装服务
服务部署
官方文档:JumpServer 文档 / 安装文档 默认密码:admin / admin (快速入门 – JumpServer 文档)
反向代理
1)参考 JumpServer/master/ 反向代理 文档; 2)对于其他版本,请参考对应版本的反向代理文档;
服务升级
关于升级的注意事项
1)如下是我们对升级过程的经验总结,并不具备普适性; 2)关于其他需要注意的问题,建议参考官方文档;
升级过程需要注意的具体问题: 0)升级一定要备份原有数据库,或者直接克隆原有虚拟机以备份。当升级失败时(或新版本存在问题),能够进行回滚; 1)在操作升级事宜前,务必认真详细阅读文档,并理解内容后再开始; 2)不建议复制粘贴来执行全部命令,建议分步执行命令; 3)官方文档不一定适用于特定环境,需要根据需求进行调整;
关于升级过程的记录
我们将不再记录详细的升级过程,升级过程的具体过程建议参考官方文档; 但是,我们将记录升级过程中遇到的问题,以及相关的问题解决办法;
1.4.6-2 to 1.5.6
我们已删除「1.4.6 升级 1.5.6」笔记,原因如下: 1)我们的日常工作不会再涉及 1.4.6 到 1.5.6 的升级操作; 2)并且相关的程序资源已经缺失,导致该升级流程无法成功执行;
1.4.9 to 1.5.7
我们已删除「1.4.9 升级 1.5.7」笔记,原因如下: 1)我们的日常工作不会再涉及 1.4.9 到 1.5.7 的升级操作; 2)并且相关的程序资源已经缺失,导致该升级流程无法成功执行;
当时(04/02/2020)最新为 1.5.7-2 版本,升级过程参考官方 1.4.8-1.4.10 升级到最新版本 文档;
1)升级一定要备份原有数据库,或者直接克隆原有虚拟机以备份。当升级失败,或者新版本存在问题时,可以进行回滚操作; 2)注意复制官方文档,保留部署及升级方法,以备日后使用;
1.5.6 to 2.4.4(01/21/2023)
我们已删除「1.5.6 升级 2.4.4」笔记,原因如下: 1)我们的日常工作不会再涉及 1.4.9 到 1.5.7 的升级操作; 2)并且相关的程序资源已经缺失,导致该升级流程无法成功执行;
当时(2020-12-26),我们需要将 Jumpserver 从 v1.5.6 升级到 v2.4.4 版本。但是,我们原本采用的部署方式为“手动部署”,由于组件较多,升级繁琐。所以此次升级将使用容器的方式部署 v2.4.4 版本;
当时的大致过程如下:

# 数据库备份
systemctl stop mysql.service
rsync -a /var/lib/mysql/[……]

READ MORE

「JumpServer」- 更新 2.4.4 到 2.8.2 版本

问题描述
今天(03/27/2021)原本要做别的事情,但是突然发现 JumpServer 发布新版本。并且,我们还发现优化资产树节点排序问题(这是我们比较关心的问题,2.4.4 的资产排序方式“似乎没有规律”,导致资产节点显示有些“不整齐”)。
因此,我们决定对我们的 JumpServer 服务进行升级,升级到最新的版本(2.8.2)。也许这太鲁莽,但是换个角度看:(1)做好数据备份以后,即使升级失败,我们也能够进行回滚;(2)鉴于 JumpServer 的配置不会经常变动,哪怕回滚导致数据遗失也不会遗失重要数据,对于我们来说是在可接受范围内的。(3)我们最担心的问题是,由于长时间不升级,最后必将面对“大幅度的跨版本升级”,那时候才是真正的灾难(很可能无法升级:-)。所以,权衡之后,积极主动地升级才是适合我们的最好策略,而且我们也能够接受升级失败带来的后果。
该笔记将记录:将 JumpServer 从 2.4.4 升级 2.8.2 版本的过程,以及常见问题出来。
解决方案
每个人的部署方式和配置信息都不相同,我们创建该笔记是仅是为他人提供经验与参考。我们记录我们的升级过程,以及常见问题的解决方案。
另外,此次升级的变动还是很大的,比如:从 2.6 后,统一企业版本与开源版本安装方式,企业版和社区版可以无缝切换。今后只会维护这种安装方式(通过 jmsctl.sh 管理),其他安装方式不再提供技术支持。所以,此次升级需要完成的工作不像以往那样直接。
我们的原始部署信息
部署方式:我们的 JumpServer 2.4.4 的部署方式为 Docker 运行,使用 jms_all 镜像。这样,便于管理。
数据目录:数据目录(/srv/jumpserver/data、/srv/jumpserver/mysql)是挂载到容器外的。
第一步、数据库备份(重要)

docker container stop jumpserver_2.4.4
rsync -avz /srv/jumpserver/data /srv/jumpserver/.backup/2.4.4/data
rsync -avz /srv/jumpserver/mysql /srv/jumpserver/.backup/2.4.4/mysql

至此,我们已经创建数据备份,那么之后我们便可大胆升级。不管最终结果如何,不管最终怎么失败,我们都能够利用备份数据进行还原。当然,要小心误操作而把备份数据删除。
第二步、导出数据库

docker container start jumpserver_2.4.4

docker container exec -it jumpserver_2.4.4 \
ba[……]

READ MORE

「JumpServer」- 升级,最新版本,2.6.0+

问题描述
该笔记将记录:将 JumpServer 2.6.0+ 升级到 latest(最新版本)的方法,以及相关问题的解决方案。
解决方案
从 2.6 后,统一企业版本与开源版本安装方式,企业版和社区版可以无缝切换。今后只会维护这种安装方式(通过 jmsctl.sh 管理),其他安装方式不再提供技术支持。所以,此次升级不像以往那样复杂,非常简单。
此外根据官方文档,升级过程会自动进行数据库备份,因此我们无需再单独进行数据备份(不过我们还是进行数据备份)。而且为了备份和管理的简单化,我们未使用外置数据库,所以备份过程也很简单,直接复制数据目录即可。
要求说明
jumpserver 版本 >= v2.6.0 jumpserver 版本 < v2.6.0 的请先参考迁移文档迁移到最新版本
补充说明
该文档最初记录 从 2.8.2 升级到 2.12.0 的方法,后来由于 2.6.0+ 升级方式的变更(更加简单),因此 2.6 之后的版本升级过程都将记录到该文档中。
2.8.2⇒2.12.0

# cd /opt
# yum -y install wget
# wget https://github.com/jumpserver/installer/releases/download/v2.12.0/jumpserver-installer-v2.12.0.tar.gz
# tar -xf jumpserver-installer-v2.12.0.tar.gz
# cd jumpserver-installer-v2.12.0

# ./jmsctl.sh upgrade
是否将版本更新至 v2.12.0 ? (y/n) (默认为 n): y

1. 检查配置变更
配置文件位置: /opt/jumpserver/config
/opt/jumpserver/config/config.txt [ √ ]
/opt/jumpserver/config/core/config.yml [ √ ]
/opt/jumpserver/config/koko/config.yml [ √ ]
/opt/jumpserver/config/mariadb/mariadb.cnf [ √ ]
/opt/jumpserver/config/mysql/my.cnf [ √ ]
/opt/jumpserver/config/nginx/lb_http_server.conf [ √ ]
/opt/jumpserver/config/nginx/lb_rdp_server.conf [ √ ]
/opt/jumpserver/config/nginx/lb_ssh_server.conf [ √[……]

READ MORE

「Kubernetes」- 部署 JumpServer 服务

问题描述
该笔记将记录:在 Kuberntes 中,部署 JumpServer 的方法,以及相关问题的解决方案。
解决方案
参考 Jumpserver 文档 手册,以获取官方的详细说明。

# helm repo add jumpserver https://jumpserver.github.io/helm-charts
# helm repo update

# helm pull jumpserver/jumpserver # jumpserver-2.23.2.tgz, JumpServer v2.23.2
# helm show values ./jumpserver-2.23.2.tgz > jumpserver-2.23.2.helm-values.yaml
… 修改存储类:global.storageClassName: <YOUR-STORAGE-CLASS-NAME>
… 修改 MySQL 地址:externalDatabase
… 修改 Redis 地址:externalRedis
… 修改 Ingress 信息:ingress
… 修改 secretKey 与 bootstrapToken 信息:core.config

# helm –namespace jumpserver \
install jumpserver ./jumpserver-2.23.2.tgz \
-f jumpserver-2.23.2.helm-values.yaml \
–create-namespace

# helm –namespace jumpserver \
upgrade jumpserver ./jumpserver-2.23.2.tgz \
-f jumpserver-2.23.2.helm-values.yaml

迁移到 Kubernetes 环境
如果需要将 JumpServer 迁移到 Kubernetes 环境,需要如下操作: 1)如果使用 JumpServer 内置 MySQL 服务,则需先部署 MySQL 服务,并将[……]

READ MORE

「Jumpserver」- 关于日志存储

内容简述
在 Jumpserver 中,有登陆日志、FTP日志、操作日志、改密日志、批量命令,还有Windows操作录屏。这些日志都会占用磁盘空间,数据库记录。
本部分内容与 Jumpserver 日志存储有关,汇总在使用过程中遇到的日志相关问题。
环境概述

属性
参数

操作系统
CentOS Linux release 7.4.1708 (Core)

软件版本
Jumpserver Version 1.4.9-2 GPLv2.

问题:调整日志存储目录
问题描述
在某天里,服务突然无法正常工作,浏览器界面提示联系管理员。我们便SSH到部署Jumpserver主机中,开始排查问题。
问题原因
当进入服务器后,发现磁盘空间被耗尽。其中占用磁盘空间最大的目录为:

/config/guacamole/record
/opt/coco/data/replays
/opt/jumpserver/data/media/replay

在查看内容后,发现这些目录用于存储操作日志、录像等内容。
在设置中,虽然可以修改存储类型(比如使用OSS、S3存储),但是无法修改在服务器中存储路径。所以我们只能另辟蹊径,将这些目录挂载到存储中,然后做好监控。
解决办法
使用绑定挂载(mount –bind),将日志目录挂载到空间足够的磁盘上。
第一步、虚拟机添加磁盘 添加磁盘,创建文件系统,挂载,开机自动挂载,创建目录(详细过程略过)
第二步、使用绑定挂载

################################################################################
# 由于Jumpserver的日志不支持写入其他目录
################################################################################
# /dev/mapper/jumpserver-logs: UUID=”fbaa7478-7181-4833-ab04-f53f95012a22″ TYPE=”ext4″
UUID=”fbaa7478-7181-4833-ab04-f53f95012a22″ /srv/logs ext4 defaults 0 0

/srv/logs/config-guacamole-record /config/guacamole/record none defaul[……]

READ MORE

「Jumpserver」- 常见问题处理

调整 SFTP 默认目录
在 1.4.9 下,调整 /opt/coco/config.yml 配置的 SFTP_ROOT 参数。(在官方群里收到的反馈)
该主机没有授权登录用户
web终端 登陆windows server2016报错 “该主机没有授权登录用户” · Issue #2119 · jumpserver/jumpserver · GitHub
解决方法:需要将“账户密码”分配给“权限规则”(Perms / Asset Permission)

章节列表
「Jumpserver」- 限制 System users 访问部分资产 「Jumpserver」- 通过 SSH 连接 Jumpserver 资产 「Jumpserver」- 清理 SSH 公钥[……]

READ MORE

「Jumpserver」- 通过 SSH 连接 Jumpserver 资产

问题描述
在通常情况下,我们会通过 Web 界面访问资产、执行命令,以进行服务器管理。
但是,有时候我们也需要通过 SSH 客户端连接服务器。Jumpserver 提供对此的支持。
该笔记将记录:在命令行中,如何使用 SSH 客户端连接 Jumpserver 资产。
解决方案
在部署 Jumpserver 服务时,该服务除了使用 80/443 端口外,还使用 2222 端口,而 2222 端口便是解决该问题的关键。
如下为操作过程:

# ssh -p 2222 k4nz@jumpserver.example.com ————————- k4nz 为 Jumpserver 用户;jumpserver.example.com 为 Jumpserver 服务所在的主机
k4nz@jumpserver.example.com’s password: ————————— 输入 k4nz 用户的密码(该用户是 Jumpserver 用户,所以密码也是 Jumpserver 的用户密码)

k4nz, 欢迎使用JumpServer开源堡垒机系统

1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
3) 输入 p 进行显示您有权限的主机.
4) 输入 g 进行显示您有权限的节点.
5) 输入 d 进行显示您有权限的数据库.
6) 输入 k 进行显示您有权限的Kubernetes.
7) 输入 r 进行刷新最新的机器和节点信息.
8) 输入 h 进行显示帮助.
9) 输入 q 进行退出.
Opt> 172.16.37.97 ———————————————— 输入 IP 地址,以选择我们要登录的主机
ID | 名称 | 用户名
+——-+———————-+————————+
1 | developer | developer[……]

READ MORE

「Jumpserver」- 限制 System users 访问部分资产

问题描述
我们需要限制某个 System user 只能访问特定资产,比如用户 developer 只能访问 DEVELOPMENT 节点下的资产。
该笔记将记录:在 Jumpserver 中,如何限制系统用户(System user)只能访问特定资产,以及需要注意的问题。
解决方案
Jumpserver Version v2.4.4 GPLv2
第一步、创建系统用户(System user)
目的:创建用于管理资产的系统用户
操作:在 System users 中,创建用户即可,这里不再赘述。
注意:当创建用户结束后,在 System users 中,用户的 Assets 字段为零,表示当前用户不会被推送到任何资产。
第二步、绑定系统用户与资产
目的:设置将被推送该系统用户的资产,即该用户仅被推送到特定资产。
操作:在 System users 中,点击用户名,进入用户详细页面,并在 Asset list 页面中,添加需要推送该 System user 的资产。
注意:此时执行推送操作,在推送用户时,该 System user 将仅被推送到这些资产。
第三步、授予权限(重要)
目的:授予 User 使用 System User 访问 Assset 的权限。
操作:在 Permissions/ Asset permissions 中,授予用户(User)访问资产的权限。
注意:但是,在权限设置页面的 Asset 字段中中,务必要保证在 Nodes 中的资产都是被推送 System user 的资产,否则该资产会被自动追加到 System user 的 Asset list 中(即 System user 的 Assets 会增多)。
补充说明
因此,我们在创建资产权限时,System user 一定是存于与资产中的,否则 System user 会被增加那些不被它管理的资产。
参考文学
JumpServer 文档(虽然我们没有找到,但是我们坚信在文档中存在)[……]

READ MORE

「JumpServer」- 已知错误及问题

连接性测试、推送用户失败,此时日志输出「……………」信息
Core 常见问题 – JumpServer 文档
问题描述
在将推送用户到系统,或者进行资产连接性测试时,日志窗口显示如下消息:

……………………………………………………………………..
……………………………………………………………………..
……………………………………………………………………..

解决方法

cd /opt/jumpserver
source /opt/py3/bin/activate

./jms stop

ps aux | grep py3 | awk ‘{print $2}’ | xargs kill -9
rm -rf tmp/*.pid

./jms start -d

{“name”:[“名称重复”]}
问题描述
在启动 koko 服务时,产生如下错误

2020-04-02 16:09:54 [ERRO] POST http://127.0.0.1:8080/api/v2/terminal/terminal-registrations/ failed, get code: 400, {“name”:[“名称重复”]}
2020-04-02 16:09:54 [ERRO] register access key failed

环境信息
JumpServer 1.4.9 升级 1.5.7-2 版本
解决方案
经过社区群咨询,我们得到官方群的帮助:进入 Jumpserver 网页 => 会话管理 => 终端管理 => 删除所有终端[……]

READ MORE

「NetBox」- 基础设施资源管理

NetBox 是一个基础设施资源建模 (IRM) 应用程序,旨在支持网络自动化。 NetBox 最初由 DigitalOcean 的网络工程团队构思,专为满足网络和基础设施工程师的需求而开发。[……]

READ MORE

「NetBox」- 安装与升级

问题描述
该笔记将记录:与 NetBox 安装及升级相关的内容,以及相关问题的解决办法;
解决方案
鉴于 Kubernetes 盛行,我们优先考虑在 Kubernetes Cluster 中部署服务。如果后面有机会在其他类型环境部署,我们将进行相关笔记记录。
on Kubernetes
bootc/netbox-chart: A Helm chart for NetBox
经过如下系列查找,我们找到通过 Helm 部署 NetBox 的方法: 1)Installing NetBox – NetBox Documentation 2)NetBox Community 3)netbox-community/netbox-docker: Docker Image of NetBox 4)Home · netbox-community/netbox-docker Wiki 5)Deployment · netbox-community/netbox-docker Wiki 6)bootc/netbox-chart: A Helm chart for NetBox
当前(07/24/2022)最新版本:NetBox v3.2.7

# helm repo add bootc https://charts.boo.tc
# helm repo update

# helm pull bootc/netbox # CHART 4.1.0, APP v3.2.6
# helm show values ./netbox-4.1.0.tgz > netbox-4.1.0.helm-values.yaml

# vim netbox-4.1.0.helm-values.yaml
…(1)PostgreSQL: 10+
…(2)Redis: tasksRedis and cachingRedis
…(3)StorageClass:
…(4)Ingress:

# helm –namespace infra-netbox \
install netbox ./netbox-4.1.0.tgz \
-f netbox-4.1.0.helm-values.yaml \
–create-namespace

# he[……]

READ MORE

「NetBox」- 常见问题处理

henyxia/proxmox2netbox: Promox information exporter[……]

READ MORE

「iTop」- ITSM & CMDB OpenSource

Adding a new field to the Server class [iTop Documentation]
官网:http://www.combodo.com/?lang=en 源码:https://sourceforge.net/projects/itop iTop Hub:https://www.itophub.io/register[……]

READ MORE

「iTop」- 常用术语表

问题描述
该笔记将记录:在 iTop 中,常用的术语。
Datacenter Management Module
Datacenter Management Module
Rack
可以理解为“机柜”,用于存放各种硬件设备,比如服务器、硬盘(存储)、其他电子设备等等。以“U”为单位。
Enclosure
有点像“配电箱”,也是有门、侧板,里面可能有各板、风扇及其他功能。这东西挂到「Rack」内部,或者嵌到墙上。
Advanced Storage Management Module
Advanced Storage Management Module
SAN Switch
是一个网络交换机,与在存储网络中的光纤通道协议兼容。
Storage System
描述了可以连接到SAN或者以太网的任何存储系统。由「Storage System」管理的存储逻辑单元是「Logical Volume」。[……]

READ MORE

「iTop」- 安装 2.6.1 版本

硬件要求
An all in one server, Ticket created per month < 200, Console Users < 20, CMDB: CIs < 50k CPU: 2vCPU, Memory: 4Gb, Disk for MySQL 10Gb
部署安装
软件环境
MySQL,5.6.0
PHP,5.6 – 7.3(因为代码用到了 finally 关键字),我们使用 PHP 7.2 版本;相关 PHP 扩展,在安装页面中,根据提示安装即可。

yum install -y php72.x86_64 php72-php-bcmath.x86_64 php72-php-cli.x86_64 \
php72-php-common.x86_64 php72-php-fpm.x86_64 php72-php-gd.x86_64 \
php72-php-json.x86_64 php72-php-ldap.x86_64 php72-php-mbstring.x86_64 \
php72-php-mysqlnd.x86_64 php72-php-pdo.x86_64 php72-php-pecl-zip.x86_64 \
php72-php-soap.x86_64 php72-php-xml.x86_64 php72-runtime.x86_64

yum install -y graphviz.x86_64

Nginx,用作反向代理
最后,还要配置一个定时任务,安装最后一步有个「Manual instructions for Tickets Management」链接。
服务部署
参考 https://www.itophub.io/wiki/page?id=2_6_0:install:start 文档。
站点迁移
第一步、环境搭建
1)在目标服务器搭建相同的环境:MySQL,PHP,Nginx 服务; 2)安装相应 PHP 扩展;
第二步、迁移数据库
1)停止站点访问,禁止写入数据; 2)数据库迁移到目标服务器;
第三步、站点源码迁移
1)源码迁移到目标服务器;
第四步、定时任务迁移
4)定时任务迁移到目标服务器
第五步、收尾工作
1)检查现有站点是否迁移成功; 2)清理原站点中的数据;
升级 2.6.1 到 2.7 版本
Upgrading iTop [iTop Documentation] how to add super privileges to mysql database? – Sta[……]

READ MORE

「IT Asset Management」- 资产管理

如何安装OCSNG及GLPI – YTYZX有图有真相的百科 底层使用免费软件OCSNG(Open Computer and Software Inventory Next Generation)作为资产配置信息扫描和采集软件,上层使用GLPI(Gestionnaire libre de parc informatique)作为IT服务支持管理流程平台
接入阿里云
阿里云开放平台 OpenAPI 开发者门户/SDK 中心[……]

READ MORE

「MQ and TQ」

消息队列
Message Queues: Comparing Beanstalkd, IronMQ and Amazon SQS
任务队列
Celery
它是一个简单、灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。但它不是一个服务。
Wikipedia/Celery (software) Celery 框架学习笔记
任务调度
Quartz、jiacrontab、Cronicle、XXL-JOB、
Why not use Cron in production Why you shouldn’t use “Cron Jobs” Why crontab scripts are not working? Is it possible to run a cron job in a web application?
Best Practices for Scheduling Jobs and Administrative Tasks Best way to run scheduled tasks Reasons for using Elixir instead of cron
# Elastic-Job
GitHub/elasticjob/elastic-job-lite[……]

READ MORE

「队列」- 概念及术语

RabbitMQ and ActiveMQ RabbitMQ and ActiveMQ running on the same machine 这两个还不能在同一台机器上运行,因为他们都使用5672作为broker的端口。
任务队列 与 消息队列
任务队列,消息队列和rpc的区别是什么? Message Queue vs Task Queue difference 任务队列与消息队列的区别
第一此听说 Celery 的时候,我一直以为它和 RabbitMQ 是类似的东西。
但是用法也不一样,里面有 Broker、Worker、Client 等等概念,还分布式。
后来才发现是我们没有弄明白「任务队列」和「消息队列」这二者之间的区别。
「RabbitMQ」是一个消息队列。它接收消息并传递消息。
「Celery」是一个任务队列。它接收任务及其相关数据,运行它们并传递结果。「Celery」是一个队列“包装器”或者“框架”,它隐藏了必须管理底层AMQP机制/架构的复杂性,这些机制/架构直接与RabbitMQ一起运行。
所以才会说,「Celery」是一个任务队列,而「RabbitMQ」是一个消息队列。
「任务队列」包含「生产者」、「消费者」、「消息存储介质」及「其内部逻辑」。「消息存储介质」是由消息中间件服务提供,这个中间件就是「消息队列」。[……]

READ MORE

「ActiveMQ」- 安装及启动

环境要求
Java
安装服务

#!/bin/sh

cd /usr/local

wget https://archive.apache.org/dist/activemq/5.15.0/apache-activemq-5.15.0-bin.zip

tar -xzf apache-activemq-5.15.0-bin.zip

启动服务

#!/bin/sh

/usr/local/apache-activemq-5.15.0/bin/activemq start

# 查看状态
/usr/local/apache-activemq-5.15.0/bin/activemq status

相关链接
Install Apache ActiveMQ 5.8.0 on CentOS, Redhat and Fedora linux下activityMQ安装 Using ActiveMQ > Getting Started
参考文献
ActiveMQ 5 Documentation[……]

READ MORE

「Beanstalkd」

管理工具
Aurora
GitHub/xuri/aurora
phpBeanstalkdAdmin
GitHub/mnapoli/phpBeanstalkdAdmin
Beanstalk console
GitHub/ptrofimov/beanstalk_console
相关连接
访问官方主页
访问GitHub项目主页
这个官方手册啊……参考「protocol.txt」文件[……]

READ MORE

「Beanstalkd」- 概念及术语

作业的生命周期
Producer:一个程序,负责向队列中添加任务;
Worker:一个程序,负责完成队列中的任务;
一个作业有四种状态:

“ready” – 进入队列的初时状态
“reserved” – 已经被Worker接收
“delayed” – 延迟执行
“buried” – 使用bury将作业设置成buried状态,处于该状态的作业不会再执行,直到使用kick命令将其剔除。

下面是一个简单的生命周期

put reserve delete
———> [READY] ————> [RESERVED] ———-> *poof*

(1)Producer使用put命令在Beanstalkd中创建任务,此时作业出于“ready”状态。
(2)作业会一直存在于队列中,并处于“ready”状态,等待Worker的出现;
(3)此时Worker出现,向Beanstalkd发送reserver命令
(4)Beanstalkd取出当前作业的信息,将信息返回给Worker,然后Beanstalkd将作业标记为“reserve”状态。
(5)Worker开始处理作业……
(6)当Worker将作业处理完成,向Beanstalkd发送delete命令,请求删除已经完成的作业。
(7)收到delete请求后,Beanstalkd将作业删除。
参考文献
参考「protocol.txt」文件[……]

READ MORE

「RabbitMQ」

参考文献
Wikipedia/RabbitMQ rabbitmq-zabbix

章节列表
「RabbitMQ」- 管理与配置 「RabbitMQ」- 重启后配置丢失 「RabbitMQ」- 安装[……]

READ MORE

「RabbitMQ」- 安装

安装步骤概览
1)安装 Erlang 语言环境; 2)安装 RabbitMQ 服务;
CentOS 7.4 with RabbitMQ 3.7.10
# 06/10/2019

#!/bin/sh

rpm –import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

cat > /etc/yum.repos.d/rabbitmq.repo <<EOF
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

yum makecache

yum install -y rabbitmq-server-3.7.10

CentOS 7.4 with RabbitMQ 3.6.15
# 03/31/2020

#!/bin/sh

rpm –import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

cat > /etc/yum.repos.d/rabbitmq.repo <<EOF
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.6.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

yum makecache

yum install -y rabbitmq-server-3.6.15

参考文献
Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE) 在linux下安装配置rabbitMQ详细教程 How to Install RabbitMQ on CentOS 7[……]

READ MORE

「RabbitMQ」- 管理与配置

查看版本号
Verify version of rabbitmq

# rabbitmqctl status | grep ‘”RabbitMQ”‘
{rabbit,”RabbitMQ”,”3.6.15″},

启用管理后台
Management Plugin
1)启用 rabbitmq_management 插件:rabbitmq-plugins enable rabbitmq_management 2)为用户授权,以允许登录管理后台:
重置用户
How to reset user for rabbitmq management
我们需要重置 RabbitMQ 用户密码。

rabbitmqctl add_user “your username” “0vAvjCGq9eWziKWLOXS89nTY”
rabbitmqctl set_user_tags “your username” administrator
rabbitmqctl set_permissions -p / “your username” “.*” “.*” “.*”[……]

READ MORE

「RabbitMQ」- 重启后配置丢失

问题描述
在重启RabbitMQ之后,数据丢失,用户丢失。
问题原因
在迁移RabbitMQ服务时,对主机名进行修改,而修改主机名会导致数据存储路径发生变化。
细节描述: (1)在CentOS中(其他发行版类似),RabbitMQ,数据保存在中/var/lib/rabbitmq/mnesia/中,数据目录以主机名有关。 (2)在修改主机名后,它会找对应的目录(自动创建),而不会再读取以原主机名定义的路径。 (3)而在新目录中不存在数据,导致”配置丢失“现象。
解决办法
将主机名还原(改回去)。在实践过程中,避免修改主机名。
在正常情况下,我们应该修改主机名,然后调整RabbitMQ配置。但是在实践过程中,避免修改主机名。虽然主机名不规范,但也没有带来极端问题,没有必要为了主机名的美观而调整服务。
参考文献
RabbitMQ: users disappear / settings gone after reboot / restart[……]

READ MORE