您的位置:首页 > 教育 > 锐评 > 邢台本地信息网_云南建站推广_网络教学平台_国外直播平台tiktok

邢台本地信息网_云南建站推广_网络教学平台_国外直播平台tiktok

2025/5/16 5:03:46 来源:https://blog.csdn.net/qq_63781342/article/details/146691458  浏览:    关键词:邢台本地信息网_云南建站推广_网络教学平台_国外直播平台tiktok
邢台本地信息网_云南建站推广_网络教学平台_国外直播平台tiktok

实现功能

免密登录

通过调用shell命令来生成密钥并将公钥传送到目标主机,从而实现不同主机之间的免密登录

部署docker环境

(仅限于对软件的下载和安装,没有更换可用仓库源,需要自己手动更换)

通过yum进行docker-ce安装和启动,部署docker环境

配置k8s集群环境

暂时未实现

配置dns解析

通过在/etc/hosts文件中配置主机名和ip地址的相关信息来完成dns的解析

删除k8s集群环境

暂时未实现

关闭防火墙和Selinux

使用系统服务systemctl对防火墙进行关闭

使用sed修改Selinux配置文件实现Selinux的永久关闭

部署LAMP环境

安装Apache和MySQL服务以及php并且完成自动上线

删除LAMP环境

将相关服务全部删除

初始化(换源,安装常用工具)

使用curl命令将centos7的yum源仓库更换为阿里云的仓库,并且安装vim和wget,net-tools等常用工具来实现初始化

代码展示

主程序(main.sh)

在主程序使用source时替换成你自己自定义的路径

#!/bin/bash
#定义目录路径
dir=shell_scripts
#1 4 679 10  完成 || 2358未完成 部署docker,部署/删除k8s集群
source $dir/set_ssh.sh
source $dir/set_docker.sh
source $dir/set_k8s_cluster.sh
source $dir/set_dns.sh
source $dir/del_k8s_cluster.sh
source $dir/set_firewalld.sh
source $dir/set_normal.sh
source $dir/set_lamp.sh
source $dir/del_lamp.sh
end() {
message="(oo)\\_______(__)\\      )\\/\\||----w |||     || 
"
echo -e  "$message"
}
meun() {
meun_array=("一键配置免密登录" "一键部署docker环境" "一键部署k8s集群" "一键配置DNS解析" "一键删除k8s集群" "关闭防火墙" "一键部署LAMP环境" "一键删除LAMP环境" "初始化(换源+常用工具安装)" "退出")
meun_lenght=${#meun_array[@]}
for i in $(seq 1 $meun_lenght);do echo -e "\e[32m    ${i}--${meun_array[$i-1]}\e[0m"
done
}
useage() {
echo -e "\e[33m请输入选项1-6\e[0m"
}
main() {
while true;do
meun
read  -p "请输入你要使用的功能   " choice
case $choice in 1)set_sshend;;2)set_dockerend;;3)add_k8s_clusterend;;4)set_dnsend;;5)del_k8s_clusterend;;6)set_firewalldend;;7)set_lampend;;8)del_lampend;;9)set_normalend;;10)exit;;*)useage
esac
done
}
main

免密登录(set_ssh.sh)

#!/bin/bash
set_ssh() {
#检查本地是否生成公钥
if [ -e $HOME/.ssh/id_rsa ];thenread -p "输入你要进行免密登录的IP  " addressping -c1 -W 1 ${address} &> /dev/nullif [ $? -ne 0 ] ;thenecho -e "\e[33m${address}不能正常通信\e[0m"elseread  -p "输入你要使用的用户(默认为root)  " userread  -s -p "输入${address}的${user:-root}用户的密码  " password#安装expect软件包yum -y install expect &> /dev/null && echo -e  "\e[32m安装完毕!\e[0m"  || echo -e "\e[31m安装失败\e[0m"#删除已知主机文件,防止后面程序受影响rm -rf $HOME/.ssh/known_hosts#使用expect自动化完成公钥传递expect << EOFspawn ssh-copy-id ${user:-root}@$address;expect {"Are you sure you want to continue connecting (yes/no)?" {send "yes\r"exp_continue}"password:" {send "$password\r"}
eof
}
EOF
fi
elseecho "公钥未生成"
fi 
}

部署docker环境(set_docker.sh)

#!/bin/bash
set_docker() {
#关闭防火墙和Selinux
systemctl stop firewalld
setenforce 0
#直接使用yum进行docker的下载
yum -y install docker && echo -e "\e[32mdocker安装成功\e[0m" || echo -e "\e[31mdocker安装失败\e[0m"
#为docker设置国内加速
cat >/etc/docker/daemon.json << EOF
加速地址
EOF
#重启docker守护进程
systemctl daemon-reload
#重启docker
systemctl restart docker
#测试docker是否可以使用
docker images && echo "启动成功" || echo "启动失败"
}

部署k8s集群环境(set_k8s_cluster.sh)

#!/bin/bash
add_k8s_cluster() {
echo "This is add k8s"
}

配置dns解析(set_dns.sh)

#!/bin/bash
set_dns() {
flag=yes
while true; do
read -p "输入节点的IP地址" address
read -p "输入节点的DNS名称  " dns
echo $address $dns >> test.txt
read -p "是否继续(按q退出)" flag
if [ $flag  == 'q'  ];thenbreak
fi
done
}

删除k8s集群环境(del_k8s_cluster.sh)

#!/bin/bash
del_k8s_cluster() {
echo "This is del k8s"
echo 
}

关闭防火墙和Selinux(set_firewalld.sh)

#!/bin/bash
set_firewalld() {
systemctl stop firewalld &> /dev/null && echo -e "\e[32m防火墙关闭成功\e[0m"  ||  echo -e "\e[31m防火墙关闭失败\e[0m"
sleep 1
systemctl disable firewalld &> /dev/null && echo -e "\e[32m防火墙设置成功\e[0m"  ||  echo -e "\e[31m防火墙设置失败\e[0m"
sleep 1
sed -ri  's/enforcing/disabled/'  /etc/selinux/config
sleep 0.5
if [ $? -eq 0  ];thenecho -e  "\e[32mSelinux成功关闭\e[0m" 
elseecho -e  "\e[31mSelinux成功失败\e[0m" 
fi
sleep 0.5
}

部署LAMP环境(set_lamp.sh)

#!/bin/bash
source /root/shell_scripts/set_firewalld.sh
set_lamp() {
#关闭防火墙 关闭Selinux
set_firewalld
#安装httpd
yum -y install httpd &> /dev/null && echo -e  "\e[32mhttpd安装成功\e[0m"  || echo -e "\e[31mhttpd安装失败\e[0m"
sleep 0.5
#删除80端口下的进程
yum -y install lsof &> /dev/null
for pid in `lsof -i:80 | grep -v "PID"  | awk   '{print $2}'`;do 
kill -15 $pid
done
#启动httpd服务
systemctl enable --now  httpd &> /dev/null  && echo -e  "\e[32mhttpd配置成功\e[0m"  || echo -e "\e[31mhttpd配置失败\e[0m"
#配置httpd
yum -y install wget &> /devnull 
wget www.jd.com -O /var/www/html/index.html &> /dev/null && echo -e  "\e[32m前端页面配置成功\e[0m"  || echo -e "\e[31m前端页面配置失败\e[0m"
sleep 0.5
#重启httpd服务
systemctl restart httpd &> /dev/null 
sleep 0.5
curl -I  localhost:80 &> /dev/null && echo -e  "\e[32m配置成功\e[0m"  || echo -e "\e[31m配置失败\e[0m"
#初始化Mysql
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm &> /dev/null
rpm -ivh mysql80-community-release-el7-11.noarch.rpm &> /dev/null
yum  -y install mysql mysql-server &> /dev/null
systemctl start mysqld
if [ $? -eq 0 ];thenecho -e "\e[32m初始化成功\e[0m"
elseecho -e "\e[31m初始化成功\e[0m"
fi
#配置Mysql
yum -y install expect &> /dev/null 
#获取Mysql默认密码
password=`grep "password" /var/log/mysqld.log |awk -F":" '{NR==1;print $NF}' | xargs`
#登录数据库并更改密码
read -s -p "输入你要更改的密码  " new_password
expect <<EOF
spawn mysql -uroot -p
expect "Enter password: "
send "$password\r"
expect "mysql> "
send "alter user root@'localhost' identified by '$new_password';\r"
expect "mysql> "
send "exit\r"
expect eof
EOF
}

删除LAMP环境(del_lamp.sh)

#!/bin/bash
del_lamp() {
#关闭相关服务
systemctl disable --now httpd mysqld php-fpm
#删除相关文件和软件包
#删除Apache相关信息
rm -rf /etc/http
rm -rf /var/www/html/*
yum -y remove httpd
#删除MySQL相关服务
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf /var/log/mysql
yum -y remove mysqld
#卸载php相关信息
yum -y remove php*
}

初始化(set_normal.sh)

#!/bin/bash
set_normal() {
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null 
if [ $? -eq 0 ];thenecho -e "\e[32m阿里云源仓库安装成功\e[0m"
else echo -e "\e[31m阿里云源仓库安装失败\e[0m"
fi
sleep 0.5
packages=(epel-release wget vim lrzsz createrepo)
for i in ${packages[@]};do
echo -e  "\e[33m正在安装${i}\e[0m"
yum -y install $i &> /dev/null && echo -e "\e[32m${i}安装完成\e[0m"
sleep 1 
done
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com