运维SRE-14 自动化批量管理

2024-02-23 06:04

本文主要是介绍运维SRE-14 自动化批量管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.批量管理基础内容-SSH服务-远程连接服务

1.1SSH服务

  • SSH服务-OpenSSH,远程连接
  • 服务端:openssh-server
  • 客户端:openssh-clients
openssh-7.4p1-21.el7.x86_64	
openssh-server-7.4p1-21.el7.x86_64	#服务端
openssh-clients-7.4p1-21.el7.x86_64	#客户端

1.2 OpenSSH VS Telnet

对比OpenSSH和Telnet服务共同点区别应用场景
OpenSSH远程连接连接时候数据加密默认使用
Telnet服务远程连接连接时候数据未加密未来升级OpenSSH,建议先安装telnet服务,然后升级

telnet服务端使用-了解

yum install -y telnet-server
systemctl start  telnet.socket
telnet 10.0.0.31

1.3OpenSSH服务端配置

1)概述

openssh服务端软件包内容
/etc/ssh/sshd_config #daemon守护进程/服务#openssh服务端配置文件
/usr/lib/systemd/system/sshd.serviceopenssh服务端管理配置文件(systemctl start/stop/restart sshd)
/usr/sbin/sshdopenssh服务启动命令

2)服务端配置文件详解

配置文件
性能优化UseDNS no是否开启DNS反向解析(ip---->域名),这个选项默认开启,会导致远程连接慢
GSSAPIAuthentication no是否开启GSSAPI认证,默认开启,开启导致远程连接慢
安全配置Port 22配置ssh服务端口端口号,未来处于安全考虑要修改,默认22
PermitRootLogin yes是否准许root远程登录默认是yes(ubuntu系统默认no)
ListenAddress配置用户只能通过哪个ip连接来进入网卡,指定的本地网卡的ip地址。默认是0.0.0.0,所有用户都可以连接
PasswordAuthentication yes是否准许通过密码登录(是否开启密码登录)
UsePAM yes是否开启PAM认证(安全部分讲解)

在这里插入图片描述

1.4 Openssh客户端命令

1)概述

Openssh客户端核心命令作用
scp远程传输命令
ssh命令行远程连接工具
sftpftp工具
2)scp
scp -r -P 22 /etc/ 10.0.0.31:/tmp
-r 递归传输目录
-P 指定ssh端口号,不指定默认是22

3)ssh
a)远程连接10.0.0.41的22端口
ssh -p 22 root@10.0.0.41
b)远程连接到10.0.0.41的22端口执行命令hostname并返回
ssh -p 22 root@10.0.0.41 hostname
4)sftp

ftp:文件传输协议,服务端口号21端口...一般用于传输数据:window+linux,类似于rz和szwindow和linux之间的:对于大文件推荐使用:scp/rsync/ftp传输如果文件比较小:使用rz/sz即可
sftp 命令
xftp 图形化ftp工具

a)命令行

现在在10.0.0.31机器 ,连接10.0.0.41 通过sftp
sftp root@10.0.0.41# 上传
put /etc/hostname #把31的/etc/hostname上传到41
# 下载
get /etc/hostname #把41的/etc/hostname下载到31#查看远程目录信息
ls 
ls -l#查看本地目录信息
lls -l #l是local的意思#删除远程文件/目录
rm

b) 图形化界面版本
xftp,xshell,winscp...

1.5 OpenSSH密钥认证

密钥认证:也叫免密码登录,也叫双机互信.
目标: 让linux系统之间(1台到其他所有)远程连接的时候不需要输入密码.实现初步批量管理功能.未来一些服务软件需要我们先部署密钥认证

1)原理

2)实战使用

环境准备
m01批量管理服务,要可以连接其他所有机器,存放密钥对
backup被管理机器
nfs01被管理机器
web01被管理机器
1.创建秘钥对
ssh-keygen
2.分发密钥(公钥)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.31
3.测试
ssh root@10.0.0.31 hostname

1.6 Openssh密钥认证一键化部署

1)一键流程

1.创建秘钥对-一键
ssh-keygen -f ~/.ssh/id_rsa -P ''2.分发公钥
分发公钥的时候关闭主机验证功能.临时
sshpass -pthinker ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@10.0.0.41

2)sshpass

替我们在需要的时候提供ssh的命令:sshpass 
yum install -y sshpasssshpass -pthinker ssh 10.0.0.31 hostname

3)一键化创建秘钥对和分发密钥

脚本内容
第1步创建秘钥对.
第2步分发公钥.#!/bin/bash
#author: hbinz
#desc 一键自动化创建和分发公钥ip_list="10.0.0.7 10.0.0.31 10.0.0.41"
ssh_root_pass="thinker"
echo '------------------------------------'
echo '1.创建秘钥'
echo '------------------------------------'
ssh-keygen -f ~/.ssh/id_rsa -P ''echo '------------------------------------'
echo '2.分发 公钥'
echo '------------------------------------'
for ip in $ip_list
dosshpass -p$ssh_root_pass ssh_copy_id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip
done

4)一键化检查(执行命令)
扩展:表示不含$0的所有参数的列表

#!/bin/bash
#author: Hbinz 
#desc 批量检查脚本ip_list="10.0.0.7 10.0.0.31 10.0.0.41"echo "----------------------------------"
echo "批量执行命令"
echo "----------------------------------"for ip in $ip_list
dossh root@$ip $@
done

1.7 堡垒机/跳板机

服务端(m01)
助手(window)

1)服务端

tar -zvxf teleport-linux-3.0.2.9.tar.gz -C /app/tools
mv teleport-linux-3.0.2.9 teleport-linux
cd teleport-linux
./setup.sh

在这里插入图片描述

浏览器访问:http://10.0.0.210:7190/maintenance/install
在这里插入图片描述

浏览器登录:http://10.0.0.210:7190/dashboard
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意: 这里使用秘钥认证(需要你提前创建好m01到其他所有机器的秘钥认证)或者密码认证都可以
2)安装windows/mac助手

ssh-copy-id原理:
创建.ssh目录
创建.ssh/authorized_keys文件,存放公钥.本质调用了ssh命令.
ssh "$@" "exec sh -c 'cd ; umask 077 ; mkdir -p .ssh && cat << .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'"cd ; #连接到对应的机器10.0.0.31,进入家目录.
umask 077 ;临时调整umask 默认权限 目录: 700 文件:600
mkdir -p .ssh 创建家目录下.ssh隐藏目录 #目录权限 700
cat << .ssh/authorized_keys  #把公钥的信息写入到 对应机
器的.ssh下面的authorized_keys文件中.这个文件权限600

这篇关于运维SRE-14 自动化批量管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/737718

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Spring中管理bean对象的方式(专业级说明)

《Spring中管理bean对象的方式(专业级说明)》在Spring框架中,Bean的管理是核心功能,主要通过IoC(控制反转)容器实现,下面给大家介绍Spring中管理bean对象的方式,感兴趣的朋... 目录1.Bean的声明与注册1.1 基于XML配置1.2 基于注解(主流方式)1.3 基于Java

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Java如何从Redis中批量读取数据

《Java如何从Redis中批量读取数据》:本文主要介绍Java如何从Redis中批量读取数据的情况,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一.背景概述二.分析与实现三.发现问题与屡次改进3.1.QPS过高而且波动很大3.2.程序中断,抛异常3.3.内存消

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

如何基于Python开发一个微信自动化工具

《如何基于Python开发一个微信自动化工具》在当今数字化办公场景中,自动化工具已成为提升工作效率的利器,本文将深入剖析一个基于Python的微信自动化工具开发全过程,有需要的小伙伴可以了解下... 目录概述功能全景1. 核心功能模块2. 特色功能效果展示1. 主界面概览2. 定时任务配置3. 操作日志演示