ansible-playbook批量部署zabbix
一、需求
机房每次增加一批服务器,一些初始环境变量,监控端,脚本,时间校对,配置文件参数等一系修改操作,刚开始按步就班,也用到一些脚本完成,但高效性没能体现出来。现在升级到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,如需转载请自行联系原作者