您的位置:首页 > 运维架构 > 网站架构

自动搭建lamp架构,安装/卸载bbs论坛

2013-09-06 20:00 597 查看
编写自动化安装工具脚本,具体要求如下 :

1. 菜单函数实现显示界面

2. yum函数判断yum是否正常

3. 安装rpm函数判断是否需要安装软件包,无法安装要退出脚本

4. 删除rpm函数判断是否需要删除软件包,无法删除要退出脚本

5. 重启服务函数,无法启动服务要退出脚本

6. mysql密码修改函数,无法修改密码要退出脚本

7. 安装论坛函数

8. 卸载论坛函数

卸载论坛的时候,需要将安装的包都卸载,并且需要删除如下文件

1. DNS遗留文件

2. 数据库遗留文件

3. apache遗留文件

4. LAMP论坛的遗留文件

1. 自定义lib库函数:

#!/bin/bash

#comment

###### 菜单显示函数 ########

menu(){

echo

echo -e "\t\t***自动化安装工具***\n\n"

echo -e "\t1.\t自动安装LAMP论坛\n"

echo -e "\t2.\t自动卸载LAMP论坛\n"

echo -e "\t0.\t退出菜单\n\n"

echo -n -e "\t\t你的选择是:"

read -n1 choice

}

###### 搭建yum源 ########

myyum(){

mkdir -p $DIR

mount /dev/cdrom $DIR &> /dev/null

yum clean all &> /dev/null

rm -rf /etc/yum.repos.d/*

cat << end > /etc/yum.repos.d/local.repo

[Server]

name=Server

baseurl=file://$DIR/Server

enabled=1

gpgcheck=0

end

echo -e "\nyum is ok"

}

###### yum 安装软件 #######

yuminstall(){

echo -e "\n开始安装lamp需要到软件包..."

for i in $SOFTS

do

rpm -q $i &> /dev/null

if (( $?!=0 ))

then

yum install $i -y &> /dev/null

if (($?==0))

then

echo -e "\n$i安装成功"

else

echo -e "\n$i安装出错"

exit 1

fi

else

echo -e "\n$i 已经安装"

fi

done

}

####### yum 卸载软件 #######

yumremove(){

echo -e "\n开始卸载lamp软件包..."

for i in $SOFTS

do

rpm -q $i &> /dev/null

if (( $?==0 ))

then

yum remove $i -y &> /dev/null

if (($?==0))

then

echo -e "\n$i卸载成功"

else

echo -e "\n$i卸载出错"

exit 1

fi

else

echo -e "\n$i 软件包未安装"

fi

done

}

####### 服务启动 ########

Serstart(){

service $1 restart &> /dev/null

if (($?==0))

then

echo -e "\n$1 已经重启成功"

else

echo -e "\n$1 服务有问题"

exit 1

fi

}

####### mysql密码测试 ######

mysqlpass(){

echo -e "\n开始设置mysql密码"

Serstart mysqld

mysql -u root -e "use test;"

if (( $?==0 ))

then

mysqladmin -uroot password '123' && echo -e "\nmysql 密码修改成功"

else

echo -e "\nmysql无法修改密码"

exit 1

fi

}

####### 检测dns环境 #######

chkdns(){

echo -e "\n开始配置DNS服务"

cat << EOF > /etc/named.conf

options {

directory "/var/named";

};

zone "$NAME"{

type master;

file "$NAME.zone";

};

EOF

cat << EOF > /var/named/$NAME.zone

\$TTL 1D

@ IN SOA dns.$NAME. root (

0 ; serial

1D ; refresh

1H ; retry

1W ; expire

3H ) ; minimum

IN NS dns.$NAME.

dns IN A $NET

bbs IN A $NET

EOF

chown root:named /var/named/$NAME.zone

echo "nameserver $NET"> /etc/resolv.conf

}

####### 检测虚拟主机 ########

chkvhost(){

echo -e "\n开始配置虚拟主机"

cat << EOF > /etc/httpd/conf.d/vhost.conf

NameVirtualHost $NET:80

<VirtualHost $NET:80>

DocumentRoot $ROOT

ServerName bbs.$NAME

</VirtualHost>

EOF

echo -e "\n虚拟主机配置完成"

Serstart named

Serstart httpd

}

####### 拷贝论坛文件 ########

cpfile(){

echo -e "\n开始复制论坛文件"

{

mkdir -p /tmp/softdir

rm -rf /tmp/softdir/*

unzip ./$SOFT -d /tmp/softdir/

rm -rf $ROOT

cp -a /tmp/softdir/upload $ROOT

} &> /dev/null

if (( $? != 0 ))

then

echo -e "\n复制文件出错"

exit 1

else

chown -R apache:apache ${ROOT}/{data,config,uc_*}

echo -e "\nlamp论坛安装完成请在浏览器中输入http://bbs.$NAME开始安装"

exit 0

fi

}

###### 删除遗留文件 #######

rmfile(){

echo -e "\n正在删除遗留文件...."

for file in $RMFILES

do

rm -rf $file &> /dev/null

done

echo -e "\n成功删除遗留文件"

exit 0

}

2.安装主程序:

#!/bin/bash

. ./lib.sh

SOFT="Discuz_X2.5_SC_UTF8.zip"

SOFTS="httpd mysql mysql-server mysql-devel php php-mysql bind bind-chroot"

DIR=/media/cdrom

ROOT=/var/www/bbs

NET=192.168.190.129

NAME=cc.com

RMFILES="$ROOT /etc/named.* /var/named /etc/httpd/conf.d /var/lib/mysql"

###### 安装主程序 ########

pinstall(){

if [ -d $ROOT ]

then

echo -e "\n\n\n\t\t\033[31m已经安装,请先卸载\033[0m"

return

else

echo -e "\n准备安装环境...."

myyum

yuminstall

mysqlpass

chkdns

chkvhost

cpfile

fi

}

###### 卸载程序 ######

uninstall(){

if [ ! -d $ROOT ]

then

echo -e "\n\n\n\t\t\033[31m未安装,请先安装\033[0m"

return

else

echo -e -n "\n\n\n\t\t\033[31m确定要卸载(yes/no)\033[0m"

while true

do

read que

case "$que" in

no|NO)

return

;;

yes|YES)

break

;;

*)

echo -e -n "\n\n\n\t\t\033[31m请输入(yes/no)\033[0m"

;;

esac

done

echo -e "\n准备卸载...."

myyum

yumremove

rmfile

fi

}

while true

do

clear

menu

case "$choice" in

0)

break

;;

1)

pinstall

;;

2)

uninstall

;;

*)

echo -e "\n\n\n\t\t\033[31m没有这个选项\033[0m"

;;

esac

echo -e -n "\n\n\t\tPress any key to return"

read -n1 any

done

clear

运行测试:

[root@server2 lamp_sh]# sh lamp.sh

***自动化安装工具***

1. 自动安装LAMP论坛

2. 自动卸载LAMP论坛

0. 退出菜单

你的选择是:1

准备安装环境....

yum is ok

开始安装lamp需要到软件包...

httpd 已经安装

mysql 已经安装

mysql-server 已经安装

mysql-devel 已经安装

php 已经安装

php-mysql 已经安装

bind 已经安装

bind-chroot 已经安装

开始设置mysql密码

mysqld 已经重启成功

mysql 密码修改成功

开始配置DNS服务

开始配置虚拟主机

虚拟主机配置完成

named 已经重启成功

httpd 已经重启成功

开始复制论坛文件

lamp论坛安装完成请在浏览器中输入http://bbs.cc.com开始安装
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: