monicazhang 发表于 2017-10-6 19:48:40

如何运用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---
- 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=\'#\'" /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=\'#\'" /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/basusr/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: susr/local/zabbix/script/dell.sh
tags:
- install_omsa




原创: ansible分享

東東 发表于 2020-11-26 08:21:06

谢谢分享
页: [1]
查看完整版本: 如何运用ansible-playbook批量部署zabbix