Skip to content

Instantly share code, notes, and snippets.

@sky-joker
Created June 24, 2019 06:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sky-joker/fd22535f0d715e5cd64503e13f0a8cea to your computer and use it in GitHub Desktop.
Save sky-joker/fd22535f0d715e5cd64503e13f0a8cea to your computer and use it in GitHub Desktop.
zabbix server3.0から4.2のコンテナを起動するPlaybook
---
- name: zabbix container servers playbook
hosts: localhost
gather_facts: no
vars:
state: present
#state: absent
tasks:
- name: zabbix container servers operation.
docker_compose:
project_name: zabbix servers
definition:
version: '3.7'
services:
# Zabbix Server 3.0
zabbix30-db:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
zabbix30-server:
image: zabbix/zabbix-server-mysql:centos-3.0-latest
environment:
DB_SERVER_HOST: "zabbix30-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
depends_on:
- "zabbix30-db"
links:
- "zabbix30-db"
zabbix30-web:
image: zabbix/zabbix-web-apache-mysql:centos-3.0-latest
environment:
DB_SERVER_HOST: "zabbix30-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
ZBX_SERVER_HOST: "zabbix30-server"
PHP_TZ: "Asia/Tokyo"
depends_on:
- "zabbix30-db"
- "zabbix30-server"
links:
- "zabbix30-db"
- "zabbix30-server"
ports:
- "8030:80"
# Zabbix Server 3.2
zabbix32-db:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
zabbix32-server:
image: zabbix/zabbix-server-mysql:centos-3.2-latest
environment:
DB_SERVER_HOST: "zabbix32-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
depends_on:
- "zabbix32-db"
links:
- "zabbix32-db"
zabbix32-web:
image: zabbix/zabbix-web-apache-mysql:centos-3.2-latest
environment:
DB_SERVER_HOST: "zabbix32-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
ZBX_SERVER_HOST: "zabbix32-server"
PHP_TZ: "Asia/Tokyo"
depends_on:
- "zabbix32-db"
- "zabbix32-server"
links:
- "zabbix32-db"
- "zabbix32-server"
ports:
- "8032:80"
# Zabbix Server 3.4
zabbix34-db:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
zabbix34-server:
image: zabbix/zabbix-server-mysql:centos-3.4-latest
environment:
DB_SERVER_HOST: "zabbix34-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
depends_on:
- "zabbix34-db"
links:
- "zabbix34-db"
zabbix34-web:
image: zabbix/zabbix-web-apache-mysql:centos-3.4-latest
environment:
DB_SERVER_HOST: "zabbix34-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
ZBX_SERVER_HOST: "zabbix34-server"
PHP_TZ: "Asia/Tokyo"
depends_on:
- "zabbix34-db"
- "zabbix34-server"
links:
- "zabbix34-db"
- "zabbix34-server"
ports:
- "8034:80"
# Zabbix Server 4.0
zabbix40-db:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
zabbix40-server:
image: zabbix/zabbix-server-mysql:centos-4.0-latest
environment:
DB_SERVER_HOST: "zabbix40-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
depends_on:
- "zabbix40-db"
links:
- "zabbix40-db"
zabbix40-web:
image: zabbix/zabbix-web-apache-mysql:centos-4.0-latest
environment:
DB_SERVER_HOST: "zabbix40-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
ZBX_SERVER_HOST: "zabbix40-server"
PHP_TZ: "Asia/Tokyo"
depends_on:
- "zabbix40-db"
- "zabbix40-server"
links:
- "zabbix40-db"
- "zabbix40-server"
ports:
- "8040:80"
# Zabbix Server 4.2
zabbix42-db:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
zabbix42-server:
image: zabbix/zabbix-server-mysql:centos-4.2-latest
environment:
DB_SERVER_HOST: "zabbix42-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
depends_on:
- "zabbix42-db"
links:
- "zabbix42-db"
zabbix42-web:
image: zabbix/zabbix-web-apache-mysql:centos-4.2-latest
environment:
DB_SERVER_HOST: "zabbix42-db"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix"
MYSQL_DATABASE: "zabbix"
MYSQL_ROOT_PASSWORD: "zabbix"
ZBX_SERVER_HOST: "zabbix42-server"
PHP_TZ: "Asia/Tokyo"
depends_on:
- "zabbix42-db"
- "zabbix42-server"
links:
- "zabbix42-db"
- "zabbix42-server"
ports:
- "8042:80"
state: "{{ state }}"
- name: check login to zabbix.
uri:
url: "http://127.0.0.1:{{ item }}/api_jsonrpc.php"
method: POST
body:
jsonrpc: "2.0"
method: "user.login"
params:
user: "admin"
password: "zabbix"
id: "1"
body_format: json
status_code: 200
retries: 60
delay: 5
until: result is defined and 'json' in result and 'result' in result.json
register: result
loop:
- 8030
- 8032
- 8034
- 8040
- 8042
when: state == "present"
- name: set zabbix locale.
shell: |
for c in $( docker ps --format '{% raw %}{{ .Names }}{% endraw %}' | grep web) ; do
docker exec $c localedef -f UTF-8 -i {{ item }} {{ item }}
done
loop:
- zh_CN
- cs_CZ
- fr_FR
- he_IL
- it_IT
- ko_KR
- ja_JP
- nb_NO
- pl_PL
- pt_BR
- pt_PT
- ru_RU
- sk_SK
- tr_TR
- uk_UA
notify: apache graceful
when: state == "present"
handlers:
- name: apache graceful
shell: |
for c in $( docker ps --format '{% raw %}{{ .Names }}{% endraw %}' | grep web) ; do
docker exec $c apachectl -k graceful
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment