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.


本文标签: 部署 架构 批量