您的位置:首页 > 其它

4.saltstack使用指南:使用saltstack部署zabbix

2016-12-06 17:28 573 查看

使用saltstack部署zabbix

使用saltstack批量部署服务是工作中一种常见的内容,对于一个服务的部署可以分为:前期准备(系统资源的设定、参数调整、软件包的下载)安装配置启动这几个步骤。

本文以zabbix客户端的设定为例,向大家展示如何用saltstack部署服务。

部署步骤

1.首先利用pillar定义配置文件中一些关键的数据,例如zabbix server的IP(如果有需求还可以设置开放端口、客户端名称)。在整个部署开始之前,我们需要了解pillar和file的相关目录信息,在master的配置文件中:

file_roots:
base:
- /srv/salt/prod
dev:
- /srv/salt/dev/services
- /srv/salt/dev/states
prod:
- /srv/salt/prod/services
- /srv/salt/prod/states


以及:

pillar_roots:
base:
- /srv/pillar


file_roots以及pillar_roots里的base、dev和prod会在后续的配置中经常使用,默认情况下我们在每个base地址下创建一个top.sls文件。

2.pillar文件的配置

pillar的根文件top.sls:

[root@server2 pillar]# cat top.sls
base:
'*':
- zabbix


指定了任何minion都包含zabbix.sls的静态数据,在zabbix.sls文件中我们指定了zabbix_server的ip地址:

[root@server2 pillar]# cat zabbix.sls
zabbix-agent:
Zabbix_Server: 192.168.42.129
port: 10050


查看下pillar中定义的Zabbix_Server和port的值:

[root@server2 pillar]#  salt '*' pillar.items
minion-192.168.42.130:
----------
zabbix_agent:
----------
Zabbix_Server:
192.168.42.129
port:
10050
minion-192.168.42.128:
----------
zabbix_agent:
----------
Zabbix_Server:
192.168.42.129
port:
10050


3.zabbix服务配置

此示例中使用源码进行安装,请提前准备好zabbix 源码包以及配置文件的模板。

[root@server2 files]# pwd
/srv/salt/prod/zabbix/files
[root@server2 files]# ls
zabbix-3.2.1.tar.gz  zabbix_agentd.conf


查看file_roots目录(/srv/salt/prod)中的内容:

[root@server2 prod]# ls
top.sls  zabbix


首先编写top.sls文件:

[root@server2 prod]# cat top.sls
base:
'*':
- zabbix.zabbix_agent


这里的base指的是file_roots定义目录中的base:

file_roots:
base:
- /srv/salt/prod


在这个目录中有一个zabbix目录,该目录中有一个zabbix_agent.sls文件,主要的配置都在该文件中:

[root@server2 zabbix]# cat zabbix_agent.sls
include:
- zabbix.common_install

create_zabbix_user:
user.present:
- name: zabbix
- shell: /sbin/nologin
group.present:
- name: zabbix

zabbix_tar:
file.managed:
- name: /tmp/zabbix-3.2.1.tar.gz
- source: salt://zabbix/files/zabbix-3.2.1.tar.gz
- user: zabbix
- group: zabbix
- mode: 0644

/opt/app:
file.directory:
- user: zabbix
- group: zabbix

zabbix_decompression:
cmd.run:
- name: tar xvf /tmp/zabbix-3.2.1.tar.gz -C /opt/app
- unless: test -d /opt/app/zabbix-3.2.1
- require:
- file: /tmp/zabbix-3.2.1.tar.gz

zabbix_install:
cmd.run:
- name: cd /opt/app/zabbix-3.2.1 && ./configure --enable-agent && make && make install
- require:
- cmd: zabbix_decompression

/usr/local/etc/zabbix_agented.conf:
file.managed:
- name: /usr/local/etc/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- user: zabbix
- group: zabbix
- mode: 0644
- template: jinja
- defaults:
Server: {{pillar['zabbix_agent']['Zabbix_Server']}}
- require:
- cmd: zabbix_install

run_zabbix:
cmd.run:
- name: /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
- require:
- cmd: zabbix_install
- watch:
- file: /usr/local/etc/zabbix_agentd.conf


在该文件的开始有一个include操作,安装zabbix之前系统可能需要先安装相关软件包和编译工具,所以把这个操作放在单独的zabbix.common_install文件中,该文件也在/srv/salt/prod/zabbix目录。内容如下:

[root@server2 zabbix]# cat common_install.sls
pkg-init:
pkg.installed:
- names:
- gcc
- gcc-c++
- glibc
- make
- autoconf
- openssl
- openssl-devel


接下来的过程包括:

(1)zabbix用户和组的创建;

(2)zabbix源码包的拷贝;

(3)源码包的解压缩和配置安装;

(4)zabbix客户端配置文件(zabbix_agentd.conf)的部署;

(5)zabbix服务的开启;

4.执行过程:

-------------

[root@server2 zabbix]# salt '*' state.highstate

Succeeded: 15 (changed=3)
Failed:     0
-------------
Total states run:     15
Total run time:   26.597 s


小结

本节以zabbix_agent的配置为例,介绍了服务部署的一般过程,其他的基础设施服务也可以采用相同的流程进行部署。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件 需求 工作