Ansible-playbook roles安裝zabbix客戶端實(shí)例(學(xué)習(xí)筆記三十)

目前我的playbook只允許centos或redhat 6系列系統(tǒng)來安裝zabbix客戶端,并且客戶端的版本是2.0.6.

下面是playbook的結(jié)構(gòu)

14:29:30?#?pwd

/etc/ansible/roles

root@ip-10-10-10-10:/etc/ansible/roles

14:29:37?#?tree?zabbix_client_*

zabbix_client_delete???刪除已經(jīng)安裝的zabbix客戶端

├──?files????????????存放文件的

├──?handlers????????重啟的東東

├──?meta????????????galaxy_info的信息

│???└──?main.yml????

├──?tasks???????????操作的任務(wù)流程

│???├──?delete.yml??

│???└──?main.yml

├──?templates???????模板

└──?vars????????????變量

????└──?main.yml

zabbix_client_install

├──?files

│???└──?zabbix-2.0.6.tar.gz

├──?handlers

├──?meta

│???└──?main.yml

├──?tasks

│???├──?copy.yml

│???├──?delete.yml

│???├──?install.yml

│???└──?main.yml

├──?templates

│???├──?zabbix_agentd

│???└──?zabbix_agentd.conf

└──?vars

????└──?main.yml


12?directories,?13?files

下面是先介紹一下安裝方面zabbix_client_install的內(nèi)容

1、galaxy_info的信息

14:32:15?#?cat?/etc/ansible/roles/zabbix_client_install/meta/main.yml?

galaxy_info:

??author:?Deng?Lei

??description:?Install?Zabbix?Client?

??license:?MIT

??min_ansible_version:?1.6

??platforms:

??-?name:?CentOS

????versions:

????-?6

??categories:

??-?Monitor

dependencies:?[]

2、task里的copy.xml信息

14:33:35?#?cat?/etc/ansible/roles/zabbix_client_install/tasks/copy.yml?

??-?name:?Stop?Exist?Zabbix?Client?Service?In?Redhat?Client

????shell:?ps-ef|grepzabbix|grep-vgrep|awk'{print?$2}'|xargskill-9?>>/dev/null2>&1

????ignore_errors:?yes

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Delete?Exist?Zabbix?Client?Dir?In?Redhat?Client

????shell:?rm-rf?{{?zabbix_dir?}}/zabbix

????ignore_errors:?yes

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Install?Base?Require?Software?In?Redhat?Client

????yum:?name={{?item?}}?state=latest

????with_items:

??????-?telnet

??????-?dmidecode

??????-?tar

??-?name:?Create?Zabbix?User?In?Redhat?Client

????user:?name={{?zabbix_user?}}?state=present?createhome=no?shell=/sbin/nologin

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Copy?Zabbix?Client?Software?To?Redhat?Client

????copy:?src=zabbix-{{?zabbix_version?}}.tar.gz?dest=/tmp/zabbix-{{?zabbix_version?}}.tar.gz?owner=root?group=root

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Uncompression?Zabbix?Client?Software?To?Redhat?Client

????shell:?tarzxf?/tmp/zabbix-{{?zabbix_version?}}.tar.gz?-C?{{?zabbix_dir?}}/

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Copy?Zabbix?Start?Script?To?Redhat?Client

????template:?src=zabbix_agentd?dest=/etc/init.d/zabbix_agentdowner=root?group=root?mode=0755

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Copy?Zabbix?Config?To?Redhat?Client

????template:?src=zabbix_agentd.conf?dest={{?zabbix_dir?}}/zabbix/conf/zabbix_agentd.conf?owner={{?zabbix_user?}}?group={{?zabbix_user?}}?mode=0644

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

此文件是復(fù)制對應(yīng)的文件到客戶端

3、task的install.yml信息

14:34:26?#?cat?/etc/ansible/roles/zabbix_client_install/tasks/install.yml?

??-?name:?Modify?Zabbix?Dir?Permission?In?Redhat?Client

????file:?path={{?zabbix_dir?}}/zabbixowner={{?zabbix_user?}}?group={{?zabbix_user?}}?mode=0755

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Check?Zabbix?User?Sudo?Permission?In?Redhat?Client

????shell:?grep"{{?zabbix_user?}}"/etc/sudoers|wc-l

????register:?zabbix_sudoer

????ignore_errors:?True

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Give?Sudo?Permission?To?Zabbix?User?In?Redhat?Client

????shell:??echo"{{?zabbix_user?}}?ALL=(root)?NOPASSWD:/bin/netstat,?/usr/bin/omreport">>?/etc/sudoers

????when:??ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6?and?zabbix_sudoer|int?==0

??-?name:?Start?Zabbix?Service?In?Redhat?Client

????shell:?/etc/init.d/zabbix_agentdstart

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

??-?name:?Add?Boot?Start?Zabbix?Service?In?Redhat?Client

????shell:?chkconfig?--level?345?zabbix_agentd?on

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

此文件主要是安裝

4、tasks的delete.yml信息

14:35:08?#?cat?/etc/ansible/roles/zabbix_client_install/tasks/delete.yml?

??-?name:?Delete?Zabbix?compression?Software?In?Redhat?Client

????shell:?rm-rf?/tmp/zabbix-{{?zabbix_version?}}.tar.gz

????when:?ansible_os_family?==?"RedHat"and?ansible_lsb.major_release|int?==?6

此文件是安裝完成后,刪除安裝前的文件

5、tasks的mail.yml

14:35:37?#?cat?/etc/ansible/roles/zabbix_client_install/tasks/main.yml?

-?include:?copy.yml

-?include:?install.yml

-?include:?delete.yml

此文件是允許運(yùn)行哪個(gè)文件

6、templates的zabbix_agentd

15:15:45?#?cat?/etc/ansible/roles/zabbix_client_install/templates/zabbix_agentd

#!/bin/bash

#

#?chkconfig:?-?85?15

#?description:?Zabbix?client?script.

#?processname:?Zabbix

.?/etc/profile

SERVICE="Zabbix?agent"

DAEMON={{?zabbix_dir?}}/zabbix/sbin/zabbix_agentd

PIDFILE=/tmp/zabbix_agentd.pid

CONFIG={{?zabbix_dir?}}/zabbix/conf/zabbix_agentd.conf

zabbix_agent_status=`psaux|grepzabbix_agentd.conf|grep-vgrep|wc-l`

zabbix_agent_pid=`psaux|grepzabbix_agentd|grep-vgrep|awk'NR==1{print?$2}'`

#?Source?function?library.

.?/etc/rc.d/init.d/functions

#?Source?networking?configuration.

.?/etc/sysconfig/network

functioncheck()

{

if[?$??-eq0?];then

????action?$"Operating?is:"/bin/true

else

????action?$"Operating?is:"/bin/false

fi

}

case$1?in

??'start')

????if[?-x?${DAEMON}?]

????then

??????$DAEMON?-c?$CONFIG

??????#?Error?checking?here?would?be?good...

??????echo"${SERVICE}?started."

????else

??????echo"Can't?find?file?${DAEMON}."

??????echo"${SERVICE}?NOT?started."

????fi

????check

??;;


??'stop')

????if[?-s?${PIDFILE}?]

????then

??????ifkill`cat${PIDFILE}`?>/dev/null2>&1

??????then

????????echo"${SERVICE}?terminated."

????????rm-f?${PIDFILE}

??????fi

????fi

????check

??;;

??'restart')

???/bin/bash$0?stop

????sleep5

????/bin/bash$0?start

??;;


??'status')

????if[?$zabbix_agent_status?-ne0?];then

????????echo"Zabbix?Agentd?is?running?($zabbix_agent_pid)"

????else

????????echo"Zabbix?Agentd?is?not?running!"

????fi

????;;


*)

????echo"Usage:?$0?{start|stop|status|restart}"

;;


esac

exit0

這個(gè)文件是啟動(dòng)客戶端的腳本

7、templates的zabbix_agentd.conf

15:16:36?#?cat?/etc/ansible/roles/zabbix_client_install/templates/zabbix_agentd.conf?

#?This?is?a?config?file?for?the?Zabbix?agent?daemon?(Unix)

#?To?get?more?information?about?Zabbix,?visit?http://www.zabbix.com


############?GENERAL?PARAMETERS?#################


###?Option:?PidFile

#?? Name?of?PID?file.

#

#?Mandatory:?no

#?Default:

#?PidFile=/tmp/zabbix_agentd.pid


###?Option:?LogFile

#?? Name?of?log?file.

#?? If?not?set,?syslog?is?used.

#

#?Mandatory:?no

#?Default:

#?LogFile=


LogFile=/tmp/zabbix_agentd.log


###?Option:?LogFileSize

#?? Maximum?size?of?log?file?in?MB.

#?? 0?-?disable?automatic?log?rotation.

#

#?Mandatory:?no

#?Range:?0-1024

#?Default:

#?LogFileSize=1


###?Option:?DebugLevel

#?? Specifies?debug?level

#?? 0?-?no?debug

#?? 1?-?critical?information

#?? 2?-?error?information

#?? 3?-?warnings

#?? 4?-?for?debugging?(produces?lots?of?information)

#

#?Mandatory:?no

#?Range:?0-4

#?Default:

#?DebugLevel=3


###?Option:?SourceIP

#?? Source?IP?address?for?outgoing?connections.

#

#?Mandatory:?no

#?Default:

#?SourceIP=


###?Option:?EnableRemoteCommands

#?? Whether?remote?commands?from?Zabbix?server?are?allowed.

#?? 0?-?not?allowed

#?? 1?-?allowed

#

#?Mandatory:?no

#?Default:

#?EnableRemoteCommands=0


###?Option:?LogRemoteCommands

#?? Enable?logging?of?executed?shell?commands?as?warnings.

#?? 0?-?disabled

#?? 1?-?enabled

#

#?Mandatory:?no

#?Default:

#?LogRemoteCommands=0


#####?Passive?checks?related


###?Option:?Server

#?? List?of?comma?delimited?IP?addresses?(or?hostnames)?of?Zabbix?servers.

#?? Incoming?connections?will?be?accepted?only?from?the?hosts?listed?here.

#?? No?spaces?allowed.

#?? If?IPv6?support?is?enabled?then?'127.0.0.1',?'::127.0.0.1',?'::ffff:127.0.0.1'?are?treated?equally.

#

#?Mandatory:?no

#?Default:

#?Server=zabbix-server-external.autoclouds.net


Server={{?zabbix_server_ip?}}


###?Option:?ListenPort

#?? Agent?will?listen?on?this?port?for?connections?from?the?server.

#

#?Mandatory:?no

#?Range:?1024-32767

#?Default:

ListenPort={{?zabbix_port?}}


###?Option:?ListenIP

#?? List?of?comma?delimited?IP?addresses?that?the?agent?should?listen?on.

#?? First?IP?address?is?sent?to?Zabbix?server?if?connecting?to?it?to?retrieve?list?of?active?checks.

#

#?Mandatory:?no

#?Default:

#?ListenIP=0.0.0.0


###?Option:?StartAgents

#?? Number?of?pre-forked?instances?of?zabbix_agentd?that?process?passive?checks.

#?? If?set?to?0,?disables?passive?checks?and?the?agent?will?not?listen?on?any?TCP?port.

#

#?Mandatory:?no

#?Range:?0-100

#?Default:

#?StartAgents=3


#####?Active?checks?related


###?Option:?ServerActive

#?? List?of?comma?delimited?IP:port?(or?hostname:port)?pairs?of?Zabbix?servers?for?active?checks.

#?? If?port?is?not?specified,?default?port?is?used.

#?? IPv6?addresses?must?be?enclosed?in?square?brackets?if?port?for?that?host?is?specified.

#?? If?port?is?not?specified,?square?brackets?for?IPv6?addresses?are?optional.

#?? If?this?parameter?is?not?specified,?active?checks?are?disabled.

#?? Example:?ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]

#

#?Mandatory:?no

#?Default:

#?ServerActive=



###?Option:?Hostname

#?? Unique,?case?sensitive?hostname.

#?? Required?for?active?checks?and?must?match?hostname?as?configured?on?the?server.

#?? Value?is?acquired?from?HostnameItem?if?undefined.

#

#?Mandatory:?no

#?Default:

#?Hostname=


Hostname={{?ansible_hostname?}}


###?Option:?HostnameItem

#?? Item?used?for?generating?Hostname?if?it?is?undefined.

#?? Ignored?if?Hostname?is?defined.

#

#?Mandatory:?no

#?Default:

#?HostnameItem=system.hostname


###?Option:?RefreshActiveChecks

#?? How?often?list?of?active?checks?is?refreshed,?in?seconds.

#

#?Mandatory:?no

#?Range:?60-3600

#?Default:

#?RefreshActiveChecks=120


###?Option:?BufferSend

#?? Do?not?keep?data?longer?than?N?seconds?in?buffer.

#

#?Mandatory:?no

#?Range:?1-3600

#?Default:

#?BufferSend=5


###?Option:?BufferSize

#?? Maximum?number?of?values?in?a?memory?buffer.?The?agent?will?send

#?? all?collected?data?to?Zabbix?Server?or?Proxy?if?the?buffer?is?full.

#

#?Mandatory:?no

#?Range:?2-65535

#?Default:

#?BufferSize=100


###?Option:?MaxLinesPerSecond

#?? Maximum?number?of?new?lines?the?agent?will?send?per?second?to?Zabbix?Server

#?? or?Proxy?processing?'log'?and?'logrt'?active?checks.

#?? The?provided?value?will?be?overridden?by?the?parameter?'maxlines',

#?? provided?in?'log'?or?'logrt'?item?keys.

#

#?Mandatory:?no

#?Range:?1-1000

#?Default:

#?MaxLinesPerSecond=100


###?Option:?AllowRoot

#?? Allow?the?agent?to?run?as?'root'.?If?disabled?and?the?agent?is?started?by?'root',?the?agent

#???????will?try?to?switch?to?user?'zabbix'?instead.?Has?no?effect?if?started?under?a?regular?user.

#?? 0?-?do?not?allow

#?? 1?-?allow

#

#?Mandatory:?no

#?Default:

#?AllowRoot=0


############?ADVANCED?PARAMETERS?#################


###?Option:?Alias

#?? Sets?an?alias?for?parameter.?It?can?be?useful?to?substitute?long?and?complex?parameter?name?with?a?smaller?and?simpler?one.

#

#?Mandatory:?no

#?Range:

#?Default:


###?Option:?Timeout

#?? Spend?no?more?than?Timeout?seconds?on?processing

#

#?Mandatory:?no

#?Range:?1-30

#?Default:

Timeout=20


###?Option:?Include

#?? You?may?include?individual?files?or?all?files?in?a?directory?in?the?configuration?file.

#?? Installing?Zabbix?will?create?include?directory?in?/usr/local/etc,?unless?modified?during?the?compile?time.

#

#?Mandatory:?no

#?Default:

#?Include=


#?Include=/usr/local/etc/zabbix_agentd.userparams.conf

#?Include=/usr/local/etc/zabbix_agentd.conf.d/


#######?USER-DEFINED?MONITORED?PARAMETERS?#######


###?Option:?UnsafeUserParameters

#?? Allow?all?characters?to?be?passed?in?arguments?to?user-defined?parameters.

#?? 0?-?do?not?allow

#?? 1?-?allow

#

#?Mandatory:?no

#?Range:?0-1

#?Default:

#?UnsafeUserParameters=0


###?Option:?UserParameter

#?? User-defined?parameter?to?monitor.?There?can?be?several?user-defined?parameters.

#?? Format:?UserParameter=,

#?? See?'zabbix_agentd'?directory?for?examples.

#

#?Mandatory:?no

#?Default:

#?UserParameter=

UserParameter=memcached_stats[*],(echostats;?sleep1)?|?telnet?{{?ansible_default_ipv4.address?}}?$1?2>&1?|?awk'/STAT?$2?/?{print?$NF}'

UserParameter=mysql[*],mysql?-h?{{?ansible_default_ipv4.address?}}?-P?3306?-uzabbix?-pzabbix?-e?"show?global?status"|grep"\<$1\>"|cut-f2

UserParameter=redis_stats[*],(echoinfo;?sleep1)?|?telnet?{{?ansible_default_ipv4.address?}}?$1?2>&1?|grep$2|cut-d?:?-f2

UserParameter=custom.vfs.dev.read.ops[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$4}'

UserParameter=custom.vfs.dev.read.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$7}'

UserParameter=custom.vfs.dev.write.ops[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$8}'

UserParameter=custom.vfs.dev.write.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$11}'

UserParameter=custom.vfs.dev.io.active[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$12}'

UserParameter=custom.vfs.dev.io.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$13}'

UserParameter=custom.vfs.dev.read.sectors[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$6}'

UserParameter=custom.vfs.dev.write.sectors[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$10}'

UserParameter=MongoDB.Status[*],/bin/echo"db.serverStatus().$1"|?/usr/bin/mongoadmin?|?grep"$2"|awk-F:?'{print?$$2}'|awk-F,?'{print?$$1}'

UserParameter=check_lvm[*],/usr/bin/sudo/usr/local/zabbix/bin/check_lvm.sh?$1

UserParameter=TCP_ESTABLISHED,ss?-s|awk'NR==2{print?$4}'|cut-d?,?-f1

UserParameter=TCP_CLOSED,ss?-s|awk'NR==2{print?$6}'|cut-d?,?-f1

UserParameter=TCP_TIMEWAIT,ss?-s|awk'NR==2{print?$12}'|cut-d?/?-f1

UserParameter=zabbix_low_discovery[*],/bin/bash/usr/local/zabbix/bin/zabbix_low_discovery.sh?$1

UserParameter=mysql_stats[*],mysql?-h?{{?ansible_default_ipv4.address?}}?-P?$1?-uzabbix?-pzabbix?-e?"show?global?status"|grep"\<$2\>"|cut-f2

UserParameter=mysql_stats_slave[*],mysql?-h?{{?ansible_default_ipv4.address?}}?-P?$1?-uzabbix?-pzabbix??-e?"show?slave?status\G"|grep"\<$2\>"|awk'{if($NF=="Yes")?{print?1}?else?{print?0}}'

UserParameter=check_platform,dmidecode?|grepVendor|awk-F?'?''{if($2=="Dell")?{print?1}?else?{print?0}}'

#follow?is?hardware?monitor

UserParameter=hardware_battery,omreport?chassis?batteries|awk'/^Status/{if($NF=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_cpu_model,awk-vhardware_cpu_crontol=`sudoomreport?chassis?biossetup|awk'/C?State/{if($NF=="Enabled")?{print?0}?else?{print?1}}'`?-vhardware_cpu_c1=`sudoomreport?chassis?biossetup|awk'/C1[-|E]/{if($NF=="Enabled")?{print?0}?else?{print?1}}'`?'BEGIN{if(hardware_cpu_crontol==0?&&?hardware_cpu_c1==0)?{print?0}?else?{print?1}}'

UserParameter=hardware_fan_health,awk-vhardware_fan_number=`omreport?chassis?fans|grep-c?"^Index"`?-vhardware_fan=`omreport?chassis?fans|awk'/^Status/{if($NF=="Ok")?count+=1}END{print?count}'`?'BEGIN{if(hardware_fan_number==hardware_fan)?{print?1}?else?{print?0}}'

UserParameter=hardware_memory_health,awk-vhardware_memory=`omreport?chassis?memory|awk'/^Health/{print?$NF}'`?'BEGIN{if(hardware_memory=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_nic_health,awk-vhardware_nic_number=`omreport?chassis?nics?|grep-c?"Interface?Name"`?-vhardware_nic=`omreport?chassis?nics?|awk'/^Connection?Status/{print?$NF}'|wc-l`?'BEGIN{if(hardware_nic_number==hardware_nic)?{print?1}?else?{print?0}}'

UserParameter=hardware_cpu,omreport?chassis?processors|awk'/^Health/{if($NF=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_power_health,awk-vhardware_power_number=`omreport?chassis?pwrsupplies|grep-c?"Index"`?-vhardware_power=`omreport?chassis?pwrsupplies|awk'/^Status/{if($NF=="Ok")?count+=1}END{print?count}'`?'BEGIN{if(hardware_power_number==hardware_power)?{print?1}?else?{print?0}}'

UserParameter=hardware_temp,omreport?chassis?temps|awk'/^Status/{if($NF=="Ok")?{print?1}?else?{print?0}}'|head-n?1

UserParameter=hardware_physics_health,awk-vhardware_physics_disk_number=`omreport?storage?pdisk?controller=0|grep-c?"^ID"`?-vhardware_physics_disk=`omreport?storage?pdisk?controller=0|awk'/^State/{if($NF=="Online")?count+=1}END{print?count}'`?'BEGIN{if(hardware_physics_disk_number==hardware_physics_disk)?{print?1}?else?{print?0}}'

UserParameter=hardware_virtual_health,awk-vhardware_virtual_disk_number=`omreport?storage?vdisk?controller=0|grep-c?"^ID"`?-vhardware_virtual_disk=`omreport?storage?vdisk?controller=0|awk'/^State/{if($NF=="Ready")?count+=1}END{print?count}'`?'BEGIN{if(hardware_virtual_disk_number==hardware_virtual_disk)?{print?1}?else?{print?0}}'

UserParameter=pyora[*],/usr/local/zabbix/bin/pyora.py?--username?$1?--password?$2?--address?$3?--database?$4?$5?$6?$7?$8

此文件是客戶端的配置文件

8、vars的main.yml

15:17:06?#?cat?/etc/ansible/roles/zabbix_client_install/vars/main.yml?

zabbix_dir:?/usr/local客戶端安全目錄

zabbix_version:?2.0.6????????????客戶端軟件版本

zabbix_user:?zabbix??????????????客戶端用戶

zabbix_port:?10050???????????????客戶端的端口

zabbix_server_ip:?192.168.1.10???zabbix_server的ip

此文件是配置變量的

9、ansible安裝zabbix客戶端的playbook配置文件zabbix_client_install.yml

15:20:02?#?cat?/etc/ansible/zabbix_client_install.yml?

---

-?hosts:?"`host`"

??remote_user:?"`user`"

??gather_facts:?True

??roles:

????-?zabbix_client_install

10、使用playbook安裝zabbix客戶端

我的測試客戶端環(huán)境是centos 6.3,ip是192.168.240.17,使用key登陸

15:22:01?#?cd?/etc/ansible/

root@ip-10-10-10-10:/etc/ansible

15:22:04?#?time?ansible-playbook?zabbix_client_install.yml?--extra-vars?"host=192.168.240.17?user=root"?--private-key=/root/test.pem?


PLAY?[192.168.240.17]?*********************************************************?


GATHERING?FACTS?***************************************************************?

ok:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Stop?Exist?Zabbix?Client?Service?In?Redhat?Client]?***?

failed:?[192.168.240.17]?=>?{"changed":?true,?"cmd":?"ps?-ef|grep?zabbix|grep?-v?grep|awk?'{print?$2}'|xargs?kill?-9?>>/dev/null?2>&1?",?"delta":?"0:00:00.018213",?"end":?"2014-07-10?07:22:34.793910",?"item":?"",?"rc":?123,?"start":?"2014-07-10?07:22:34.775697"}

...ignoring


TASK:?[zabbix_client_install?|?Delete?Exist?Zabbix?Client?Dir?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Install?Base?Require?Software?In?Redhat?Client]?***?

ok:?[192.168.240.17]?=>?(item=telnet,dmidecode,tar)


TASK:?[zabbix_client_install?|?Create?Zabbix?User?In?Redhat?Client]?***********?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Copy?Zabbix?Client?Software?To?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Uncompression?Zabbix?Client?Software?To?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Copy?Zabbix?Start?Script?To?Redhat?Client]?*****?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Copy?Zabbix?Config?To?Redhat?Client]?***********?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Modify?Zabbix?Dir?Permission?In?Redhat?Client]?***?

ok:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Check?Zabbix?User?Sudo?Permission?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Give?Sudo?Permission?To?Zabbix?User?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Start?Zabbix?Service?In?Redhat?Client]?*********?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Add?Boot?Start?Zabbix?Service?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_install?|?Delete?Zabbix?compression?Software?In?Redhat?Client]?***?

changed:?[192.168.240.17]


PLAY?RECAP?********************************************************************?

192.168.240.17?????????????:?ok=15???changed=12???unreachable=0????failed=0? ?

real??? 0m39.888s

user??? 0m1.547s

sys 0m0.197s

可以看到39秒就安裝完成,主要花費(fèi)時(shí)間比較長的地方是fact收集、yum安裝、文件傳輸。

11、測試安裝情況

[root@ip-10-10-240-21?tmp]#?ifconfig

eth0??????Link?encap:Ethernet??HWaddr?FA:16:3E:34:62:D0??

??????????inet?addr:10.10.240.21??Bcast:10.10.240.255??Mask:255.255.255.0

??????????inet6?addr:?fe80::f816:3eff:fe34:62d0/64Scope:Link

??????????UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1

??????????RX?packets:542391?errors:0?dropped:0?overruns:0?frame:0

??????????TX?packets:77391?errors:0?dropped:0?overruns:0?carrier:0

??????????collisions:0?txqueuelen:1000?

??????????RX?bytes:142341119?(135.7?MiB)??TX?bytes:6451154?(6.1?MiB)


lo????????Link?encap:Local?Loopback??

??????????inet?addr:127.0.0.1??Mask:255.0.0.0

??????????inet6?addr:?::1/128Scope:Host

??????????UP?LOOPBACK?RUNNING??MTU:16436??Metric:1

??????????RX?packets:10?errors:0?dropped:0?overruns:0?frame:0

??????????TX?packets:10?errors:0?dropped:0?overruns:0?carrier:0

??????????collisions:0?txqueuelen:0?

??????????RX?bytes:700?(700.0?b)??TX?bytes:700?(700.0?b)


[root@ip-10-10-240-21?tmp]#?ps?-ef|grep?zabbix

zabbix???26991?????1??0?07:22??????????00:00:00?/usr/local/zabbix/sbin/zabbix_agentd-c?/usr/local/zabbix/conf/zabbix_agentd.conf

zabbix???26993?26991??0?07:22??????????00:00:00?/usr/local/zabbix/sbin/zabbix_agentd-c?/usr/local/zabbix/conf/zabbix_agentd.conf

zabbix???26994?26991??0?07:22??????????00:00:00?/usr/local/zabbix/sbin/zabbix_agentd-c?/usr/local/zabbix/conf/zabbix_agentd.conf

zabbix???26995?26991??0?07:22??????????00:00:00?/usr/local/zabbix/sbin/zabbix_agentd-c?/usr/local/zabbix/conf/zabbix_agentd.conf

zabbix???26996?26991??0?07:22??????????00:00:00?/usr/local/zabbix/sbin/zabbix_agentd-c?/usr/local/zabbix/conf/zabbix_agentd.conf

root?????27102?13773??0?07:24?pts/000:00:00?grepzabbix

[root@ip-10-10-240-21?tmp]#?grep?-Ev?'^$|^#'?/usr/local/zabbix/conf/zabbix_agentd.conf?

LogFile=/tmp/zabbix_agentd.log

Server=192.168.1.10

ListenPort=10050

Hostname=ip-10-10-240-21

Timeout=20

UserParameter=memcached_stats[*],(echostats;?sleep1)?|?telnet?10.10.240.21?$1?2>&1?|?awk'/STAT?$2?/?{print?$NF}'

UserParameter=mysql[*],mysql?-h?10.10.240.21?-P?3306?-uzabbix?-pzabbix?-e?"show?global?status"|grep"\<$1\>"|cut-f2

UserParameter=redis_stats[*],(echoinfo;?sleep1)?|?telnet?10.10.240.21?$1?2>&1?|grep$2|cut-d?:?-f2

UserParameter=custom.vfs.dev.read.ops[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$4}'

UserParameter=custom.vfs.dev.read.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$7}'

UserParameter=custom.vfs.dev.write.ops[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$8}'

UserParameter=custom.vfs.dev.write.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$11}'

UserParameter=custom.vfs.dev.io.active[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$12}'

UserParameter=custom.vfs.dev.io.ms[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$13}'

UserParameter=custom.vfs.dev.read.sectors[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$6}'

UserParameter=custom.vfs.dev.write.sectors[*],cat/proc/diskstats|?grep$1?|?head-1?|?awk'{print?$$10}'

UserParameter=MongoDB.Status[*],/bin/echo"db.serverStatus().$1"|?/usr/bin/mongoadmin?|?grep"$2"|awk-F:?'{print?$$2}'|awk-F,?'{print?$$1}'

UserParameter=check_lvm[*],/usr/bin/sudo/usr/local/zabbix/bin/check_lvm.sh?$1

UserParameter=TCP_ESTABLISHED,ss?-s|awk'NR==2{print?$4}'|cut-d?,?-f1

UserParameter=TCP_CLOSED,ss?-s|awk'NR==2{print?$6}'|cut-d?,?-f1

UserParameter=TCP_TIMEWAIT,ss?-s|awk'NR==2{print?$12}'|cut-d?/?-f1

UserParameter=zabbix_low_discovery[*],/bin/bash/usr/local/zabbix/bin/zabbix_low_discovery.sh?$1

UserParameter=mysql_stats[*],mysql?-h?10.10.240.21?-P?$1?-uzabbix?-pzabbix?-e?"show?global?status"|grep"\<$2\>"|cut-f2

UserParameter=mysql_stats_slave[*],mysql?-h?10.10.240.21?-P?$1?-uzabbix?-pzabbix??-e?"show?slave?status\G"|grep"\<$2\>"|awk'{if($NF=="Yes")?{print?1}?else?{print?0}}'

UserParameter=check_platform,dmidecode?|grepVendor|awk-F?'?''{if($2=="Dell")?{print?1}?else?{print?0}}'

UserParameter=hardware_battery,omreport?chassis?batteries|awk'/^Status/{if($NF=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_cpu_model,awk-vhardware_cpu_crontol=`sudoomreport?chassis?biossetup|awk'/C?State/{if($NF=="Enabled")?{print?0}?else?{print?1}}'`?-vhardware_cpu_c1=`sudoomreport?chassis?biossetup|awk'/C1[-|E]/{if($NF=="Enabled")?{print?0}?else?{print?1}}'`?'BEGIN{if(hardware_cpu_crontol==0?&&?hardware_cpu_c1==0)?{print?0}?else?{print?1}}'

UserParameter=hardware_fan_health,awk-vhardware_fan_number=`omreport?chassis?fans|grep-c?"^Index"`?-vhardware_fan=`omreport?chassis?fans|awk'/^Status/{if($NF=="Ok")?count+=1}END{print?count}'`?'BEGIN{if(hardware_fan_number==hardware_fan)?{print?1}?else?{print?0}}'

UserParameter=hardware_memory_health,awk-vhardware_memory=`omreport?chassis?memory|awk'/^Health/{print?$NF}'`?'BEGIN{if(hardware_memory=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_nic_health,awk-vhardware_nic_number=`omreport?chassis?nics?|grep-c?"Interface?Name"`?-vhardware_nic=`omreport?chassis?nics?|awk'/^Connection?Status/{print?$NF}'|wc-l`?'BEGIN{if(hardware_nic_number==hardware_nic)?{print?1}?else?{print?0}}'

UserParameter=hardware_cpu,omreport?chassis?processors|awk'/^Health/{if($NF=="Ok")?{print?1}?else?{print?0}}'

UserParameter=hardware_power_health,awk-vhardware_power_number=`omreport?chassis?pwrsupplies|grep-c?"Index"`?-vhardware_power=`omreport?chassis?pwrsupplies|awk'/^Status/{if($NF=="Ok")?count+=1}END{print?count}'`?'BEGIN{if(hardware_power_number==hardware_power)?{print?1}?else?{print?0}}'

UserParameter=hardware_temp,omreport?chassis?temps|awk'/^Status/{if($NF=="Ok")?{print?1}?else?{print?0}}'|head-n?1

UserParameter=hardware_physics_health,awk-vhardware_physics_disk_number=`omreport?storage?pdisk?controller=0|grep-c?"^ID"`?-vhardware_physics_disk=`omreport?storage?pdisk?controller=0|awk'/^State/{if($NF=="Online")?count+=1}END{print?count}'`?'BEGIN{if(hardware_physics_disk_number==hardware_physics_disk)?{print?1}?else?{print?0}}'

UserParameter=hardware_virtual_health,awk-vhardware_virtual_disk_number=`omreport?storage?vdisk?controller=0|grep-c?"^ID"`?-vhardware_virtual_disk=`omreport?storage?vdisk?controller=0|awk'/^State/{if($NF=="Ready")?count+=1}END{print?count}'`?'BEGIN{if(hardware_virtual_disk_number==hardware_virtual_disk)?{print?1}?else?{print?0}}'

UserParameter=pyora[*],/usr/local/zabbix/bin/pyora.py?--username?$1?--password?$2?--address?$3?--database?$4?$5?$6?$7?$8

[root@ip-10-10-240-21?tmp]#?ll?/tmp/

total?12

-rw-------?1?root???root???197?Jul??9?09:35?yum_save_tx-2014-07-09-09-35ibcBiO.yumtx

-rw-rw-r--?1?zabbix?zabbix?320?Jul?10?07:22?zabbix_agentd.log

-rw-rw-r--?1?zabbix?zabbix???5?Jul?10?07:22?zabbix_agentd.pid

[root@ip-10-10-240-21?tmp]#?chkconfig?--list|grep?zabbix_agentd

zabbix_agentd???? 0:off?? 1:off?? 2:off?? 3:on??? 4:on??? 5:on??? 6:off

[root@ip-10-10-240-21?tmp]#?grep?zabbix?/etc/sudoers

zabbix?ALL=(root)?NOPASSWD:/bin/netstat,?/usr/bin/omreport

[root@ip-10-10-240-21?tmp]#?ll?/etc/init.d/zabbix_agentd?

-rwxr-xr-x?1?root?root?1444?Jul?10?07:22?/etc/init.d/zabbix_agentd

可以看到安裝后的客戶端,完全是按照我的要求來做的。

12、刪除已經(jīng)安裝的客戶端

15:22:54?#?time?ansible-playbook?zabbix_client_delete.yml?--extra-vars?"host=192.168.240.17?user=root"?--private-key=/root/test.pem?


PLAY?[192.168.240.17]?*********************************************************?


GATHERING?FACTS?***************************************************************?

ok:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Stop?Zabbix?Service?In?RedHat?Client]?***********?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Delete?Boot?Start?Zabbix?Service?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Delete?Zabbix?User?In?Redhat?Client]?************?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Delete?Zabbix?Dir?In?Redhat?Client]?*************?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Delete?Zabbix?Start?Script?In?Redhat?Client]?****?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Check?Zabbix?User?Sudo?Permission?In?Redhat?Client]?***?

changed:?[192.168.240.17]


TASK:?[zabbix_client_delete?|?Delete?Sudo?Permission?To?Zabbix?User?In?Redhat?Client]?***?

changed:?[192.168.240.17]


PLAY?RECAP?********************************************************************?

192.168.240.17?????????????:?ok=8????changed=7????unreachable=0????failed=0???



real??? 0m25.497s

user??? 0m0.847s

sys 0m0.159s

13、測試刪除情況

[root@ip-10-10-240-21?tmp]#?ll?/tmp/

total?4

-rw-------?1?root?root?197?Jul??9?09:35?yum_save_tx-2014-07-09-09-35ibcBiO.yumtx

[root@ip-10-10-240-21?tmp]#?ps?-ef|grep?zabbix

root?????27665?13773??0?07:27?pts/000:00:00?grepzabbix

[root@ip-10-10-240-21?tmp]#?ll?/usr/local/

total?40

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?bin

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?etc

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?games

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?include

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?lib

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?lib64

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?libexec

drwxr-xr-x.?2?root?root?4096?Sep?23??2011?sbin

drwxr-xr-x.?5?root?root?4096?May?12??2013?share

drwxr-xr-x.?3?root?root?4096?May?13??2013?src

[root@ip-10-10-240-21?tmp]#?grep?zabbix?/etc/sudoers

[root@ip-10-10-240-21?tmp]#?ll?/etc/init.d/zabbix_agentd

ls:?cannot?access?/etc/init.d/zabbix_agentd:?No?such?fileor?directory

[root@ip-10-10-240-21?tmp]#?chkconfig?--list|grep?zabbix_agentd

[root@ip-10-10-240-21?tmp]#

可以看到已經(jīng)完全刪除。

如果大家想使用我的例子,可以從附件里下載,然后放到/etc/ansible目錄里,下面是壓縮包里的內(nèi)容

-rw-r--r--?root/root108?2014-07-10?15:20?zabbix_client_install.yml

-rw-r--r--?root/root121?2014-07-09?18:09?zabbix_client_delete.yml

drwxr-xr-x?root/root0?2014-07-01?16:38?roles/zabbix_client_install/

drwxr-xr-x?root/root0?2014-07-08?14:30?roles/zabbix_client_install/meta/

-rw-r--r--?root/root207?2014-07-08?14:30?roles/zabbix_client_install/meta/main.yml

drwxr-xr-x?root/root0?2014-07-10?14:07?roles/zabbix_client_install/tasks/

-rw-r--r--?root/root199?2014-07-10?14:02?roles/zabbix_client_install/tasks/delete.yml

-rw-r--r--?root/root65?2014-07-10?14:02?roles/zabbix_client_install/tasks/main.yml

-rw-r--r--?root/root1789?2014-07-10?14:02?roles/zabbix_client_install/tasks/copy.yml

-rw-r--r--?root/root1110?2014-07-10?14:07?roles/zabbix_client_install/tasks/install.yml

drwxr-xr-x?root/root0?2014-06-19?13:30?roles/zabbix_client_install/handlers/

drwxr-xr-x?root/root0?2014-07-09?17:54?roles/zabbix_client_install/vars/

-rw-r--r--?root/root115?2014-07-09?17:54?roles/zabbix_client_install/vars/main.yml

drwxr-xr-x?root/root0?2014-07-09?17:53?roles/zabbix_client_install/templates/

-rw-r--r--?zabbix/zabbix10465?2014-07-09?17:53?roles/zabbix_client_install/templates/zabbix_agentd.conf

-rwxr-xr-x?root/root1456?2014-07-08?15:20?roles/zabbix_client_install/templates/zabbix_agentd

drwxr-xr-x?root/root0?2014-07-09?17:13?roles/zabbix_client_install/files/

-rw-r--r--?root/root292293?2014-07-09?17:13?roles/zabbix_client_install/files/zabbix-2.0.6.tar.gz

drwxr-xr-x?root/root0?2014-06-23?14:03?roles/zabbix_client_delete/

drwxr-xr-x?root/root0?2014-07-09?18:08?roles/zabbix_client_delete/meta/

-rw-r--r--?root/root205?2014-07-09?18:08?roles/zabbix_client_delete/meta/main.yml

drwxr-xr-x?root/root0?2014-07-10?14:28?roles/zabbix_client_delete/tasks/

-rw-r--r--?root/root1518?2014-07-10?14:08?roles/zabbix_client_delete/tasks/delete.yml

-rw-r--r--?root/root22?2014-07-10?14:08?roles/zabbix_client_delete/tasks/main.yml

drwxr-xr-x?root/root0?2014-06-24?14:14?roles/zabbix_client_delete/handlers/

drwxr-xr-x?root/root0?2014-07-03?13:16?roles/zabbix_client_delete/vars/

-rw-r--r--?root/root115?2014-07-09?17:55?roles/zabbix_client_delete/vars/main.yml

drwxr-xr-x?root/root0?2014-07-09?18:08?roles/zabbix_client_delete/templates/

drwxr-xr-x?root/root0?2014-06-24?13:53?roles/zabbix_client_delete/files/


轉(zhuǎn)載自:http://blog.51cto.com/dl528888/1436745

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容