ansible-playbook批量部署zabbix

一、需求

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

二、剧本实现

以下是以zabbix案例来操作!

---
  - hosts: "{{ host }}"
    remote_user: "{{ user }}"
    gather_facts: false
    tasks:
        - 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/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
时间: 2024-08-25 06:24:03

ansible-playbook批量部署zabbix的相关文章

Ansible playbook 批量修改服务器密码 先普通后root用户

fsckzy Ansible playbook 批量修改服务器密码 客户的需求:修改所有服务器密码,密码规则为Rfv5%+主机名后3位 背景:服务器有CentOS6.7,SuSE9.10.11,root不能直接登录,需先登录普通用户,再切换到root. 首先在hosts 下面添加一个组[test],下面跟ip,每行一个. ansible基于ssh连接inventory中指定的远程主机时,将以此处的参数指定的属性进行: ansible_ssh_port 指定ssh 端口 ansible_ssh_u

ansible一键批量部署nfs服务

一键安装nfs服务 #install nfs_server - hosts: 172.16.1.31    服务端   tasks:     -name: installnfs-utils rpcbind       yum: name=nfs-utils,rpcbind     -name: copyconffile       copy: src=/etc/ansible/nfs_conf/exports dest=/etc/exports #将nfs配置文件配置好直接发送过去     -n

ansible自动化部署zabbix客户端

本文主要介绍使用ansible playbook中roles,在不同os版本下批量部署zabbix客户端. 一.facts介绍 playbook的部分fetch信息 ansible版本2.2.1.0 使用setup模块获取 # ansible 192.168.1.12 -m setup "ansible_distribution": "CentOS",  "ansible_distribution_major_version": "6&

通过PlayBook部署Zabbix(6)

title: 通过PlayBook部署Zabbix(6) date: 2018-12-03 19:33:24 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署

zabbix批量部署Windows和Linux的agent

对Linux进行批量部署Zabbix-agent 我们这里使用的是ansible来对zabbix-agent进行批量部署,当然在Linux上也可以使用脚本来完成部署 环境 ansible:10.127.0.133 agent1:172.168.0.4 agent2:172.168.0.5 进行密钥授权认证实现免密登陆 为方便ansible对agent主机的管理,需要将ansible与agent进行公钥认证来实现免密登陆 ssh-keygen -t rsa ssh-copy-id -i /root

Centos6.5利用RubyGems的fpm制作zabbix_agent的rpm包,并使用ansible批量部署

一. 搭建rpm包制作环境 安装gcc [[email protected] ~]# yum install gcc 安装make [[email protected] ~]# yum install make 安装ruby源(ruby版本必须要在1.9.3以上,centos自带的是1.8的版本,需要自己编译安装) [[email protected] ~]# yum install ruby rubygems ruby-devel 查看ruby源 [[email protected] ~]# 

基于ansible role实现LAMP平台批量部署

前言 作为运维人员,当面对几十台或上百台服务器需要修改某个参数或部署某个平台,你将从何入手呢?ansible的出现很好的解决了这一困扰,ansible基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.本文带来的是基于Ansible Role实现LAMP平台批量部署. ansible简介 特性 No agents:不需要在被管控主机上安装任意客户端 No server:无服务器端

ansible批量部署服务

一.ansible 1.概念ansible是一个基于Python开发的自动化运维工具!其功能实现基于SSH远程连接服务!ansible可以实现批量系统配置.批量软件部署.批量文件拷贝.批量运行命令等功能2.网址:http://docs.ansible.com/ 官网3.特点不需要单独安装客户端(no agents),基于系统自带的sshd服务,sshd就相当于ansible的客户端.不需要服务端(no servers).需要依靠大量的模块实现批量管理.4.优点:(1) ansible软件特点:·

自动化运维Ansible批量部署服务+shell脚本批量推送公钥

一.概述分析 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护会使得工作效率低下.这时,部署自动化运维就可以尽可能安全.高效地完成这些工作.一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的ABem程序来完成管理功能,如: Puppet.Func. Zabbix等:另外一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,如: Ansible. Fabric等. - 下面介绍几款功能类似的自动化运