当前位置: 首页 > news >正文

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,如需转载请自行联系原作者

相关文章:

  • 艾伟_转载:C#来创建和读取XML文档
  • 一例HP ADG数据恢复成功(8×73GB SCSI)
  • 艾伟_转载:LINQ to SQL、NHibernate比较(二)-- LINQ to SQL实例
  • php经典面试题
  • JavaScript控制图片横向滚动代码
  • 关于服务器缓存的思考
  • 伸向开源世界的“橄榄枝”
  • 运营中心:网站分析、网络广告注释
  • Fedora8上Apache Httpd与Tomcat6初集成
  • 转贴:下辈子,无论爱与不爱,都不会再见
  • 塔式,机架,刀片服务器
  • 静态网页和动态网页
  • 安全运维之:服务器遭受攻击后的一般处理过程
  • TNF拮抗剂相关炎性神经系统疾病
  • linux软件包管理rpm
  • [译] 怎样写一个基础的编译器
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【Linux系统编程】快速查找errno错误码信息
  • 【翻译】babel对TC39装饰器草案的实现
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • co模块的前端实现
  • Django 博客开发教程 8 - 博客文章详情页
  • httpie使用详解
  • java8 Stream Pipelines 浅析
  • MySQL QA
  • react-native 安卓真机环境搭建
  • 安卓应用性能调试和优化经验分享
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 代理模式
  • 高性能JavaScript阅读简记(三)
  • 欢迎参加第二届中国游戏开发者大会
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 嵌入式文件系统
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 想写好前端,先练好内功
  • 小程序测试方案初探
  • 新书推荐|Windows黑客编程技术详解
  • 延迟脚本的方式
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 阿里云ACE认证学习知识点梳理
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #pragma once
  • #每天一道面试题# 什么是MySQL的回表查询
  • $(function(){})与(function($){....})(jQuery)的区别
  • $NOIp2018$劝退记
  • ()、[]、{}、(())、[[]]命令替换
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Python) SOAP Web Service (HTTP POST)
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)换源+apt-get基础配置+搜狗拼音