运维工具 ansible 简单介绍
在日常运维中,重复、批量操作服务器既繁琐又容易出错。Ansible作为轻量自动化工具,无需在目标主机装代理客户端、无需复杂配置、基于SSH即可实现批量管理。本文以Ubuntu为例,对ansible进行简单介绍。
Ansible是什么Ansible是一款基于Python开发的开源自动化运维工具,核心用途是批量配置管理、应用部署、任务编排,简单说就是“一次操作,多台机器同步执行”,彻底解决传统运维逐台登录、重复敲命令的痛点。
核心优势
无代理架构(Agentless):最省心的特点!无需在被管理的目标主机上安装任何客户端软件,仅通过SSH协议(Linux)或WinRM协议(Windows)通信,部署成本极低,不用额外维护客户端版本。
幂等性:无论执行1次还是多次,最终系统状态始终一致,避免重复操作导致的错误(比如“安装Nginx”任务,已安装则不执行,未安装则自动安装)。
简单易学:核心配置文件(Playbook)采用YAML语法,可读性极强,不用掌握复杂编程语言,运维新手1-2天就能上手编写自动化脚本。
功能强大:内置1000+模块,覆盖软件安装、文件管理、服务启停、云资源管 ...
好用的跨平台命令行提示符starship
starship是一个轻量、迅速、客制化的高颜值终端提示符软件!本篇对其进行简单介绍。
安装参考官网starship ,这里只介绍在Ubuntu上的按照方法:
12345678# 联网安装curl -sS https://starship.rs/install.sh | sh# 如果是普通用户,需要输入密码# 离线安装# 访问 https://github.com/starship/starship/releases 下载对应系统的版本,这里以Linux为例wget https://github.com/starship/starship/releases/download/v1.24.2/starship-x86_64-unknown-linux-gnu.tar.gzsudo tar -xzvf starship-x86_64-unknown-linux-gnu.tar.gz -C /usr/local/bin
配置设置shell以sharship自启动123456## bashecho 'eval "$(starship init bash)"& ...
docker 安装代码托管平台 gogs
本篇介绍一个部署简单、资源占用少、使用简洁的代码托管平台 gogs 的 docker 部署方法。
安装假设 docker 和 docker-compose 已经按照完成。如果没有安装,可以参考我的另一篇博客:docker 简单介绍.
下面安装 gogs
123456789101112131415161718192021222324252627282930313233343536373839404142# 拉取镜像docker pull gogs/gogs# 创建目录mkdir ~/gogs# 创建docker-compose.yamlcat > ~/gogs/docker-compose.yaml <<-"EOF"#version: '3.6'services: web: image: 'gogs/gogs' restart: always privileged: true hostname: 'gogs' container_name: 'g ...
mac 挂载和操作 EFI 双系统启动向导
在 Mac Book Pro 上使用 bootcamp 安装双系统非常方便,但是,当遇到启动引导出现问题,这常常是因为使用 u 盘安装了其他的操作系统。那么如何恢复引导,使得系统能够正常安装双系统呢。
挂载 EFI1234567891011121314151617cdmkdir ~/efidiskutil list# 找到 EFI 所在的标识符(IDENTIFIER),如我这里是 disk0s2/dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk0 1: EFI EFI 314.6 MB disk0s1 2: Apple_APFS Containe ...
word 中快速的删除或接收修订
最近用Word在撰写一个大文档,为了方便查看不同版本的变化,就采用了审阅模式中的修订。随着文档的迭代,文档中大量、大片的修订产生,发给别人查看打开时出现满篇的修订,当尝试使用自带的接受(所有)修订来保持大文档的清洁时,出现Word卡死,尝试等待一个夜晚后,仍然是卡死状态。最终发现一个解决方案能够快速的清楚所有修订。具体地,如下介绍。
无连续页面删除修订时当修订只是对单句、单点、单表格等修订,不是对连续的多页面删除修订时,可以尝试使用Word自带的接受所有修订。一般都能够很快的完成。
有连续页面删除修订时当有连续页面删除修订时,使用上面的方法往往会很慢,常出现Word卡死状态。此时,可以在审阅模式下查看所有修订,手动删除修订的连续页面部分(需认真辨别哪些是修订的,不要删除未修订的部分),然后保存后,使用Word自带的接受所有修订,可快速完成。
c++ 中调用 opencv
本篇介绍如何在 Linux 系统(以 Ubuntu 18.04 为例)上安装 opencv,并在 c++ 代码中使用。
安装 opencv安装 opencv 的方式有两种,一种是通过 Ubuntu 的包管理器 apt 或 aptitude,另一种是通过从源码编译安装。一般包管理器安装的 opencv 版本比较低,通过编译安装可以灵活的选择不同的版本,特别是最新的版本。
包管理器安装123sudo apt update && sudo apt install libopencv-dev# orsudo aptitude update && sudo aptitude install libopencv-dev
编译安装主要参考 opencv 官网编译安装教程,大体步骤如下:
123456789101112131415sudo apt install -y g++ cmake git wget unzip build-essential pkg-config libgtk2.0-dev # 如果安装中遇到依赖问题,可以尝试 aptitude 来安装wg ...
ubuntu 包管理工具 aptitude
Ubuntu 的包管理工具除了 apt-get, apt 外,还有更强大的 aptitude,它能够更好的处理依赖包安装的问题。本篇简单介绍。
安装12sudo apt install updatesudo apt install aptitude
使用
命令
说明
aptitude update
更新可用的包列表
aptitude upgrade
升级可用的包
aptitude dist-upgrade
将系统升级到新的发行版
aptitude install pkgname
安装包
aptitude remove pkgname
删除包
aptitude purge pkgname
删除包及其配置文件
aptitude search string
搜索包
aptitude show pkgname
显示包的详细信息
aptitude clean
删除下载的包文件
aptitude autoclean
仅删除过期的包文件
参考文献
ubuntu更强大的包管理工具:aptitude
【解决方案】ubuntu安装libgtk2.0- ...
transport endpoint is not connected
linux 中使用 sshfs 挂载其他服务器硬盘或目录到本地服务器,当长时间不操作后,再次访问本地挂载点会出现 Transport endpoint is not connected,如何解决该问题?
假设本地挂载点为 /mnt/datafs,那么可以使用如下命令卸载掉当前挂载:
1fusermount -u /mnt/datafs
参考文献
Transport endpoint is not connected [closed]
Transport endpoint is not connected in SSHFS
python 编译或打包 py 文件
python 是一种解释性语言,其执行时先将代码编译到内存中的 PyCodeObject 中,当程序运行结束后,将 PyCodeObject 写入到硬盘的 .pyc 文件中。当下次运行时,首先检查是否有 .pyc 文件,如果找到,那么就直接载入 .pyc 文件;否则直接编译 .py 到内存中形成 PyCodeObject。.pyc 可以理解为 PyCodeObject 的持久化保存。
编译py为pyc命令行编译
12345678# compile 单个文件python -m py_compile hello.py# 编译文件夹下的所有文件,和 .py 同文件夹python -O -m compileall -b -f hello_dir# 编译后放到 __pycache__python -O -m compileall -f hello_dir
代码中编译
1234567# 单个文件import py_compilepy_compile.compile(r'hello.py')# 多个文件import compileallcompileall.compile_ ...
python 连接 mysql 数据库
python 连接 mysql 数据库,可以把生产的数据存入到 mysql 数据库,从 mysql 数据库中读取数据。本篇基于 linux 简单介绍。
安装 mysql12345678910111213sudo apt updatesudo apt install mysql-server# 启动 mysqlsudo service mysql# 访问数据库mysql --defaults-file=/etc/mysql/debian.cnf# 或者查看用户名密码,然后使用用户名和密码登录cat /etc/mysql/debian.cnfmysql -u debian-sys-maint -p
创建数据库和表、支持中文12345678910111213141516171819mysql --defaults-file=/etc/mysql/debian.cnf# 查看可用数据库mysql> show databases;# 创建新数据库mysql> create database dro;# 创建新表mysql> use dro;Database changedm ...
libstdc++.so.6 版本问题
在运行深度学习模型时,有时候会遇到 libstdc++.so.6 过低,导致 GLIBCXX_xxx.x.xx 无法找到,可以尝试使用如下方法解决。
查看当前 GLIBC 版本1strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
通过上面命令可以查看当前系统默认安装的各个 GLIBC版本。
查找 MINICONDA 安装的版本在 miniconda 的 lib 中安装的 libstdc++.so.6 版本一般会比系统版本高,但是,系统默认的版本没有链接到该版本。可以先查找 miniconda 安装的 libstdc++.so.6 版本
1234567find / -name "libstdc++.so.6" -type f# 输出结果大概如下/usr/lib/x86_64-linux-gnu/libstdc++.so.6/opt/conda/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6/opt/conda/envs/py38/ ...









