基于Linux集群的Ansible部署与自动化管理研究

2019-05-23 10:45孙春雨
中国管理信息化 2019年9期
关键词:自动化管理

孙春雨

[摘 要] 本文首先对Linux系统集群进行研究,其次对 Ansible在Linux集群下的部署与自动化管理方法进行研究,最后提出一种基于Linux集群下的Ansible工具部署与自动化管理方法。

[关键词] Linux;Ansible部署;自动化管理

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2019. 09. 074

[中图分类号] TP14 [文献标识码] A [文章编号] 1673 - 0194(2019)09- 0165- 02

0 引 言

Linux系统发行版本正在迅速变得功能完善,尤其在集群中得到了越来越广泛的应用,Linux集群节点的自动化管理是非常重要的一项工作。由于集群节点数目庞大,因此这项工作的实施过程显得过于烦琐,为提高Linux集群节点自动化管理的效率,在研究Ansible工具的基础上,提出一种基于Linux集群下的Ansible工具部署与自动化管理方法,实现集群节点自动化管理。

1 Linux集群介绍

Linux最常见的两种群集分为负载均衡群集和高可用性群集。

1.1 负载均衡群集

负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2,实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler。

1.2 高可用性群集

高可用集群即“HA集群”,也常称作“双机热备”,用于关键业务。通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务,实现高可用的开源软件有:heartbeat、keepalived,核心原来都是通过心跳线连接两台服务器。

2 Ansible工具介绍

Ansible是基于一致性、安全性、高可靠性设计的轻量级自动化工具,具有部署便捷、描述清晰等特性。

2.1 任务执行模式

Ansible任务执行模式可分为两种:ad-hoc与Playbook。其中ad-hoc模式为使用单个模块,支持批量执行单挑命令。Playbook是Ansible主要管理方式,它主要通过多个task集合完成一类功能,如Web服务的安装部署、数据库服务器的批量备份等。

2.2 Ansible工具特点

Ansible工具具有以下特点,应用代码自动化、系统管理配置自动化、轻量级管理,无须在客户端安装Agent、批量执行任务可编写成脚本,不用分发到远程就可执行等。

3 Ansible工具部署方法

3.1 定义主机hosts表

参照图1方式定义主机/etc/hosts表,其内容分别为需要管理的集群节点IP地址与对应的节点名称。

3.2 定义主机与规则组

Ansible通过定义好的主机与规则组Inventory指定了Ansible起作用的主机列表,Ansible默认读取 /etc/ansible/hosts 其中[dzgzz1]为管理的组名,dell16、dell17、dell23等为需要管理的节点,如下代码所示:

[dzgzz1]

dell16

dell17

dell23

dell47

3.3 利用ssh-keygen设置SSH无密码登录

3.3.1 创建秘钥

输入ssh-keygen –t rsa命令,显示如下:

Generating public/private rsa key pair

Enter file in which to save the key (/root/.ssh/id/rsa): (回车)

Created directory ‘/root/.ssh

Enter passphrase (empty for no passphrase):(回车)

Enter same passphrase again:(回车)

3.3.2 将秘钥发送给每一个集群管理节点

在系统中输入ssh-copy-id –i /root/.ssh/id_rsa.pub root@192.168.1.205,其中192.168.1.205为集群管理节点对应的ip,依次输入。

4 Ansible自动化管理研究

4.1 ad-hoc命定模块

ad-hoc命令模块即为单个命令执行模块,主要实现对集群节点执行单个命令,ansible常用命令模块有copy、touch、shell、file、ping等,在本文简单介绍下ping命令模块,例如查看某个节点是否能ping通,在管理界面输ansible dell47 -m ping 其中dell47为集群节点名称,ping为需要执行的命令模块,显示结果如下:

dell47 | SUCCESS => {

“changed”: false,

“ping”:pong

}

如果需要对多节点输入命令管理模块,只需将命令中的dell47换成集群节点所对应的组名称即可,例如ansible dzzgz1 –m ping ,其中dzgzz1 为组名称。

4.2 Playbook命令模块

在日常工作中Playbook是ansible主要管理方式,它是一個简单的配置管理和多主机部署系统,它主要通过多个task集合完成一类功能,Playbook工具的使用思路为在系统中创建一个.yml脚本文件,将想应用的命令写入脚本文件中,然后执行。例如对一个集群中的多个节点,在/tmp/sunchunyu目录下创建一个123的文件夹,再将本机中的/tmp/src/123.txt复制到节点/tmp/sunchunyu/123文件夹下,其代码如下:

- hosts:

remote_user: root

- name: create directory123

file: path=/tmp/sunchunyu/123 state=directory

- name: copy 123

copy: src=/tmp/src/123.txt dest=/tmp/sunchunyu/123

在命令行输入ansible-playbook dzgzz.yml 显示结果如图2所示。

在命令行输入ansible dzgzz1 -m shell -a “ls /tmp/sunchunyu”检查结果如下所示:

dell47 | SUCCESS | rc=0 >>

123

Dell17 | SUCCESS | rc=0 >>

123

Dell23 | SUCCESS | rc=0 >>

123

Dell116 | SUCCESS | rc=0 >>

123

5 结 语

本文在对Linux集群研究的基础上,研究自动化管理工具Ansible在集群当中的部署方式,通过研究ad-hoc命令模块管理方式与Playbook管理方式,提出了一种基于Linux集群下的Ansible工具部署与自动化管理方法。

主要参考文献

[1]戴波,丰佳.信息系统全业务集中运维的实践[J].电力信息化,2012(1):14-17.

[2]杨婧.SSH协议的研究与应用[J].计算机与数字工程,2011(8):112-114.

[3]黄隽.Linux网络编程的研究[J].电脑编程技巧与维护,2017(6):21-22.

[4]王鹏.基于Linux集群的并行计算[J].喀什师范学院学报,2005(3):73-75.

[5]张权,胡晓勤.一种基于Linux标准分区的快照方法[J].现代计算机:专业版,2017(7).

猜你喜欢
自动化管理
计算机软件工程项目的自动化管理分析
电子技术在智能电网中的应用研究
煤矿综合自动化系统设计研究
基于Java EE的毕业设计管理系统设计与实现