本文以在CentOS中自动执行shell脚本为例,介绍如何通过弹性伸缩和脚本自动化部署应用。
背景信息
Linux系统中,共有7个启动级别:
- 等级0:关机。
- 等级1:单用户模式。
- 等级2:无网络连接的多用户命令行模式。
- 等级3:有网络连接的多用户命令行模式。
- 等级4:不可用。
- 等级5:带图形界面的多用户模式。
- 等级6:重新启动。
在弹性伸缩自动创建ECS实例后,如您需要自动安装、更新程序和自动加载代码,可以在自定义镜像中存放执行脚本,并设置命令在操作系统启动后自动执行该脚本。然后在伸缩配置中使用该自定义镜像,自动创建ECS实例后即会自动执行脚本,完成自动化部署。
由于CentOS 6及以下系统采用system V init作为初始化进程,但CentOS 7采用了systemd作为初始化进程,两者的工作原理有较大差别。本文分别针对CentOS 6以及CentOS 7进行说明。
CentOS 6及以下系统自动执行脚本
本节演示如何在CentOS 6及以下系统自动执行脚本。
例如,您可以通过脚本执行phpwind安装程序(数据库密码仍需要您自己输入),示例脚本如下,请根据实际情况修改。
cd /tmp
echo "phpwind"
yum install -y \
unzip \
wget \
httpd \
php \
php-fpm \
php-mysql \
php-mbstring \
php-xml \
php-gd \
php-pear \
php-devel
chkconfig php-fpm on \
&& chkconfig httpd on
wget http://pwfiles.oss-cn-hangzhou.aliyuncs.com/com/soft/phpwind_v9.0_utf8.zip \
&& unzip -d pw phpwind_v9.0_utf8.zip \
&& mv pw/phpwind_v9.0_utf8/upload/* /var/www/html \
&& wget http://ess.oss-cn-hangzhou.aliyuncs.com/ossupload_utf8.zip -O ossupload_utf8.zip \
&& unzip -d ossupload ossupload_utf8.zip \
&& /bin/cp -rf ossupload/ossupload_utf8/* /var/www/html/src/extensions/ \
&& chown -R apache:apache /var/www/html
service httpd start && service php-fpm start
echo "安装云监控"
wget http://update2.aegis.aliyun.com/download/quartz_install.sh
chmod +x quartz_install.sh
bash quartz_install.sh
echo "安装完成"
CentOS 7系统自动化部署应用
本节演示如何在CentOS 7系统自动执行脚本。按照以下步骤,使用systemd时,在系统关闭状态仍能运行脚本。