设为首页 收藏本站
查看: 448|回复: 0

[经验分享] Ansible部署Zabbix监控工具

[复制链接]

尚未签到

发表于 2018-7-29 12:10:00 | 显示全部楼层 |阅读模式
  [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>
  #  - export JRE_HOME JAVA_BIN PATH>  - 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>
  - export JRE_HOME JAVA_BIN PATH>  - 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:>  - 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'>  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 < images.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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-543020-1-1.html 上篇帖子: 1ansible 模块使用 下篇帖子: ansible-hades
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表