1.修改host文件
vi /etc/hosts
添加如下内容 这样搭集群的时候就不用记ip了
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
165.154.221.97 tlb-001 k8s01 k8s-master-01
165.154.187.67 tlb-002 k8s02 k8s-master-02
165.154.104.175 tlb-003 k8s03 k8s-node-01
123.58.199.75 tlb-004 k8s04 k8s-node-02
165.154.105.68 tlb-005 k8s05 k8s-vip
2.配置免密登录
每台机器上都执行
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s01
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s02
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s03
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s04
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s05
juege-tech-888888
3.多机器批量执行脚本编写并使用
#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
echo "用法: $0 '主机列表' '命令列表'"
echo "示例: $0 'k8s01 k8s02 k8s03 k8s04 k8s05' 'cd /aaa/bbb;mkdir ccc'"
exit 1
fi# 获取参数
HOSTS=$1
COMMANDS=$2# 将主机列表转换为数组
IFS=' ' read -r -a HOST_ARRAY <<< "$HOSTS"# 创建日志目录
LOG_DIR="logs_$(date +%Y%m%d%H%M%S)"
mkdir "$LOG_DIR"# 遍历主机并在每台机器上执行命令
for HOST in "${HOST_ARRAY[@]}"; do
{
echo "在 $HOST 上执行命令..."
ssh "$HOST" "$COMMANDS"
echo "$HOST: 命令执行完毕。"
} | tee "$LOG_DIR/$HOST.log" & # 将输出同时发送到日志文件和控制台
done# 等待所有后台任务完成
waitecho "所有命令执行完毕,日志保存在 $LOG_DIR 目录中。"
4 批量执行安装防火墙并关闭
/opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' 'yum install firewalld -y;systemctl stop firewalld;systemctl disable firewalld;systemctl status firewalld'
5.安全策略级别设置
/opt/juege/shell-scripts/batch-execute.sh 'k8s01 k8s02 k8s03 k8s04 k8s05' '
getenforce;setenforce 0;getenforce'
6.批量文件传输脚本
#!/bin/bash
# 检查参数数量
if [ "$#" -ne 3 ]; then
echo "用法: $0 '服务器列表' '要传输的文件路径' '远程目标目录'"
echo "示例: $0 'k8s01 k8s02 k8s03 k8s04 k8s05' /path/to/file /remote/directory"
exit 1
fi# 获取参数
SERVERS=$1 # 服务器列表
SOURCE_FILE=$2 # 本地文件路径
REMOTE_DIR=$3 # 远程目录</