Debian使用kvm+qemu+cockpit搭建带有webui的虚拟机管理系统

背景 在自己的nas上安装了纯debian系统,向拥有媲美pve的虚拟机管理流程但同时又不想重装一遍系统,故而经过一番搜索,发现目前主流的linux系虚拟机管理基本都是kvm+qemu。但这同时带来一个新的问题,我目前使用的是非gui版本的系统,同时由于mobaxterm的卡顿只能忍痛割爱其X-server功能转为termius,因此我并不能使用传统的vir-manager对虚拟机进行创建、管理等等。在搜索后发现同样由redhat出品的cockpitwebui管理端,借助websocket等技术,完美实现了对物理机的闭环管理以及虚拟机的管理。 软件介绍 kvm qemu cockpit 操作步骤 得益于kvm等等一干软件的开发团队以及巨大用户量,上述三个软件的安装非常简单,yum/apt/...等主流发行版的包管理器均内置了其完整的安装包;这里以debian为例 安装kvm+qemu Step-1:检查设备是都支持虚拟化技术 执行 当输出大于0则支持 egrep -c '(vmx|svm)' /proc/cpuinfo 执行kvm-ok 当输出如下则支持内核级虚拟化,若找不到命令则安装apt install cpu-checker INFO: /dev/kvm exists KVM acceleration can be used Step-2:安装KVM+qemu 执行下列命令 apt install qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager 软件概述 **qemu:**允许进行硬件级虚拟化 qemu-kvm:kvm主程序,现已经更名为qemu-system-x86 **libvritd-daemon:**虚拟化守护程序 **bridge-utils:**虚拟网桥支持 **virt-manager:**基于x-server的虚拟机gui管理(本过程中非必须,但是最好装) Step-3:修改qemu运行权限,避免后期的虚拟机权限问题 使用你喜欢的编辑器编辑/etc/libvirt/qemu.conf 取消下列字段的注释 # Some examples of valid values are: # # user = "qemu" # A user named "qemu" # user = "+0" # Super user (uid=0) # user = "100" # A user named "100" or a user with uid=100 # user = "root" # The group for QEMU processes run by the system instance.
Read more →

Treafik反代保姆级急速上手

需求场景 所有需要反代的场景 服务器上部署了太多的docker、frp映射等服务,每个服务都占用着各自的端口,多的以至于为了记忆这些服务端口我专门要维护一个记事本… 什么是Treafik Traefik是一个开源的可以使得服务发布变得轻松有趣的 边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理 Treafik可以自适应并动态自动发现你添加的所有服务、容器等等 Treafik适配了当前主流的所有服务技术(docker, k8s…),这意味着你可以一次配置,终生动态,非常适合我这种懒人… 正式使用 概念 这里用最直白的语言介绍traefik配置中的几个概念,对后边直接上手写配置有一定帮助,建议阅读 静态配置 Traefik初始启动时会读取的配置文件,该配置仅读取一次,后面更改需要重启服务 主要包括 全局配置项(Global) 日志配置项(Log) 入口点(Entrypoints) 安全证书(TLS) 提供者声明(Provider) 该文件对应docker中/etc/traefik/traefik.yaml 容器启动时Traefik会自动在/etc/traefik/目录下寻找traefik.toml/traefik.yaml/traefik.yml文件作为其静态配置 Traefik提供了共三种互斥的静态配置方式,另外两种请自行查阅文档 动态配置 基本等同于各个来源的Provider配置 主要需要编辑的是File Provider文件,该文件包含了所有的动态路由,Traefik会自动检测文件改动并动态发现、添加路由(Router)、服务(Service) 提供者/Providers 简而言之所谓的“提供者”就是告诉Traefik要去哪儿发现所有的路由规则及其对应的服务地址 该角色(Provider)的独立决定了Traefik天生即适应多入口、多平台的自动适应发现 本教程中将只会展示两种Provider的配置方式,其他更多的请查阅文档 入口点/EntryPoints 即Traefik对外暴露的端口,理想状态下也是整台服务器对外暴露的唯一端口 所有的网络请求通过该端口到达Traefik并由其接管后进行反代分流及负载均衡 可以开设多个入口点,一般为80+443 路由/Routers Traefik对外暴露的规则及其对内的具体服务路由规则 在这里定义Traefik所接受的域名、前缀、后缀、路径等等请求规则 在这里定义Traefik在接受到特定请求时该路由到的服务/Services 服务/Services 路由所要代理的具体服务地址 这里可以添加由Traefik管理的负载均衡,后面还可以添加亲和性等高阶使用,具体请查阅文档 开始/Let the Traefik Go 这里采用docker的方式启动,docker-compose以及手动部署等方式请自行查阅文档 Traefik主服务启动前 静态配置 静态配置需要在主服务启动之前完全确定下来并映射进容器/etc/traefik/中,主服务只会在启动、重启时读取一次,后续不再监控更改 文件名必须为traefik.yaml或traefik.tmol或traefik.yml 这里贴出我的配置,具体作用见配置项名或注释 ########################################### # # # Main Configuration File for Treafik # # By Chaos # # # ########################################### ## Global Config ## # --------------------------------------- # global: checkNewVersion: true sendAnonymousUsage: false # --------------------------------------- # ## Log Config ## # --------------------------------------- # log: # all the path is defined in the container # u need to map it outside filePath: "/etc/logs/run.
Read more →

windows下使用wsl2初体验

背景 尝试全面转向win作为主力开发系统,但是很多东西需要在linux下执行,wsl经历了一次技术路线的全面更新在网络上的反响也还是不错的。随机决定进行一下尝试 几点说明 本篇文章仅仅是小白从零开始进行wsl2配置,没有过wsl1的使用经验,里边的步骤也大多都是来自于万能的互联网 本篇文章不涉及深度使用的感受,后续体验之后有时间的话会再进行记录 概念 wsl全名windows subsystem for linux 开始安装 安装WSL2功能模块 该步骤下所有命令执行都在windows powershell(管理员模式)下 打开wsl功能模块 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 安装必要功能 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 重启电脑,完成安装(重要,我被卡在这里很久) 设置内核安装默认为wsl2 powershell(管理员)执行wsl --set-default-version 2 这里正常的话是可以正常执行的,如果提示类似于需要升级wsl内核之类的信息的话,就需要手动更新一下wsl内核: 下载地址 下载完成双击打开一路下一步即可,无其他可选项 安装linux子系统 打开windows应用商店,搜索关键字linux 下载安装想要使用的linux发行版,等待安装完成 开始菜单启动一次刚刚安装的发行版,耐心等待安装完成 配置 以下配置以本人安装的Debain为例,步骤差不多,有一些命令可能会不一样 换源 用预设源进行apt-get update,切记不能先换源,否则会出现错误 安装必要软件apt-get install ca-certificates 备份原源列表cp /etc/apt/sources.list /etc/apt/sources.list.backup 编辑源列表nano /etc/apt/sources.list 将源列表内容替换为下列内容 deb [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src [trusted=yes] https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free deb [trusted=yes] https://mirrors.
Read more →

不同Linux发行版添加新用户并设置权限

背景 由于一些需求,需要给服务器添加一个新用户并设置sudo权限 之前从未进行过该方面的学习,找到一个非常详细的博文,故记录一下 该随笔会保持更新,收录多种发行版下对用户账号的操作 Ubuntu 18.04 添加新用户 sudo useradd -r -m -s <新用户要使用的shell> <新用户名> 参数解析 -r 建立系统账号 -m 自动建立用户的登入目录/home/<user_name> -s 指定用户登入后使用的shell 设置密码 ubuntu新创建的用户不会自动提示设置密码 sudo passwd <user_name> 设置用户权限 使用修改/etc/sudoers文件的方式将新用户加入sudo列表 默认/etc/sudoers不可编辑,首先修改权限chmod +w /etc/sudoers 增加新用户 sudo nano /etc/sudoers # 适当位置添加 <uer_name> ALL=(ALL:ALL) ALL 保存生效 删除用户 执行删除命令sudo userdel <user_name> 删除用户目录sudo rm -rf /home/<user_name> 移除/etc/sudoers中关于<user_name>的权限设置,否则无法创建新的同名用户 参考 Ubuntu创建新用户的正确姿势 Debian 10.2 创建用户 sudo adduser <user_name> 执行完上述命令后,系统会提示设置该用户的密码、个人信息等 授权用户sudo 使用修改/etc/sudoers文件的方式将该用户加入sudo组以授权超级权限 授权sudoers文件可编辑sudo chmod +w /etc/sudoers 增加新用户 sudo nano /etc/sudoers # 适当位置添加 <uer_name> ALL=(ALL:ALL) ALL 保存生效 删除用户 deluser --remove-home <user_name>
Read more →

使用Anyproxy搭配frp搭建校园网回校代理

搭建回校代理,方便在外访问学校服务器 需求 由于学校vpn仅限教职工与博士使用,同时校园网仅限一台pc设备同时在线,所以有时需要笔记本连接热点的情况下连接实验室内部的服务器就显得非常蠢笨以及困难。 目前已经搭建了校园网内台式机的rdp外网连接,但是在不稳定的网络状况下,rdp有时候心有余而力不足,同时更多的需求只是需要进行内网的ssh连接,使用rdp未免有些大材小用 实现工具 Anyproxy 阿里开源的一款开箱即用的代理服务 带有web监控页面 支持http/https代理 依赖于nodejs,方便安装 支持生成CA证书认证 Frp go语言的一款开箱即用内网穿透 支持插件,方便后期进行拓展 支持单服务端多客户端 全平台对称,方便跨平台使用 实现方案 安装Nodejs 官网下载nodejs的安装包 按照你默认设置进行安装 Note: 中途会提示是否安装choco,在本次教程中可以将勾选取消,目前我们用不到 使用npm安装anyproxy 启动cmd/powershell任意命令行窗口 npm install anyproxy -g 命令行窗口直接执行anyproxy --port <port_u_want_to_use_as_proxy> ==Note:==上述测试可能会出现command not found的问题,需要手动将命令行定位到<node_install_path>/node_global/node_mudoles/下 在网内机器上安装配置frpc 在Release页面下载合适的系统版本并解压 使用记事本编辑frpc.ini,替换为下列内容 [common] server_addr = <ur_frps_address> server_port = <ur_frps_port> [anyproxy-interface] local_ip = 127.0.0.1 local_port = 8002 remote_port = 8002 [anyproxy-http] local_ip = 127.0.0.1 local_port = <port_u_want_to_use_as_proxy> remote_port = <port_u_want_to_use_as_proxy> 启动测试frpc.exe -c frpc.ini 在具备公网ip的机器上安装frps 下载同上 使用合适的文本编辑工具编辑frps.ini,替换为下列内容 [common] bind_port = <ur_frps_port> 启动测试frps -c frps.
Read more →