--- - name: Deploy Zabbix-Agent and Zabbix-Proxy with Docker hosts: all become: true vars: zabbix_version: "alpine-6.2-latest" hostname: "{{ ansible_hostname }}" # zabbix_server_host: "{{ hostvars['your_zabbix_server']['ansible_default_ipv4']['address'] }}" zabbix_server_host: 87.128.173.178 zabbix_cachesize: "64M" docker_network_name: "build" docker_network_external: true tasks: - name: Ensure directory exists file: path: /mnt/docker/zabbix-agent state: directory owner: root group: docker mode: '0755' - name: Create Docker Compose file copy: dest: /mnt/docker/zabbix-agent/docker-compose.yaml content: | version: "3" services: zabbix-agent: image: zabbix/zabbix-agent2:{{ zabbix_version }} container_name: zabbix-agent hostname: zabbix-agent restart: unless-stopped privileged: true user: root healthcheck: test: grep -qr "zabbix_agent2" /proc/*/status || exit 1 interval: 1m timeout: 30s retries: 3 environment: - ZBX_HOSTNAME - ZBX_SERVER_HOST=zabbix-proxy - ZBX_ACTIVE_ALLOW - ZBX_PASSIVE_ALLOW volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock - /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket - ./dummy:/mnt/docker:ro zabbix-proxy: image: zabbix/zabbix-proxy-sqlite3:{{ zabbix_version }} container_name: zabbix-proxy hostname: zabbix-proxy restart: unless-stopped healthcheck: test: grep -qr "zabbix_proxy" /proc/*/status || exit 1 interval: 1m timeout: 30s retries: 3 ports: - 127.0.0.1:10051:10051 environment: - ZBX_PROXYMODE=1 - ZBX_HOSTNAME - ZBX_SERVER_HOST - ZBX_CACHESIZE volumes: - ./snmptraps:/var/lib/zabbix/snmptraps networks: default: name: {{ docker_network_name }} external: {{ docker_network_external }} - name: Create .env file copy: dest: /mnt/docker/zabbix-agent/.env content: | # settings for container ZBX_HOSTNAME="{{ hostname }}" ZBX_ACTIVE_ALLOW=false ZBX_PASSIVE_ALLOW=true ZBX_SERVER_HOST="{{ zabbix_server_host }}" ZBX_CACHESIZE="{{ zabbix_cachesize }}" mode: '0640' owner: root group: docker - name: Run Docker Compose community.docker.docker_compose: project_src: /mnt/docker/zabbix-agent/ state: present restarted: yes