码迷,mamicode.com
首页 > Web开发 > 详细

ansible-playbook roles 安装zabbix-agent 监控 php

时间:2019-08-10 09:48:21      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:列表   其它   def   目标   hand   ase   bash   book   erro   

Ansible为了层次化、结构化地组织Playbook,使用了角色(roles)。Roles能够根据层次型结构自动装载变量文件、task以 及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地 include它们,roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。 创建roles时一般需要以下步骤:首先创建以roles命名的目录。然后在roles目标下分别创建以个角色名称命令的目录,如 websevers等,在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用 不到的目录可以创建为空目录。最后在Playbook文件中调用各角色进行使用 roles内各目录含义解释 files:用来存放由copy模块或script模块调用的文件。 templates:用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。 tasks:此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的 task文件。 handlers:此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。 vars:此目录应当包含一个main.yml文件,用于定义此角色用到的变量。 defaults:此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。 meta:此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系 目录结构 [root@baiduyun zabbix]# tree /etc/ansible/roles/ /etc/ansible/roles/ ├── zabbix-agent │?? ├── files │?? │?? ├── check_service.conf │?? │?? ├── php-fpm_status.sh │?? │?? │?? ├── tasks │?? │?? ├── main.yml │?? │?? └── zabbix-agent.yml │?? ├── templates │?? │?? └── zabbix_agentd.j2 │?? └── vars cat check_service.conf UserParameter=php[*],/etc/zabbix/scripts/php-fpm_status.sh $1 [root@baiduyun files]# cat php-fpm_status.sh ######################################################################### # File Name: php-fpm_status.sh ######################################################################### #!/bin/bash listenqueue(){ #处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "listen queue:"|grep -vE "len|max"|awk ‘{print$3}‘ } listenqueuelen(){ #处于等待连接队列的套接字大小 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "listen queue len" |awk ‘{print$4}‘ } idle(){ #处于空闲状态的进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "idle processes" |awk ‘{print$3}‘ } active(){ #处于活动状态的进程数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "active" |awk ‘{print$3}‘|grep -v "process" } total(){ #进程总数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "total processes" |awk ‘{print$3}‘ } mactive(){ #从php-fpm启动到现在的进程处于活动状态数 wget --quiet -O - http://127.0.0.1:9996/status?auto |grep "max active processes:" |awk ‘{print$4}‘ } $1 [root@baiduyun tasks]# cat main.yml - include: zabbix-agent.yml tags: zabbix-agent [root@baiduyun tasks]# cat zabbix-agent.yml - name: Install Zabbix-Agent RPM yum: name: https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm state: installed - name: Install zabbix-agent register: zabbix-agent yum: name: zabbix-agent ignore_errors: true - name: create zabbix scripts directory file: path: /etc/zabbix/scripts state: directory mode: 0755 - name: Sync zabbix-agentd.conf template: src: /etc/ansible/roles/zabbix-agent/templates/zabbix_agentd.j2 dest: /etc/zabbix/zabbix_agentd.conf owner: root group: root mode: 0644 - name: php status copy: src: /etc/ansible/roles/zabbix-agent/files/php-fpm_status.sh dest: /etc/zabbix/scripts owner: root group: root mode: 0644 - name: php moban copy: src: /etc/ansible/roles/zabbix-agent/files/check_service.conf dest: /etc/zabbix/zabbix_agentd.d/ owner: root group: root mode: 0644 - name: zabbix-server start and enable systemd: name: zabbix-agent enabled: yes state: started [root@baiduyun templates]# cat zabbix_agentd.j2 PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=139.9.72.161 ListenPort=10050 ServerActive=139.9.72.161 Hostname={{agent_hostname}} Timeout=30 Include=/etc/zabbix/zabbix_agentd.d/*.conf 执行 ansible-playbook /etc/ansible/zabbix-agent.yml -i /etc/ansible/ssh/hosts -e "hosts=baidu agent_hostname=baiduyun" -b

ansible-playbook roles 安装zabbix-agent 监控 php

标签:列表   其它   def   目标   hand   ase   bash   book   erro   

原文地址:https://blog.51cto.com/12328206/2428128

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!