欢迎光临
我们一直在努力

Ansible部署Zabbix监控工具

[root@localhost roles]# pwd

/etc/ansible/roles

[root@localhost roles]# ls

ansible_zabbix.tar.gz  zabbix

[root@localhost roles]# ll zabbix/

总用量 16

drwxr-xr-x. 2 root root 4096 5月  25 17:15 group_vars

drwxr-xr-x. 8 root root 4096 5月  26 17:25 roles

-rw-r–r–. 1 root root   14 5月  27 11:05 zabbix.retry

-rw-r–r–. 1 root root  140 5月  27 15:29 zabbix.yaml

.角色与包含 

├── ansible_zabbix.tar.gz

└── zabbix

    ├── group_vars

    │?? └── zabbix

    ├── roles

    │?? ├── java

    │?? │?? ├── files

    │?? │?? │?? ├── java.sh

    │?? │?? │?? └── jdk-8u101-linux-x64.tar.gz

    │?? │?? ├── handlers

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

    │?? │?? └── tasks

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

    │?? ├── mysql

    │?? │?? ├── files

    │?? │?? │?? ├── cmake-2.8.10.2.tar.gz

    │?? │?? │?? └── mysql-5.6.24.tar.gz

    │?? │?? ├── handlers

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

    │?? │?? └── tasks

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

    │?? ├── nginx

    │?? │?? ├── files

    │?? │?? │?? ├── nginx

    │?? │?? │?? ├── nginx-1.10.2.tar.gz

    │?? │?? │?? ├── openssl-1.0.2f.tar.gz

    │?? │?? │?? ├── pcre-8.38.tar.gz

    │?? │?? │?? └── zlib-1.2.8.tar.gz

    │?? │?? ├── handlers

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

    │?? │?? ├── tasks

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

    │?? │?? └── templates

    │?? │??     └── nginx.conf.j2

    │?? ├── php

    │?? │?? ├── files

    │?? │?? │?? ├── index.php

    │?? │?? │?? ├── libiconv-1.13.1.tar.gz

    │?? │?? │?? ├── libmcrypt-2.5.8.tar.gz

    │?? │?? │?? ├── Makefile

    │?? │?? │?? ├── mhash-0.9.9.9.tar.gz

    │?? │?? │?? ├── php-5.6.29.tar.gz

    │?? │?? │?? ├── php-fpm

    │?? │?? │?? ├── php-fpm.conf

    │?? │?? │?? ├── php.ini

    │?? │?? │?? └── testdb.php

    │?? │?? ├── handlers

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

    │?? │?? └── tasks

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

    │?? ├── yum

    │?? │?? ├── files

    │?? │?? │?? └── CentOS-Base.repo

    │?? │?? └── tasks

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

    │?? └── zabbix_server

    │??     ├── files

    │??     │?? ├── zabbix

    │      │  ├── zabbix-3.0.4.tar.gz

    │      │  ├── zabbix_agentd

    │      │  ├── zabbix_server

    │      │  └── zabbix_server.conf

    │      ├── handlers

    │      │   └── main.yml

    │      ├── tasks

    │      │   └── main.yml

    │      └── templates

    │           └── zabbix_agentd.conf.j2

    ├── zabbix.retry

    └── zabbix.yaml

定义变量

[root@localhost roles]# cd zabbix/

[root@localhost zabbix]# cat group_vars/zabbix 

java_path: /etc/ansible/roles/zabbix/roles/java/files/

nginx_path: /etc/ansible/roles/zabbix/roles/nginx/files/

mysql_path: /etc/ansible/roles/zabbix/roles/mysql/files/

php_path: /etc/ansible/roles/zabbix/roles/php/files/

zabbix_server_path: /etc/ansible/roles/zabbix/roles/zabbix_server/files/

zabbix_agent_path: /etc/ansible/roles/zabbix/roles/zabbix_agent/files/

dest_path: /usr/local/src/

主yaml文件

[root@localhost zabbix]# cat zabbix.yaml 

– hosts: zabbix

  roles:

    – role: yum

    – role: java

    – role: nginx

    – role: mysql

    – role: php

    – role: zabbix_server

role里面的文件内容

[root@localhost roles]# pwd

/etc/ansible/roles/zabbix/roles

[root@localhost roles]# ll

总用量 24

drwxr-xr-x. 5 root root 4096 5月  23 18:14 java

drwxr-xr-x. 5 root root 4096 5月  23 11:46 mysql

drwxr-xr-x. 6 root root 4096 5月  25 21:39 nginx

drwxr-xr-x. 5 root root 4096 5月  24 10:25 php

drwxr-xr-x. 4 root root 4096 5月  19 05:32 yum

drwxr-xr-x. 6 root root 4096 5月  27 16:06 zabbix_server 

Yum部署

[root@localhost yum]# pwd

/etc/ansible/roles/zabbix/roles/yum

[root@localhost yum]# tree

.

├── files

│   └── CentOS-Base.repo

└── tasks

    └── main.yml

2 directories, 2 files

[root@localhost yum]# cat tasks/main.yml 

# tasks file for yum

– name: copy the repo 

  copy: src=CentOS-Base.repo dest=/etc/yum.repos.d/CentOS-Base.repo

– name: clean cache

  shell: yum clean all;yum makecache

– name: install software

  yum: name=gcc,gcc-c++,make,zlib-devel,ncurses-devel,libxml2,libxml2-devel,libjpeg-devel,libpng-devel,freetype,openldap-devel,openldap,openssl,openssl-devel,pcre,pcre-devel,curl-devel,freetype-devel,net-snmp-devel,mysql-devel state=latest

Java部署

[root@localhost java]# tree

.

├── files

│   ├── java.sh

│   └── jdk-8u101-linux-x64.tar.gz

├── handlers

│   └── main.yml

└── tasks

    └── main.yml

3 directories, 4 files

root@localhost java]# cat tasks/main.yml 

# tasks file for java

– name: jie ya jdk-8u101-linux-x64.tar.gz

  unarchive: src=` java_path `jdk-8u101-linux-x64.tar.gz dest=` dest_path ` copy=yes

– name: move jdk

  shell: mv /usr/local/src/jdk1.8.0_101 /usr/local/jdk

– name: add bianliang

  copy: src=java.sh dest=/etc/profile.d/

  #lineinfile: dest=/etc/profile line=` item `

  #with_items:

  #  – export JRE_HOME=/usr/local/jdk

  #  – export JAVA_BIN=/usr/local/jdk/bin

  #  – export PATH=$JRE_HOME/bin:$PATH

  #  – export CLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar

  #  – export JRE_HOME JAVA_BIN PATH CLASSPATH

– name: source profile

  shell: source /etc/profile.d/java.sh

#  notify:

#    – add bianliang

#    – source profile

[root@localhost java]# cat handlers/main.yml 

# handlers file for java

– name: add bianliang

  lineinfile: dest=/etc/profile line=` item `

  with_items:

    – export JRE_HOME=/usr/local/jdk

    – export JAVA_BIN=/usr/local/jdk/bin

    – export PATH=$JRE_HOME/bin:$PATH

    – export CLASSPATH=.:$JRE_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar

    – export JRE_HOME JAVA_BIN PATH CLASSPATH

– name: source profile

  shell: source /etc/profile

Nginx部署

[root@localhost nginx]# tree

.

├── files

│   ├── nginx

│   ├── nginx-1.10.2.tar.gz

│   ├── openssl-1.0.2f.tar.gz

│   ├── pcre-8.38.tar.gz

│   └── zlib-1.2.8.tar.gz

├── handlers

│   └── main.yml

├── tasks

│   └── main.yml

└── templates

    └── nginx.conf.j2

4 directories, 8 files

[root@localhost nginx]#

[root@localhost tasks]# pwd

/etc/ansible/roles/zabbix/roles/nginx/tasks

[root@localhost tasks]# cat main.yml 

– name: useradd www

  user: name=www shell=/sbin/nologin createhome=no

– name: openssl-1.0.2f.tar.gz package

  unarchive: src=` nginx_path `openssl-1.0.2f.tar.gz dest=` dest_path ` copy=yes

– name: pcre-8.38.tar.gz package

  unarchive: src=` nginx_path `pcre-8.38.tar.gz dest=` dest_path ` copy=yes

– name: zlib-1.2.8.tar.gz

  unarchive: src=` nginx_path `zlib-1.2.8.tar.gz dest=` dest_path ` copy=yes

– name: nginx-1.10.2.tar.gz package

  unarchive: src=` nginx_path `nginx-1.10.2.tar.gz dest=` dest_path ` copy=yes

– name: nginx config

  shell: cd ` dest_path `nginx-1.10.2;./configure –prefix=/usr/local/nginx –sbin-path=/usr/local/nginx/sbin/nginx –conf-path=/usr/local/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –pid-path=/var/run/nginx.pid –lock-path=/var/run/nginx.lock –http-client-body-temp-path=/var/cache/nginx/client_temp –http-proxy-temp-path=/var/cache/nginx/proxy_temp –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp –http-scgi-temp-path=/var/cache/nginx/scgi_temp –user=nginx –group=nginx –with-http_ssl_module –with-http_realip_module –with-http_addition_module –with-http_sub_module –with-http_dav_module –with-http_flv_module –with-http_mp4_module –with-http_gunzip_module –with-http_gzip_static_module –with-http_random_index_module –with-http_secure_link_module –with-http_stub_status_module –with-http_auth_request_module –with-threads –with-stream –with-stream_ssl_module –with-http_slice_module –with-mail –with-mail_ssl_module –with-file-aio –with-http_v2_module –with-ipv6 –with-pcre=` dest_path `pcre-8.38 –with-zlib=` dest_path `zlib-1.2.8 –with-openssl=` dest_path `openssl-1.0.2f

– name: nginx make and install

  shell: cd ` dest_path `nginx-1.10.2;make;make install

– name: create cache nginx

  file: path=/var/cache/nginx state=directory owner=root group=root mode=0644

– name: copy config file

  template: src=nginx.conf.j2 dest=/usr/local/nginx/nginx.conf owner=root group=root mode=0644

– name: add nginx grant

  shell: cd /usr/local/nginx/;chown -R www:www *

 

– name: copy start file

  copy: src=nginx dest=/etc/init.d/ owner=root group=root mode=0755 backup=yes

  notify: 

    – start nginx service 

  tags: nginx

[root@localhost handlers]# pwd

/etc/ansible/roles/zabbix/roles/nginx/handlers

[root@localhost handlers]# cat main.yml 

– name: start nginx service 

  service: name=nginx state=restarted enabled=yes

[root@localhost templates]# pwd

/etc/ansible/roles/zabbix/roles/nginx/templates

[root@localhost templates]# cat nginx.conf.j2 

user www;

worker_processes ` ansible_processor_cores `;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index  index.php index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

}

MySQL部署

[root@localhost mysql]# pwd

/etc/ansible/roles/zabbix/roles/mysql

[root@localhost mysql]# tree

.

├── files

│   ├── cmake-2.8.10.2.tar.gz

│   └── mysql-5.6.24.tar.gz

├── handlers

│   └── main.yml

└── tasks

    └── main.yml

3 directories, 4 files

[root@localhost mysql]# cat tasks/main.yml 

# tasks file for mysql

– name: mysql-5.6.24.tar.gz package

  unarchive: src=` mysql_path `mysql-5.6.24.tar.gz dest=` dest_path ` copy=yes

– name: cmake-2.8.10.2.tar.gz package

  unarchive: src=` mysql_path `cmake-2.8.10.2.tar.gz dest=` dest_path ` copy=yes

– name: install camke

  shell: cd ` dest_path `cmake-2.8.10.2;./bootstrap –prefix=/usr/local/cmake;make;make install

– name: add user

  shell: id mysql || useradd -M -s /sbin/nologin mysql

– name: add quanxian

  file: path=/tmp mode=777

– name: bianyi

  shell: cd ` dest_path `mysql-5.6.24;/usr/local/cmake/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock -DMYSQL_USER=mysql -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0

– name: make and make install

  shell: cd ` dest_path `mysql-5.6.24;make;make install

– name: shou quna 

  shell: chown -R mysql:mysql /usr/local/mysql

– name: line

  shell: ln -s /usr/local/mysql/bin/` item ` /usr/sbin/

  with_items:

    – innochecksum

    – msql2mysql

    – myisamchk

    – myisam_ftdump

    – myisamlog

    – myisampack

    – my_print_defaults

    – mysql

    – mysqlaccess

    – mysqlaccess.conf

    – mysqladmin

    – mysqlbinlog

    – mysqlbug

    – mysqlcheck

    – mysql_client_test

    – mysql_client_test_embedded

    – mysql_config

    – mysql_config_editor

    – mysql_convert_table_format

    – mysqld

    – mysqld_multi

    – mysqld_safe

    – mysqldump

    – mysqldumpslow

    – mysql_embedded

    – mysql_find_rows

    – mysql_fix_extensions

    – mysqlhotcopy

    – mysqlimport

    – mysql_plugin

    – mysql_secure_installation

    – mysql_setpermission

    – mysqlshow

    – mysqlslap

    – mysqltest

    – mysqltest_embedded

    – mysql_tzinfo_to_sql

    – mysql_upgrade

    – mysql_waitpid

    – mysql_zap

    – perror

    – replace

    – resolveip

    – resolve_stack_dump

  tags:

    – link

– name: copy mysql start script

  shell: cp ` dest_path `mysql-5.6.24/support-files/mysql.server /etc/init.d/mysqld

– name: insert ld.so.conf

  lineinfile: dest=/etc/ld.so.conf line=/usr/local/mysql/lib/

– name: ldconfig

  shell: ldconfig

– name: chu shi hua 

  shell: /usr/local/mysql/scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data

– name: copy my.cnf

  shell: rm -rf /etc/my.cnf;mv /usr/local/mysql/my.cnf /etc/

– name: add max_connections

  lineinfile: dest=/etc/my.cnf line=”max_connections = 1000″

#- name: insert /var/lib/mysql/mysql.sock

#  lineinfile:  dest=/etc/my.cnf line=”socket = /var/lib/mysql/mysql.sock”

#  tags: 

#    – socket

– name: start mysql service

  service: name=mysqld state=restarted enabled=yes

  tags:

    – mysqlstart

– name: set mysql passwd

  shell: /usr/local/mysql/bin/mysqladmin -u root password ‘mysql_dbpass’

  tags:

    – mysqlpasswd

[root@localhost mysql]# cat handlers/main.yml 

# handlers file for mysql

– name: start mysql service

  service: name=mysqld state=restarted enabled=yes

– name: set mysql passwd

  shell: /usr/local/mysql/bin/mysqladmin -u root password ‘mysql_dbpass’

PHP部署

[root@localhost php]# pwd

/etc/ansible/roles/zabbix/roles/php

[root@localhost php]# tree

.

├── files

│   ├── index.php

│   ├── libiconv-1.13.1.tar.gz

│   ├── libmcrypt-2.5.8.tar.gz

│   ├── Makefile

│   ├── mhash-0.9.9.9.tar.gz

│   ├── php-5.6.29.tar.gz

│   ├── php-fpm

│   ├── php-fpm.conf

│   ├── php.ini

│   └── testdb.php

├── handlers

│   └── main.yml

└── tasks

    └── main.yml

3 directories, 12 files

[root@localhost php]# cat tasks/main.yml 

# tasks file for php

– name: mhash-0.9.9.9.tar.gz

  unarchive: src=` php_path `mhash-0.9.9.9.tar.gz dest=` dest_path ` copy=yes

– name: libiconv-1.13.1.tar.gz

  unarchive: src=` php_path `libiconv-1.13.1.tar.gz dest=` dest_path ` copy=yes

– name: libmcrypt-2.5.8.tar.gz

  unarchive: src=` php_path `libmcrypt-2.5.8.tar.gz dest=` dest_path ` copy=yes

– name: php-5.6.29.tar.gz

  unarchive: src=` php_path `php-5.6.29.tar.gz dest=` dest_path ` copy=yes

– name: config mhash

  shell: cd ` dest_path `mhash-0.9.9.9;./configure;make;make install

– name: config libiconv

  shell: cd ` dest_path `libiconv-1.13.1;./configure;make;make install

– name: config libmcrypt

  shell: cd ` dest_path `libmcrypt-2.5.8;./configure;make;make install

– name: config libmcrypt-2.5.8/libltdl

  shell: cd ` dest_path `libmcrypt-2.5.8/libltdl/;./configure –with-gmetad –enable-gexec –enable-ltdl-install

– name: libmcrypt make and make install

  shell: cd ` dest_path `libmcrypt-2.5.8/libltdl/;make;make install

– name: line libmcrypt*

  file: src=/usr/local/lib/` item`.`src ` dest=/usr/lib/` item`.`dest ` state=link

  with_items:

    – { src: ‘libmcrypt.so.4.4.8’, dest: ‘libmcrypt.so.4.4.8’ }

    – { src: ‘libmcrypt.so.4’, dest: ‘libmcrypt.so.4’ }

    – { src: ‘libmcrypt.so’, dest: ‘libmcrypt.so’ }

    – { src: ‘libmcrypt.la’, dest: ‘libmcrypt.la’ }

    – { src: ‘libmcrypt’, dest: ‘libmcrypt’ }

    – { src: ‘libmhash.a’, dest: ‘libmhash.a’ }

    – { src: ‘libmhash.la’, dest: ‘libmhash.la’ }

    – { src: ‘libmhash.so’, dest: ‘libmhash.so’ }

    – { src: ‘libmhash.so.2’, dest: ‘libmhash.so.2’ }

    – { src: ‘libmhash.so.2.0.1’, dest: ‘libmhash.so.2.0.1’ }

– name: ldconfig

  shell: ldconfig

– name: cp libladp*

  file: src=/usr/lib64/` item`.`src ` dest=/usr/lib/` item`.`dest ` state=link

  with_items:

    – { src: ‘libldap-2.4.so.2’, dest: ‘libldap-2.4.so.2’ }

    – { src: ‘libldap_r-2.4.so.2’, dest: ‘libldap_r-2.4.so.2’ }

    – { src: ‘libldap_r.so’, dest: ‘libldap_r.so’ }

    – { src: ‘libldap.so’, dest: ‘libldap.so’ }

– name: config php

  shell: cd ` dest_path `php-5.6.29;./configure  –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-fpm –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –with-xmlrpc –enable-zip –enable-soap –with-freetype-dir –with-gettext –with-fpm-user=www –with-fpm-group=www

– name: copy Makefile 

  copy: src=Makefile dest=` dest_path `php-5.6.29 owner=root group=root mode=0644 backup=yes

#- name: config Makefile

#  shell: sed -i ‘s#EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lldap -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lfreetype -lmysqlclient -lm -lrt -lssl -lcrypto -ldl -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt#EXTRA_LIBS = -lcrypt -lz -lcrypt -lrt -lmysqlclient -lmcrypt -lltdl -lldap -lpng -lz -ljpeg -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lssl -lcrypto -lcurl -lxml2 -lz -lm -lfreetype -lmysqlclient -lm -lrt -lssl -lcrypto -ldl -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -liconv#g’ ` dest_path `php-5.6.29/Makefile

– name: make ZEND_EXTRA_LIBS=’-liconv’

  shell: cd ` dest_path `php-5.6.29;make ZEND_EXTRA_LIBS=’-liconv’

– name: make install

  shell: cd ` dest_path `php-5.6.29;make install

– name: copy file php.ini

  copy: src=php.ini dest=/usr/local/php/etc/ owner=root group=root mode=0644 backup=yes

– name: copy file php-fpm.conf

  copy: src=php-fpm.conf dest=/usr/local/php/etc/ owner=root group=root mode=0644 backup=yes

– name: copy php-fpm 

  copy: src=php-fpm dest=/etc/init.d/ owner=root group=root mode=0755 backup=yes

– name: copy file index.php testdb.php 

  copy: src=` item ` dest=/usr/local/nginx/html/ owner=root group=root mode=0644 backup=yes

  with_items:

    – index.php

    – testdb.php

  notify:

    – start php  


[root@localhost php]# cat handlers/main.yml 

# handlers file for php

– name: start php

  service: name=php-fpm state=restarted enabled=yes

Zabbix部署

[root@localhost zabbix_server]# pwd

/etc/ansible/roles/zabbix/roles/zabbix_server

[root@localhost zabbix_server]# ls

handlers  tasks  templates

[root@localhost zabbix_server]# tree

├── files

│   ├── zabbix

│   ├── zabbix-3.0.4.tar.gz

│   ├── zabbix_agentd

│   ├── zabbix_server

│   └── zabbix_server.conf

├── handlers

│   └── main.yml

├── tasks

│   └── main.yml

└── templates

    └── zabbix_agentd.conf.j2



[root@localhost zabbix_server]# cat tasks/main.yml 

# tasks file for zabbix_server

– name: add usergroup

  group: name=zabbix gid=201 system=yes

  tags:

    – zabbix_1  

– name: add user 

  user: name=zabbix uid=201 group=zabbix

  tags:

    – zabbix_2

– name: unarchive zabbix-3.0.4.tar.gz

  unarchive: src=` zabbix_server_path `zabbix-3.0.4.tar.gz dest=` dest_path ` copy=yes

  tags:

    – zabbix_3

– name: config and make install

  shell: cd ` dest_path `zabbix-3.0.4;./configure –prefix=/usr/local/zabbix –enable-java –enable-server –enable-proxy –enable-agent –with-mysql –with-net-snmp –with-libcurl –with-libxml2;make install

  tags:

    – zabbix_4

– name: add zabbix to services

  lineinfile: dest=/etc/services line=` item `

  with_items:

    – “zabbix-agent    10050/tcp               #Zabbix Agent”

    – “zabbix-agent    10050/udp               #Zabbix Agent”

    – “zabbix-server   10051/tcp               #zabbix Trapper”

    – “zabbix-server   10051/udp               #zabbix Trapper”

  tags: 

    – zabbix_4_1

– name: create database user

  shell: mysql -uroot -pmysql_dbpass -e “create database zabbix default character set utf8;”

  tags:

    – zabbix_5

– name: databases shou quan

  shell: mysql -uroot -pmysql_dbpass -e “grant all on zabbix.* to ‘zabbix’@’localhost’ identified by ‘zabbix’;”

  tags:

    – zabbix_6

– name: flush privileges

  shell: mysql -uroot -pmysql_dbpass -e “flush privileges;”

  tags:

    – zabbix_7

– name: import databases

  shell: cd `dest_path `zabbix-3.0.4/database/mysql;mysql -uzabbix -pzabbix zabbix < schema.sql;mysql -uzabbix -pzabbix zabbix < p_w_picpaths.sql;mysql -uzabbix -pzabbix zabbix < data.sql

  tags:

    – zabbix_8

– name: create zabbix log directory 

  file: path=/data/logs/zabbix/ state=directory owner=zabbix group=zabbix

  tags:

    – zabbix_9

– name: create /etc/ zabbix directory

  file: path=/etc/zabbix/ state=directory

  tags:

    – zabbix_10

– name: create /usr/local/zabbix/etc link

  file: src=/usr/local/zabbix/etc/` item`.`src ` dest=/etc/zabbix/` item`.`dest ` state=link

  with_items:

    – { src: ‘zabbix_agentd.conf’, dest: ‘zabbix_agentd.conf’ }

    – { src: ‘zabbix_proxy.conf’, dest: ‘zabbix_proxy.conf’ }

    – { src: ‘zabbix_server.conf’, dest: ‘zabbix_server.conf’ }

    – { src: ‘zabbix_agentd.conf.d’, dest: ‘zabbix_agentd.conf.d’ }

    – { src: ‘zabbix_proxy.conf.d’, dest: ‘zabbix_proxy.conf.d’ }

    – { src: ‘zabbix_server.conf.d’, dest: ‘zabbix_server.conf.d’ }

  tags:

    – zabbix_11

– name: create /usr/local/zabbix/bin link

  file: src=/usr/local/zabbix/bin/` item`.`src ` dest=/etc/zabbix/` item`.`dest ` state=link

  with_items:

    – { src: ‘zabbix_get’, dest: ‘zabbix_get’ }

    – { src: ‘zabbix_sender’, dest: ‘zabbix_sender’ }

  tags:

    – zabbix_12

– name: create /usr/local/zabbix/sbin link

  file: src=/usr/local/zabbix/sbin/` item`.`src ` dest=/usr/sbin/` item`.`dest ` state=link

  with_items:

    – { src: ‘zabbix_agentd’, dest: ‘zabbix_agentd’ }

    – { src: ‘zabbix_java’, dest: ‘zabbix_java’ }

    – { src: ‘zabbix_proxy’, dest: ‘zabbix_proxy’ }

    – { src: ‘zabbix_server’, dest: ‘zabbix_server’ }

  tags:

    – zabbix_13

– name: copy zabbix start stop script

  copy: src=` item ` dest=/etc/init.d owner=root group=root mode=0755 backup=yes

  with_items:

    – zabbix_server

    – zabbix_agentd

  tags:

    – zabbix_14

– name: copy zabbix_server.conf

  #file: src=` item ` dest=/usr/local/zabbix/etc/ owner=root group=root mode=0644 backup=yes

  synchronize: src=` item ` dest=/usr/local/zabbix/etc/  mode=push

  with_items:

    – zabbix_server.conf

  tags:

    – zabbix_15

– name: copy zabbix_agentd.conf

  template: src=zabbix_agentd.conf.j2 dest=/usr/local/zabbix/etc/zabbix_agentd.conf owner=root group=root mode=0644

  tags:

    – zabbix_16

– name: copy zabbix wangzhan directory

  synchronize: src=zabbix dest=/usr/local/nginx/html/ mode=push

  tags:

    – zabbix_17

#- name: change user

#  file: dest=/usr/local/nginx/html/zabbix owner=www group=www backup=yes

– name: add /usr/local/lib

  lineinfile: dest=/etc/ld.so.conf line=/usr/local/lib

  tags:

    – zabbix_19

#- name: add max_connections

#  lineinfile: dest=/etc/my.cnf line=”max_connections = 1000″

– name: ldconfig

  shell: ldconfig;

  tags:

    – zabbix_20

  notify:

    – start zabbix_server

    – start zabbix_agentd

    – stop iptables

    – stop selinux


[root@localhost zabbix_server]# cat handlers/main.yml 

# handlers file for zabbix_server

– name: start zabbix_server

  service: name=zabbix_server state=restarted enabled=yes

– name: start zabbix_agentd

  service: name=zabbix_agentd state=restarted enabled=yes

– name: stop iptables

  service: name=iptables state=stopped enabled=no

– name: stop selinux

  shell: setenforce 0


[root@localhost zabbix_server]# cat templates/zabbix_agentd.conf.j2 

EnableRemoteCommands=1

UnsafeUserParameters=1

Server=127.0.0.1,` ansible_eth0`.`ipv4`.`address `

ServerActive=` ansible_eth0`.`ipv4`.`address `:10051

Hostname=` ansible_hostname `

LogFile=/data/logs/zabbix/zabbix_agentd.log

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf



执行Yaml主文件

[root@localhost zabbix]# ls

group_vars  roles  zabbix.retry  zabbix.yaml

[root@localhost zabbix]# pwd

/etc/ansible/roles/zabbix

[root@localhost zabbix]# ansible-playbook zabbix.yaml 


赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。