博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ansible-playbook批量部署zabbix
阅读量:6424 次
发布时间:2019-06-23

本文共 3175 字,大约阅读时间需要 10 分钟。

一、需求

    机房每次增加一批服务器,一些初始环境变量,监控端,脚本,时间校对,配置文件参数等一系修改操作,刚开始按步就班,也用到一些脚本完成,但高效性没能体现出来。现在升级到ansible,自动化部署应用,配置,编排task,把平常复杂工作变得简单,同时使得运维工作上更加标准化和控制!

二、剧本实现

    以下是以zabbix案例来操作!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
  
- hosts: 
"{
{ host }}"
    
remote_user: 
"{
{ user }}"
    
gather_facts: 
false
    
tasks:
        
- name: Install the 
'Development tools' 
package group
          
yum:
              
name: 
"@Development tools"
              
state: present
          
tags:
              
- Dev_tools
 
        
- name: Install packages
          
yum: state=present name={
{ item }}
          
with_items:
              
- gcc
              
- gcc-c++
              
- autoconf
              
- automake
              
- libxml2-devel
              
- sysstat
              
- vim
              
- iotop
              
- unzip
              
- htop
              
- iotop
              
strace
              
- wget
              
tar
              
- libselinux-python
              
rsync
              
- rdate
          
tags:
              
- packages
        
- name: Selinux modify disabled
          
lineinfile:
              
dest: 
/etc/selinux/config
              
regexp: 
'^SELINUX='
              
line: 
'SELINUX=disabled'
          
tags:
              
- testselinux
 
        
- name: Modify lineinfile
          
lineinfile:
              
dest: 
"{
{ item.dest }}"
              
state: present
              
regexp: 
"{
{ item.regexp }}"
              
line: 
"{
{ item.line }}"
              
validate: 
'visudo -cf %s'
          
with_items:
                
# - { 
                
#   dest: "/etc/zabbix/zabbix_agentd.conf",
                
#   regexp: "^Include",
                
#   line: "\n\n###Add include\nInclude=/etc/zabbix/zabbix_agentd.conf.d/*.conf" }
              
- {
                
dest: 
"/etc/sudoers"
,
                
regexp: 
"^Defaults    requiretty"
,
                
line: 
"# Defaults    requiretty" 
}
          
tags:
              
- testline
 
        
- name: Copy configuration 
file
          
copy:
              
src: 
"{
{ item.src }}"
              
dest: 
"{
{ item.dest }}"
              
owner: root
              
group: root
              
mode: 
"{
{ item.mode }}"
          
with_items:
              
- {
                
src: 
"/etc/init.d/zabbix_agentd"
,
                
dest: 
"/etc/init.d/zabbix_agentd"
,
                
mode: 
"0755"
}
          
tags:
              
- testcopy
        
- name: Create a directory
          
file
: path={
{ item }} state=directory mode=0750
          
with_items:
              
/etc/sudoers
.d
          
tags:
              
- testdir
 
        
- name: Looping over Fileglobs
          
copy: src={
{ item }} dest=
/etc/sudoers
.d/ owner=root mode=0440
          
with_fileglob:
              
/etc/sudoers
.d/*
          
tags:
              
- test_fileglobs
 
        
- name: synchronization of src on the control machine to dest on the remote hosts
          
synchronize:
            
src: 
"{
{ item.src }}"
            
dest: 
"{
{ item.dest }}"
            
recursive: 
yes
            
checksum: 
yes
 
          
with_items:
              
- {
                
src: 
"/etc/zabbix"
,
                
dest: 
"/etc/"
}
              
- {
                
src: 
"/usr/local/zabbix"
,
                
dest: 
"/usr/local/"
}
          
tags:
              
- sys_dir
 
        
- name: Ensure two job that runs of 
crontab
          
cron
:
            
name: 
"{
{ item.name }}"
            
minute: 
"{
{ item.minute}}"
            
job: 
"{
{ item.job}}"
          
with_items:
                
- {
                  
name: 
"Time synchronization"
,
                  
minute: 
"10"
,
                  
job: 
"/usr/bin/rdate -s 192.168.1.163 > /dev/null 2>&1"
}
                
- {
                  
name: 
"a job vmstat_output"
,
                  
minute: 
"1"
,
                  
job: 
"vmstat 1 10 > /tmp/vmstat_output"
}
                
- {
                  
name: 
"a job iostat_output"
,
                  
minute: 
"1"
,
                  
job: 
"bin/bash /usr/local/zabbix/script/iostat.sh"
}
          
tags:
              
- testcron
 
        
- name: Starting zabbix_agentd
          
shell: 
/usr/local/zabbix/script/zabbix_agent
.sh
          
tags:
              
- starting_zabbix_aqentd
 
        
- name: Install omsa
          
shell: sh 
/usr/local/zabbix/script/dell
.sh
          
tags:
              
- install_omsa
本文转自 zouqingyun 51CTO博客,原文链接:http://blog.51cto.com/zouqingyun/1882781,如需转载请自行联系原作者
你可能感兴趣的文章
python学习笔记(一)之列表
查看>>
解析企业Shell面试题
查看>>
CentOS6.0_X86_64 oracle 11g R2 开机自动启动(linux)
查看>>
Android UI开发第二十四篇——Action Bar
查看>>
细说暴库的原理与方法
查看>>
DOS程序SOL中文输出经验
查看>>
限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
查看>>
Docker在CentOS安装文档
查看>>
微软官方下载windows 7啦
查看>>
Windows Phone 实用开发技巧1-20合集(电子书+源代码)
查看>>
获取MDI窗体中控件坐标的方法/屏幕局部截图原位写入
查看>>
Tomcat配置及其LNMT/LAMT/LNAMT实现方式
查看>>
我谈网络扫描 -- 之二
查看>>
Android第三十七期 - 视觉动画下拉刷新
查看>>
Remository3.52简体中文语言包
查看>>
DSL技术分析
查看>>
2015年最新数据库流行排行榜
查看>>
Sql Server 错误5123/5120 附加数据库错误
查看>>
有趣的JavaScript数组
查看>>
MySQL权限详解
查看>>