运用shell脚本自动化部署LAMP环境
1.安装Apache
2.安装数据库服务
3.安装php
(1)使用IP访问/phpinfo.php
4.安装phpMyAdmin
(1)使用IP访问phpmyadmin
5.使用防火墙规则使三台虚拟机互不相连
(1)修改SSH端口为10022,增加HTTP端口为10080,修改phpMdAmin端口为学号后五位。
(2)只允许10080访问Myadmin,三个IP互不ping通
环境准备
(ip为10.0.0.120的虚拟机为主机,然后分别克隆两台ip为10.0.0.121的客户机和ip为10.0.0.122的测试机;主机需安装Apache,PHP和phpMyAdmin,客户机需安装Mysql,且三台虚拟机都能进行远程连接即开启SSH服务)
主机名及IP
| 主机名 |
IP地址 |
| localhost(主机) |
10.0.0.120 |
| localhost(客户机) |
10.0.0.121 |
| localhost(测试机) |
10.0.0.122 |
对于该需求编写了以下脚本。下面将挨个展示编写的脚本。
main.sh(主函数)
#!/bin/bash
while true; do
clear
echo -e "Welcome\n"
echo "1. Apache"
echo "2. php/php-fpm"
echo "3. phpMyAdmin"
echo "4. Database"
echo "5. firewalld(web)"
echo "6. firewalld(Database)"
echo "7. firewalld(test)"
echo "8. exit"
read -p "请输入您的选择: " choice
case $choice in
1)
./Apache.sh
;;
2)
./php.sh
;;
3)
./phpMyAdmin.sh
;;
4)
./Database.sh
;;
5)
./firewalldweb.sh
;;
6)
./firewalldDatabase.sh
;;
7)
./firewalldtest.sh
;;
8)
echo -e "\n退出中..."
exit 0
;;
*)
echo -e "\n无效的选择。请输入1到8之间的数字。\n"
;;
esac
read -n1 -r -p "按任意键继续..."
done
main.sh使用一个“菜单”的模式用户按需选择自动化安装的服务。
Apache.sh
#!/bin/bash
# 检查是否已经安装Apache
function apachecheck(){
echo "[INFO] 检查是否已经安装Apache..."
if command -v httpd &> /dev/null; then
echo "[INFO] Apache 已安装."
read -p "是否要删除已安装的Apache? (Y/N): " confirm
if [[ $confirm == [Yy] ]]; then
echo "[INFO] 删除已安装的httpd..."
systemctl stop httpd
yum remove -y httpd
else
echo "[INFO] 保留已安装的Apache, 退出脚本."
exit 0
fi
fi
}
#安装Apache
function apacheinstall(){
echo "[INFO] 开始Apache安装, 请等待..."
yum install -y httpd
systemctl start httpd

最低0.47元/天 解锁文章
868

被折叠的 条评论
为什么被折叠?



