Archives : February-2021

问题描述
Grape,是 Groovy 的依赖管理工具,可以让我们快速添加 Maven 依赖,简化脚本的编写。
该笔记将记录:在 Groovy 中,如何使用 Grape 管理依赖,以及常见问题处理。
解决方法
在代码中,引入依赖:

@Grab(group=’org.springframework’, module=’spring-orm’, version=’3.2.5.RELEASE’)
import org.springframework.jdbc.core.JdbcTemplate

// 或者,使用简写
@Grab(‘org.springfram[……]

Read more

问题描述
GitHub Actions 是 GitHub 的持续集成服务,类似与 Jenkins、Travis CI、GOCD 等等工具,都是为了自动化完成,于2018年10月推出,正式版于 2019 年 11 月正式推出。
该笔记将记录:使用 GitHub Actions 服务的方法,以及常见问题处理。
解决方案
快速入门,参考文档:Introduction to GitHub Actions – GitHub Docs(该文档足够用于快速入门) 全部指令,参考官方:[[https:/docs.github.com/en/enterprise-server@2.22[……]

Read more

安装 Zsh 程序

# Debian GNU/Linux 10 (buster)
apt-get install zsh

使用 Oh My Zsh 框架(主题工具)
ohmyzsh/ohmyzsh: 🙃 A delightful community-driven (with 1700+ contributors) framework for managing your zsh configuration.
Oh My Zsh,让我们的终端五彩斑斓(然而,我们依旧使用 Bash,只是想体验一下)。通过 OMZ 可以扩展 zsh 功能,增强 zsh 体验。[……]

Read more

注意事项
如果编译 Emacs 只是为了体验新版本,建议使用 AppImage 程序,参考 Get latest version (Emacs) 笔记。
GNU Emacs 27.1 on Debian GNU/Linux 10 (buster)
Emacs-27.1
GNU Emacs 25.1 on Debian 8
BLFS/Emacs-25.1-rc2
第一步、源码下载
镜像服务器地址列表:https://www.gnu.org/prep/ftp 清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/e[……]

Read more

官网地址:https://www.wps.com/linux 下载地址:http://wps-community.org/downloads
使用问题记录
# 11/25/2020 WPS 11.1.0.9719
打开 XLS 的速度比较慢。
# 01/26/2021 WPS 11.1.0.10161
使用 deb 安装,默认安装目录:/opt/kingsoft/wps-office/
每次新打开 XLS 的速度比较慢,并且在这个过程中,无法关闭 WPS 程序。如果文档已经打开,关闭文档,再打开文档,速度就很快。我们无法解决该问题,只能寻找替代方案。目前(0[……]

Read more

Remmina,远程桌面客户端,用 GTK+ 编写,旨在帮助那些需要使用大量远程计算机的人。支持多种网络协议,目前支持 RDP,VNC,SPICE,NX,XDMCP,SSH,EXEC 协议。
安装方法

apt-get install -y remmina

常见问题汇总
Cannot create an item in a locked collection
Not working on linux #47 ArchWiki/GNOME/Keyring
问题描述: 在 Remmina 中,无法保存密码。从命令行中启动后,终端输出:

M[……]

Read more

问题描述
我们需要「视频管理系统」来管理我们下载的电影,作为自建视频网站,用于日常的视频播放、观影休闲。(我们没有选用家庭影院方案,因为我们希望在电脑上可以直接通过网页打开播放。基于 Web 的视频管理系统是最贴近我们需求的工具)
因此,我们创建该笔记,用来整理部分“比较好用的”(能够满足我们需求的)视频管理系统。
解决方案
最开始我们想使用国外的视频管理系统,但是后来经过查找,还是国内的比较好。因为国内的系统集成多种采集插件: 苹果 cms 官方蓝奏网盘(适合萌新) https://www.lanzous.com/u/magicblack 飞飞 cms 官网 htt[……]

Read more

问题描述
我们使用 GitLab CI/CD 实践自动化,有时我们需要在远程主机执行部署命令。
该笔记将记录:在 GitLab CI/CD 中,如何在远程主机中执行命令。
解决方案
使用 GitLab Runner / SSH Executor 功能。
第一步、注册 SSH Execurtor 执行器

# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=42 revision=ac8e767a vers[……]

Read more

插件介绍
此插件是一个构建触发器(Build Trigger),允许在 GitLab 中发生推送代码或创建合并请求时,触发 Jenkins 来执行构建任务。
插件站点:https://plugins.jenkins.io/gitlab-plugin
安装插件
Manage Jenkins => Manage Plugins => Available => GitLab Plugin
使用插件
该插件以作业为单位进行配置,所以以创建 Job 开始: 1)在 Jenkins 中,创建 Freestyle project 类型 Job; 2)在[……]

Read more

在Jenkins的Pipeline中,包含「内建文档」和「片段生成器」,用于帮助开发Pipeline脚本,「内建文档」和「片段生成器」与Jenkins的版本相关。
这里介绍一些其他的工具。
Blue Ocean Editor
-「Blue Ocean Pipeline Editor」 Jenkins中内置了一个Pipeline的编辑器,Blue Ocean Pipeline Editor,图形化操作,所见即所得,用于创建Pipeline脚本,并能提交到SCM仓库中。
Command-line Pipeline Linter
命令行的Jenkinfile的lint[……]

Read more

该部分笔记整理:在 Jenkins Pipeline 中会用到的某些插件,用于在 Pipeline 中的特定问题和特定场景。
关于该部分笔记的内容
该部分笔记只整理 Jenkins Pipeline 相关的内容,而与 Apache Groovy 有关的内容、编程实现将不会整理到该部分中。如下说明:
1)对于连接数据库,Jenkins Pipeline 没有提供(成熟的、可用的)插件或者方法,我们只能使用 Groovy 进行数据库的连接 该部分将记录 Jenkins Pipeline 连接数据库存在的问题和解决办法、以及简单示例,但是数据库连接、更多的代码编程实践(比如指定连[……]

Read more

问题描述
Jenkins Pipeline,更像“胶水”,将很多脚本与工具粘合在一起,实现自动化任务,而它本身并没有提供特定功能。
执行 Shell 命令或者脚本是个非常常见的任务。该笔记将记录在 Jenkins Pipeline 中执行 Shell 的方法。
注意,除了 Shell 脚本,Jenkins 还能执行 bat、ps 等等,我们这里以 Shell 为例,更多内容建议参考官方文档。
解决方法
Pipeline: Nodes and Processes
安装 Pipeline: Nodes and Processes 插件
插件地址:htt[……]

Read more

问题描述
在我们项目中,存在数据目录,在程序运行之前,这些目录为空目录。当提交到 Git 仓库时,这些空目录会被忽略。
但是,我们希望保存这些空目录,以体现项目目录结构。
该笔记将记录:在 git 中,如何保留空目录。
解决方案
在空目录中创建 .gitignore 文件,并填入如下内容:

# Ignore everything in this directory
*
# Except this file
!.gitignore

或者,在空目录中创建 .placeholder 文件,在根目录的 .gitignore 填入如下内容:[……]

Read more

CMDB – Configuration Management Database
配置管理数据库。用于存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转,发挥配置信息的价值,同时依赖于相关流程并保证数据的准确性。
在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。
70%~80%的IT相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化[……]

Read more

本文记录升级 Jumpserver 1.4.6-2 到最新版本(03/14/2020 Version 1.5.6-2 GPLv2)的过程,并记录升级期间可能出现的问题。本次升级过程参考 更新升级/1.4.5-1.4.7 升级到最新版本 文档。
如果各位需要也升级,建议阅读官方文档(Jumpserver/安装文档/更新升级)。
注意事项
0)升级一定要备份原有数据库,或者直接克隆原有虚拟机以备份。当升级失败,或者新版本存在问题时,可以进行回滚操作; 1)在操作升级事宜前,务必认真详细阅读文档,并理解内容后再开始; 2)不建议复制粘贴来执行全部命令,建议分步执行命令; 3)官方[……]

Read more

注意事项
1)升级一定要备份原有数据库,或者直接克隆原有虚拟机以备份。当升级失败,或者新版本存在问题时,可以进行回滚操作; 2)注意复制官方文档,保留部署及升级方法,以备日后使用。
升级过程
此时(04/02/2020)最新为 1.5.7-2 版本,升级过程参考官方 1.4.8-1.4.10 升级到最新版本 文档。
启动脚本

#!/bin/sh

set -e

################################################################################
# 基本服务
###########[……]

Read more

问题背景
1)最开始,我们在笔记本中运行 KVM 虚拟机。当每次休眠恢复时,在 KVM 中的虚拟机就会带来大量的 CPU 负载; 2)另外,我们使用的 Linux 发行版是 Debian Testing 分支。由于某些服务是特定于发行版的,所以这些服务没有办法安装; 3)可以使用 Docker 运行服务,但是最佳时间要求一个容器启动一个服务,那么我们有很多服务,岂不是要启动很多容器;
因此萌生该想法:启动容器,运行 systemd 进程,使用 systemctl 进行服务管理,把容器当作虚拟机使用。(这可能违背容器的最佳实践,但现实问题总是多种多样的)
该笔记将记录:在[……]

Read more