需求
1.接收用户部署的服务名称------先通过read指令接收用户输入的字符串,读取用户需要测试的服务名称
2.判断服务是否安装-------通过command -v或rpm -q 指令查看服务是否已安装
已安装;自定义网站配置路径为/www;并创建共享目录和网页文件(cat <<EOF >> /xxx/xxx);重启服务
没有安装;安装对应的软件包
3.测试
判断服务是否成功运行;($? 返回值为0则成功 1-255则失败)
已运行,访问网站(curl)
未运行,提示服务未启动,并显示自定义的配置文件内容(cat)
4.以上配置没有问题,请邮件告知我,并将脚本代码(代码文件)邮件发送我
我的邮箱账号:XXXXXXXXXXXXXXX@163.com(s-nail)
定义nginx部署函数
function nginx_bushu () {
systemctl stop firewalld.service
setenforce 0
cat << EOF > /etc/nginx/conf.d/test.conf
server {
listen 80;
root /www;
}
EOF
echo this is test > /www/index.html
systemctl restart nginx
if [ $? -eq 0 ];then
curl http://`hostname -I`
else
echo “服务启动失败”
cat /etc/nginx/conf.d/test.conf
fi
}
部署s-nail部署文件
function s-nail_bushu() {
if `rpm -q s-nail &> /dev/null`;then
echo "作业脚本在附件" | mail -s "XXXnginx脚本作业" -a "$0" xxx.com
else
mount /dev/sr0 /mnt &> /dev/null
dnf install s-nail -y &> /dev/null
if [ $? -eq 0 ];then
echo "s-nail 服务启动成功,已自动发送脚本文件"
else
echo s-nail 安装失败
fi
fi
}
脚本主体
echo 欢迎您使用自动化部署服务
read -p "请输入需要的服务名称:" fuwuname
if `command -v $fuwuname &> /dev/null`;then
nginx_bushu
echo "调用成功"
s-nail_bushu
else
mount /dev/sr0 /mnt &> /dev/null
dnf install nginx -y &> /dev/null
if [ $? -eq 0 ];then
nginx_bushu
else
echo nginx 安装失败
fi
fi