[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