Linux自动化运维:ansible
是
中文社区:国内最专业的Ansible中文官方学习手册
ansible安装在线安装12yum -y install epel-releaseyum install ansible -y
离线安装现在有网的centos服务器下载,然后打包,A是有网的,B的无网络的。
以下操作是A服务器
12yum -y install epel-release # 下载epel仓库yum install -y ansible --downloadonly --downloaddir=~/ansible # 仅下载,并下载到~/ansible
打包
1tar zcvf ansible.tar.gz ~/ansible
上传到服务器B,以下是B的操作
123tar zxvf ansible.tar.gz && cd ansibleyum localinstall *.rpm -y --nogpgcheck
验证安装
1ansible --version
主机清单配置查看已配置的分组1grep -vE '^#|^$' /etc/an ...
Linux安全:SSH原理
SSH的使用是很简单的,先说使用,从实践中理解。我用的比较多的是免密登录,所以放在前面了。
免密登录操作流程如下:
本地生成密钥对
发送本地的公钥到服务器
添加自己的私钥
生成密钥对可以通过使用 ssh-keygen 命令来生成,我们可以先使用 man 命令或者是 help 命令查看具体需要哪些参数以及具体信息。
通过执行命令 ssh-keygen -t rsa 来生成我们需要的密钥。默认是在~/.ssh/目录下
123ssh-keygen -t rsa # 或者直接ssh-keygen
我们看到有几个文件,下面分别解释下每个文件是干什么用的。
id_rsa: 生成的私钥文件,本机的私钥,不能泄露,很重要。
id_rsa.pub: 生成的公钥文件,本机的公钥。
known_hosts: 已知的主机公钥清单,它存储了用户曾经连接过的主机的公钥,用于验证服务器的身份
known_hosts.old:旧的known_hosts
authorized_keys: 存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥。这里没明白没关系,下面马上会介绍。我的 ...
Linux配置github加速
y
在Linux下载github的源码或者其他,下载速度缓慢,这个时候可以修改hosts文件来加速,但是加速地址并不固定,故写一脚脚本来测试速度并且设置这个加速地址。如果设置失败就回滚。
github加速123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#!/bin/bash# 定义一个函数来回滚 hosts 文件rollback_hosts() { echo "发生错误,正在恢复原始 hosts 文件..." mv /etc/hosts.backup /etc/hosts echo "hosts 文件已恢复。"}# 检查并安装 nslookup 工具if ! command -v nslookup &> /dev/null; then echo "nslookup 命令未找到,正在安装..." yum -y inst ...
Python使用paramiko实现ssh远程登录
直接使用csdn博主你若安好我便天晴的博客的内容,其文写的很详细,很清晰,很易懂。
我在port有一点点修改,允许在调用的更换其他的端口,原作者应该也是想如此,但是忘记写了。
封装如下:
123456789101112131415161718192021222324252627282930313233343536373839404142import sys, loggingfrom paramiko.client import SSHClient, AutoAddPolicyfrom paramiko import AuthenticationExceptionfrom paramiko.ssh_exception import NoValidConnectionsErrorclass SshClient(): def __init__(self): self.ssh_client = SSHClient() def ssh_login(self, host_ip, username,port, password): try: ...
Shell实现指定目录下的指定文件清空
.log是日志文件,需要清空里面的内容,但是不删除此文件。结构如下:
需要删除这么多的.log文件,我们使用find命令
对指定目录下的.log文件查看
123456789#!/bin/bash# 这个脚本会输出/log目录及其子目录中所有.log文件的路径和内容# 查找/log目录及其子目录中所有的.log文件# 对每一个找到的文件,先输出文件路径,然后输出文件内容find /log -type f -name "*.log" -exec echo "文件路径:" {} \; -exec echo "文件内容:" \; -exec cat {} \;echo "所有的.log文件的路径和内容已经被输出。"
对上面的log文件内容清空
123456789#!/bin/bash# 这个脚本会清空/log目录及其子目录中所有.log文件的内容# 查找/log目录及其子目录中所有的.log文件# 对每一个找到的文件,使用truncate命令将其大小设置为0 ...
Centos7.9设置定时执行脚本+开机自启脚本
有一个a.py文件想要每一个小时运行一次,并且实现开机自启动。
设置定时任务要在CentOS 7.9上设置定时执行您的a.py文件,您可以使用crontab。这是一个在Linux系统中用于设置周期性执行任务的工具。以下是您可以遵循的步骤:
首先,确保您的系统已经安装了crontab。您可以通过运行以下命令来安装它(如果尚未安装):
1yum install crontabs
然后,启动并使crond服务在开机时自启动:
12systemctl enable crondsystemctl start crond
接下来,使用crontab -e命令编辑crontab文件,为您的a.py文件添加一个定时任务。例如,如果您想每小时执行一次该脚本,可以添加以下行:
12340 * * * * /usr/bin/python /path/to/a.py# 下面这个是我的脚本运行0 * * * * /root/miniconda3/bin/python /root/system_check/user_analysic.py
请确保将/path/to/a.py替换为您a.py文件的实际路径。 ...
K8s组件和架构的名词解释
组件Node和Pod下图矩形是node,node包含两个pod。一个是my-app(应用程序),一个是DB(数据库)
一个node可以由多个pod。
pod可以放多个容器去运行,但是为了降低耦合度,一般是一个pod里面运行一个容器。
Service和IngressService
pod和pod之间通过IP进行通讯,但是pod死亡以后,新的pod会获取新的ip,那这样的话,就会很复杂,比如上图连接的数据库pod死了,那我又得重新配置,很麻烦。所以这个IP是永久的,不变的。
Ingress
对于自己的应用,我们需要暴露出去,让浏览器能够访问。但是对于数据库内部访问足以,这要暴露出去,不是没事找事吗。
my-app的外部URL(service)基本都不怎么用,一般用来做测试。暴露出去http:my-app-ip:port是一个网址,例如http:10.1.3.4:80,这样不合适,一般是网址的形式,例如https:my-app.com
那my-app的请求就先到达Ingress,由ingress去转发。
Configmap和 SecretConfigmap
你现在DB的servic ...
通人性化的YAML入门
YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。
在线编辑器:YAML、YML在线编辑器(格式化校验)-BeJSON.com
YAML介绍YAML 的配置文件后缀为 .yml,如:daokun.yml 。
YAML现在很受欢迎,很多的配置文件都是由YAML写的
YAML和其他语言的对比,对比XML和JSON更加的简洁,更容易阅读
基本语法
大小写敏感
12daokun: 1Daokun: 2
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
12345678person: name: daokun age: 22 gender: male card: BOC: 20RMB ICBC: 15RMB ABC: 90RMB
‘#’表示注释
1# 这就是一个注释,和python单行注释一样
一个文件 ...
Linux存储专题(一):GlusterFS
GlusterFS是一个开源的分布式文件系统,它允许你将多台服务器的存储资源整合在一起,形成一个大的存储池。这样,你就可以像使用一个单一的大硬盘一样来使用这些服务器的存储资源了。
官网:Gluster
简单来说,GlusterFS的工作原理是这样的:
存储池化:你可以把多台服务器上的硬盘空间集中起来,创建一个统一的存储空间。
文件系统:在这个存储池上,GlusterFS提供了一个文件系统,你可以像在本地磁盘上操作文件一样,在这个分布式文件系统上操作文件。
扩展性:GlusterFS最大的优点是它的扩展性。当你需要更多的存储空间时,只需要添加更多的服务器即可,无需停机或者复杂的配置。
高可用性:GlusterFS通过在不同的服务器上复制数据来提高数据的可用性。即使某台服务器出现故障,你的数据仍然是安全的,因为其他服务器上有备份。
GlusterFS适用于需要存储大量数据的场景,比如云计算、大数据分析等。它的设计目标是简单易用,同时提供高性能和高可靠性。
NAS和SAN不能实现在线扩容,没有那么灵活。
参考文章:
分布式存储之GlusterFS - 知乎 (zhihu.com)
gl ...
Linux安全:使用Python实现高效的端口扫描器
nmap是一款非常强大的主机发现和端口扫描工具,而且nmap运用自带的脚本,还能完成漏洞检测,同时支持多平台。
主要功能有:
检测活在网络上的主机(主机发现)
检测主机上开放的端口(端口发现或枚举)
检测到相应的端口(服务发现)的软件和版本
检测操作系统,硬件地址,以及软件版本
检测脆弱性的漏洞(Nmap的脚本)
nmap的相关网站在这里:python-nmap : nmap from python (xael.org)和Download the Free Nmap Security Scanner for Linux/Mac/Windows
安装nmap安装namp12yum install nmapnmap -version
安装nmap python模块1pip install python-nmap
相关网站:python-nmap · PyPI
基本用法
python-nmap模块实例化
最常用的是PortScanner类,这个类实现Nmap工具功能的封装。对这个类进行实例化很简单,只需要如下语句便可实现。
12import ...