x 创建mariadb, zabbix-server角色
[root@server1 roles]# pwd
/etc/ansible/roles
[root@server1 roles]#ansible-galaxy init zabbix
[root@server1 mariadb]# cd ..
[root@server1 roles]# mkdir zabbix-server/{files,tasks,templates,vars} -p
[root@localhost19 zabbix4.0]# ls
zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
zabbix-web-4.0.5-1.el7.noarch.rpm
zabbix-agent-4.0.5-1.el7.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
fping-3.10-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm
[root@server1 files]# pwd
/etc/ansible/roles/zabbix-server/files
[root@server1 files]# vim zabbix.repo
[zabbix]
name=zabbix4.0
baseurl=http://172.25.63.250/zabbix4.0
gpgcheck=0
[root@server1 files]# vim my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#
#
character-set-server=utf8 #识别中文
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[root@server1 tasks]# pwd
/etc/ansible/roles/mariadb/tasks
[root@server1 tasks]# vim main.yml
---
- name: install mariadb server
yum:
name: mariadb-server,MySQL-python
state: present
- name: config mariadb
copy:
src: my.cnf
dest: /etc/my.cnf
notify: restart mariadb
- name: start mariadb server
service:
name: mariadb
state: started
[root@server1 handlers]# pwd
/etc/ansible/roles/mariadb/handlers
[root@server1 handlers]# vim main.yml
---
- name: restart mariadb
service:
name: mariadb
state: restarted
##server2安装zabbix-server--获取配置文件
[root@server2 ~]# yum install -y zabbix-server
[root@server2 ~]# scp /etc/zabbix/zabbix_server.conf server1:/etc/ansible/roles/zabbix-server/files
/etc/ansible/roles/zabbix-server/files
[root@server1 files]# vim zabbix_server.conf
DBPassword=zabbix
[root@server1 zabbix-server]# pwd
/etc/ansible/roles/zabbix-server
[root@server1 zabbix-server]# mkdir handlers
[root@server1 zabbix-server]# cd handlers/
[root@server1 handlers]# pwd
/etc/ansible/roles/zabbix-server/handlers
[root@server1 handlers]# vim main.yml
---
- name: create datbase
mysql_db:
name: zabbix
state: present
listen: "init zabbix db"
- name: create zabbix user
mysql_user:
name: zabbix
password: zabbix priv=zabbix.*:ALL
state: present
listen: "init zabbix db"
- name: import create.sql.gz
mysql_db:
name: zabbix
state: import
target: /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz
listen: "init zabbix db"
- name: restart zabbix server
service:
name: zabbix-server
state: restarted
[root@server1 zabbix-server]# cd tasks/
[root@server1 tasks]# ls
[root@server1 tasks]# vim main.yml
---
- name: copy zabbix.repo
copy:
src: zabbix.repo
dest: /etc/yum.repos.d/zabbix.repo
- name: install zabbix-server
yum:
name: zabbix-server,zabbix-agent
state: present
notify: "init zabbix db"
- name: config zabbix server
copy:
src: zabbix_server.conf
dest: /etc/zabbix/zabbix_server.conf
notify: restart zabbix server
- name: start zabbix server
service:
name: "{{ item }}"
state: started
loop:
- zabbix-server
- zabbix-agent
注意:变量一定要加双引号!!
[root@server1 zabbix-server]# cd /etc/ansible/
[root@server1 ansible]# ls
ansible.cfg hosts index.html playbooks roles
[root@server1 ansible]# vim zabbix-server.yml
---
#zabbix-server部署
- hosts: server2 ##此处注意hosts文件,应该是什么组
roles:
- mariadb
- zabbix-server
##执行
[root@server1 ansible]# ansible-playbook zabbix-server.yml
未完。。。。待续。。。。。。。。。。。。。。
此处报错是因为:角色目录中的hosts和配置文件中的不一致。注意修改