admin 管理员组文章数量: 887019
2024年2月26日发(作者:18岁女rapperdisssubs欢迎您)
总第23卷259期2021年3月大众科技Popular
Science
&
TechnologyVol.23
No.3March
2021基于Ansible自动化运维系统批量部署
LAMP架构的设计与实现李湘林向全韦美雁潘学文(湖南科技学院电子与信息工程学院,湖南永州425199)【摘
要】文章针对各大公司企业对网页web框架的需求,设计了一种基于Ansible自动化运维系统批量部署LAMP架构
方案。该方案在Linux系统下设计实现,使用了
Linux命令、Shell语言、Apache服务、Mysql服务、Php服务和Ansible自动化
运维工具。利用Ansible自动化运维工具的批量系统配置、批量程序部署、批量运行命令等功能,编写Playbook脚本,批量部
署LAMP架构,能够在短时间内部署出企业所需求的LAMP架构数量。经测试表明,Ansible自动化运维系统能大大节省传统
运维手动部署LAMP架构的时间,降低了部署过程中的出错率。在实际生产环境中,运用Ansible能够提升企业工作效率,尤
其在管理50台以上的服务器的场合下更为明显。【关键词】Ansible;
LAMP架构;服务;批量部署【中图分类号】TP311.52
【文献标识码】A
【文章编号】1008-1151(2021)03-0001-04Design
and
Implementation
of
Batch
Deployment
LAMP
Architecture
Based
on
Ansible
Automated
Operation
and
Maintenance
SystemAbstract:
Aiming
at
the
demands
of
various
companies
for
web
page
framework,
a
batch
deployment
LAMP
architecture
scheme
based
on
Ansible
automatic
operation
and
maintenance
system
was
scheme
is
designed
and
implemented
under
Linux
system,
using
Linux
command,
Shell
language,
Apache
service,
Mysql
service,
Php
service
and
Ansible automatic
operation and
maintenance
tools.
By
using
the batch
system
configuration,
batch
program
deployment
and
batch running
command
and
other
functions ofAnsible
automatic
operation
and
maintenance
tool,
we
can
write
Playbook
script
and
batch
deploy
LAMP
architecture,
which
can
deploy
the
number
of
LAMP
architecture
required
by
enterprises
in
a
short
time.
The
test
results
show
that
Ansible
automatic operation
and
maintenance
system
can
greatly
save
the
time
of
traditional
operation
and
maintenance
manual
deployment
of
LAMP
architecture,
and
reduce
the
error
rate
in
the
deployment
process.
In
the
actual
production
environment,
the
use
ofAnsible
can
improve
the
work
efficiency
of
enterprises,
especially
in
the
case
of
managing
more
than
50
words:
Ansible;
LAMP
architecture;
service;
batch
deployment引言根据最新中国互联网络信息中心(CNNIC)公布的《中
国互联网络发展状况统计报告》数据显示,截至2020年3月,
术的发展传统的运维已经不适合现代计算机的发展,通过手
动来一个一个搭建的方法不仅麻烦、效率低下,且非常不利
于维护和扩展。运维自动化就是把日常运维工作中一些需要
手动执行的工作转化为自动化执行,把一些重复性的工作也交
我国网民规模达9.04亿,并且存在有超过十亿的互联网网站。
目前,很多企业服务器系统以Linux系列和Windows系列为
给系统自动执行,例如网站项目的部署和测试〔"I。本文针对各大公司企业对网页web框架的需求,设计了
主。随着各种业务对IT的依赖性渐重以及云计算技术的普及,
企业平均的IT基础架构规模正不断扩张。有些Web2.0企业
一种基于Ansible自动化运维系统批量部署LAMP架构,集
中控制服务器,以满足很多企业发展的需求。可能会需要在两个星期内增加上千台服务器,当前计算机技
【收稿日期】2021-01-05【基金项目】湖南省自然科学基金项目(NO.2020JJ4327);湖南省教育厅科学研究项目(NO.18C1063
);湖南科技学院
校级科研项目(NO.20XKY051
);湖南科技学院应用特色学科建设项目。【作者简介】李湘林(1998-),男,湖南常德人,湖南科技学院电子与信息工程学院学生,研究方向为电子与信
息工程。【通信作者】潘学文(1983-),男,湖南永卅人,湖南科技学院电子与信息工程学院讲师,从事电子与通信方面课程
教学工作。-1
-
1
LAMP和Ansible技术介绍LAMP,即
Linux+Apache+Mysql/MariaDB+Perl/PHP/
Python的首字母缩写。这是一组常用来搭建动态网站或者服
务器的开源软件,它们本身都是各自独立的程序,但是因为
常被放在一起使用,因此拥有了越来越高的兼容度,共同组
成了一个强大的Web应用程序平台⑷。LAMP架构由于具有
简易性、安全性、低成本、灵活扩展性等特点和优势,应用
的普及范围扩大,已从简单、小型系统的应用扩充到复杂、
大型系统的应用,形成了一种发展潮流,并开始与J2EE和.Net
商业软件形成三足鼎立之势,受到整个IT界的关注。越来越
多的供应商、用户和企业投资者逐渐认识到,使用LAMP开
源软件组成的平台来构建、运行各种商业应用以及协作构建
各种网络应用程序,现已变为一种可能和实践,其变得更加
具有竞争力、更加吸引客户。无论是性能、质量还是价格,
LAMP架构都将成为企事业单位信息化所必须考虑的平台。Ansible,
一种集成IT系统的配置管理、应用部署、执行
特定任务的开源平台。它是一款基于Python开发的开源的自
动化运维工具,由Paramiko和PyYAML两个关键模块构建。
它能够很大程度简化运维中的配置管理与流程控制方式,利
用推送方式对客户系统加以配置,所有工作都可在主服务器
端完成⑸。Ansible主要可实现批量系统配置、批量程序部署、
批量运行命令、批量执行任务等功能。2
LAMP架构的搭建与实现2.1
LAMP架构的搭建传统的LAMP架构搭建都是由运维工作人员手动搭建
的,本文研究的Ansible批量部署LAMP架构需要提前将
LAMP架构在Ansible主机上搭建成功,才能使用其批量部署
的功能,LAMP架构搭建的流程图如图1所示。图1
LAMP架构搭建的流程图LAMP架构搭建过程如下:(1)在服务器上配置好yum源,清理yum源缓存并重
新建立yum缓存,关闭服务器的防火墙。-2-(2)
在服务器上安装httpd软件,安装完成后httpd服务
是默认启动的。(3)
在服务器上安装mariadb-server
mariadb软件,安
装完成后,mysql服务是默认不启动的,需要创建一个目录作
为数据库存放数据的位置。mysql服务安装后数据存放目录是
默认的,需定义一个目录并把默认目录修改成自己定义的目
录,方便数据查找,修改mysql的主配置文件(),并
把默认存放数据的位置修改成自己定义的。找到配置文件里
面的datadir=/car/lib/mysql这一行,把存放路径修改成自己定
义的目录,即:datadir=/mydata/data□修改完毕后,更改属主
信息,启动mysql服务mariadb,从启动开始后,产生数据都
会存放在自己定义的目录。(4)
在服务器上安装php
php-mysql软件,安装完成后,
在httpd的网页目录(/var/www/html/)下提供一个php测试
页,即网站首页文件,
—般内容默认为:添加完成后,重启httpd服务,关闭系统防火墙,在浏览
器输入当前服务器的IP地址即可看到搭建成功后的以LAMP
架构为框架的web网页。web网页的具体内容可以根据公司
的要求来自定义设计,性能优化和网页的抗并发能力都可以
通过修改服务的配置文件来实现。2.2
Ansible平台的部署Ansible具有批量系统配置、批量程序部署、批量运行命
令等功能,Ansible平台部署完成后,可执行一些命令批量控
制Ansible主机清单里被控制的服务器,Ansible命令执行流
程图如图2。执行命令返回结果给控制机图2
Ansible命令执行流程图
Ansible平台部署过程如下:(1)
在服务器上配置好yum源,配置完成后,清理yum
源缓存并重新建立yum缓存,最后关闭服务器的防火墙。(2)
yum
安装
ansible
软件。(3)
定义主机清单,把需要被控制的服务器的IP地址
都添加到ansible主机清单配置文件(/etc/ansible/hosts)里面,
编写内容如下:[web-servers]
#主机组名192.168.0.107
#被控制的服务器的IP192.168.0.108这里需要控制多少台服务器,就把需要控制的服务器所
有的1P地址写入主机清单就行了。本方案用了两台被控制的
主机做测试。建立ssh免密钥连接,实现ansible主机能够免密登录到
被控制的服务器主机,在ansible主机上执行命令ssh-keygen
开始生成公钥。然后把生成的公钥发送到被控制的服务器上,
分别执行命令
ssh-copy-id
************.0.107,
ssh-copy-
id
************.0.108o最后测试能否免密登录到被控制的服务
器主机上,需要控制多少台服务器,就执行多少次命令,只
是IP地址不同而己。2.3
Playbook
的设计Playbook是本设计方案的主要实现手段。Playbook是
Ansible自动化运维系统里用于配置,部署和管理被控节点的
一个任务列表文件。通过执行Playbook中的一系列task,可
以让被控主机达到预期的状态。在Playbook中可以编排有序
的执行过程,甚至于要做到在多组机器间,来回有序地执行
特别指定的步骤,可以同步或异步的发起任务。利用Playbook
的这个功能,可以实现LAMP架构的自动搭建,并且可以同
时控制多台服务主机,同时自动搭建LAMP架构。Ansible批量部署LAMP架构的Playbook的执行流程图
如图3所示。图3
Playbook的执行流程图Ansible批量部署LAMP架构的Playbook的设计过程如下:(1)编写prepare
(前期准备)的Playbook,
LAMP架构
的搭建需要先配置好yum源,清除原来的yum缓存并创建新
的yum缓存,然后关闭防火墙,设计思路如下:-name:
install
wget
#任务描述信息shell:
yum
install
-y
wget
#安装
wget
命令-name:
delete
yum
configshell:
rm
-rf
/etc/.d/*
#删除原有的
yum
配置文件-name:
make
aliyun-osshell:
echo
n[aliyun-os]H
»
/etc/.d/CentOS-
&& echo
nname=aliyun-osn
»
/etc/.d/
&&
echo
nbaseiirl=.
com/centos/7/os/x86_64/M
»
/etc/.d/CentOS-Base.
repo &&
echo nenabled=lH
»
/etc/.d/CentOS-
&&
echo
ngpgcheck=On
»#下载新的yum配置文件-name:
clean
the
yum
reposhell:
yum
clean
all
#清除原有的yum缓存信息-name:
clean
the
iptablesshell:
iptables
-F
#清除原有防火墙规则,不然后可能上不了网(2)
构建httpd的任务,传统LAMP架构搭建过程中,
安装完所有服务后,需要在httpd的网页目录下添加一个php
的测试页,在编写httpd的Playbook时,这里需要注意一个点,
要把原有的Apache的配置文件全部删掉,如果不删除,copy
任务是不会执行的,因为当源文件和目标文件一样时,copy
命令是不会执行的,如果copy命令不执行,那么noyify将不
调用handler,设计思路如下:-name:
web
server
installyum:
name=httpd
state=present
#安装
httpd
服务-name:
provide
test
pagecopy:
src=
desWvar/www/html
#提供测试页-name:
delete apache configshell:
rm
-rf
/etc/httpd/
#删除原有的
apache配置文件-name:
provide configuration filecopy:
src=
dest=/etc/httpd/#提供httpd的配置文件notify:
restart
httpd
#当前面的copy复制成功后,通过notify通知名字为restart
httpd的handlers运行。(3)
构建
httpd
的
handlers
(监控
httpd),用来监控
httpd
的模块,设计思路如下:-name:
restart
httpdservice:
name=httpd
enabled=yes
state^restarted
#服
务名—httpd?启用=是,状态=重新启动(4)
部署mariadb数据库,传统LAMP架构搭建过程中,
mysql安装成功后需要更改数据存放目录和属主信息,然后再
启动,设计思路如下:-name:
install
the
mysqlyum:
name=mariadb-server
state=present
#
安装
mysql服务-name:
mkdir
date
directoryshell:
mkdir
-p
/mydata/data
#创建挂载点目录-name:
provide
configration
filecopy:
src=
desWetc/
#提供
mysql
的配置文件-name:
chage
the
ownershell:
chown
-R
mysql:mysql
/mydata/*
#更改属主和属组-name:
start
mariadbservice:
name=mariadb
enabled=yes
state=started
#
启动mysql服务(5)
构建php的任务,传统LAMP架构搭建过程中,php
只要安装完毕即可,设计思路如下:-name:
install
phpyum:
name=php
state=present
#安装
php-name:
install
php-mysqlyum:
name=php-mysql
state=present
#安装
php
与mysql交互的插件(6)
定义整个LAMP架构的任务,把要执行的内容列出
来,设计思路如下:-name:
LAMP
build#LAMP架构remote
user:
root#root权限hosts:
web-servers#主机组roles:#需要执行的规则-4--prepare-mysql■php-httpd方案经过搭建和调试,Ansible服务端执行命令后,开始
对被控制的服务器自动部署LAMP架构,部署过程很快,只
需1分钟左右便可部署成功,工作效率很高。在实际工作中,
Playbook不仅可以用来批量部署服务器,还能用于后续的管理,
批量执行命令,查看被管理的所有主机的CPU信息,各种服
务的状态等。3结束语本文设计的基于Ansible自动化运维系统批量部署LAMP
架构的方案,运用了智能运维思路来建设维护云中心的体系,
提升运维质量效率。该方案不仅能提高IT运维人员的工作效
率,还能满足公司所需部署的LAMP架构数量,对提升公司
的生产效率有很大的帮助。【参考文献】[1]
黄巨涛,杨永娇,刘梓健,等.基于Ansible的电力云平
台自动部署系统设计[J].电子设计工程,2020,
28(3):
43-46, 51.[2]
刘威.基于Ansible自动化运维的信息系统故障预测技术
[J],电子技术与软件工程,2020(1):
90-91.[3]
罗宁.基于LAMP架构的服务器并发性能优化研究[J].
数字通信世界,2019(8):
126,
22.[4]
李小娜,张释如,张雨珊,等.LAMP架构在嵌入式平台
上的移植与搭建[J].现代电子技术,2018,
41(20):
114-117,
121.[5]
陆冰芳,粟邈如.基于Ansible的web形式自动化运维系
统的研究与设计[JJ.数字技术与应用,2017(12):
151-152.
版权声明:本文标题:基于Ansible自动化运维系统批量部署LAMP架构的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708934452h534771.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论