Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- - name: Deploy elasticsearch and Kibana
- docker_stack:
- state: present
- name: cinevoy
- prune: yes
- resolve_image: always
- with_registry_auth: yes
- compose:
- - version: "3.8"
- services:
- elasticsearch:
- image: "docker.elastic.co/elasticsearch/elasticsearch:{{ ELASTICSEARCH_APP.STACK_VERSION }}"
- deploy:
- mode: global
- update_config:
- parallelism: 1
- order: stop-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.elasticsearch == node
- volumes:
- - "es-data:/usr/share/elasticsearch/data"
- networks:
- - network_1
- ports:
- - "{{ ELASTICSEARCH_APP.ES_PORT }}:9200"
- environment:
- - "discovery.type=single-node"
- # - node.name={{ inventory_hostname }}
- # - cluster.name={{ ELASTICSEARCH_APP.CLUSTER_NAME }}
- # - cluster.initial_master_nodes=cinevoy_elasticsearch
- # - discovery.seed_hosts=cinevoy_elasticsearch
- - ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}
- - bootstrap.memory_lock=true
- - xpack.security.enabled=false
- - xpack.security.http.ssl.enabled=false
- - xpack.security.transport.ssl.enabled=false
- - xpack.license.self_generated.type={{ ELASTICSEARCH_APP.LICENSE }}
- - http.cors.enabled=true
- - http.cors.allow-origin=http://localhost:8080
- ulimits:
- memlock:
- soft: -1
- hard: -1
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl http://localhost:9200 | grep -q 'You Know, for Search'",
- ]
- interval: 10s
- timeout: 10s
- retries: 120
- kibana:
- depends_on:
- - elasticsearch
- image: "docker.elastic.co/kibana/kibana:{{ ELASTICSEARCH_APP.STACK_VERSION }}"
- deploy:
- mode: global
- update_config:
- order: start-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.kibana == node
- volumes:
- - kibana-data:/usr/share/kibana/data
- networks:
- - network_1
- ports:
- - "{{ ELASTICSEARCH_APP.KIBANA_PORT }}:5601"
- environment:
- - "SERVERNAME=kibana"
- - "ELASTICSEARCH_HOSTS=http://cinevoy_elasticsearch:9200"
- - "ELASTICSEARCH_USERNAME=kibana_system"
- - "ELASTICSEARCH_PASSWORD={{ ELASTICSEARCH_APP.KIBANA_PASSWORD }}"
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",
- ]
- interval: 10s
- timeout: 10s
- retries: 120
- elasticvue:
- image: "cars10/elasticvue"
- deploy:
- mode: replicated
- replicas: 1
- update_config:
- parallelism: 1
- order: start-first
- failure_action: rollback
- delay: 10s
- ports:
- - "8080:8080"
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl -f -s http://localhost:8080 || exit 1",
- ]
- start_period: 10s
- interval: 10s
- timeout: 10s
- retries: 20
- redis:
- image: redis:6.2.13-alpine3.18
- deploy:
- mode: global
- resources:
- limits:
- memory: 6G
- update_config:
- parallelism: 1
- order: stop-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.redis == node
- command: redis-server --maxmemory 5gb --maxmemory-policy volatile-lru
- volumes:
- - redis-data:/data
- networks:
- - network_1
- ports:
- - "6379:6379"
- healthcheck:
- test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
- interval: 2s
- timeout: 2s
- retries: 60
- fastapi:
- depends_on:
- - elasticsearch
- image: "{{ CINEVOY_IMAGE }}"
- deploy:
- mode: replicated
- replicas: 4
- update_config:
- parallelism: 2
- order: start-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.fastapi == node
- networks:
- - network_1
- ports:
- - "8000:8000"
- environment:
- - "CSB_REDIS_URL=redis://redis:6379/"
- - "CSB_ELASTIC_HOST=http://cinevoy_elasticsearch:9200"
- - "CSB_ELASTIC_USER=elastic"
- - "CSB_ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}"
- - "CSB_OPENROUTER_API_KEY={{ ELASTICSEARCH_APP.OPENROUTER_API_KEY }}"
- - "CSB_AUTH_ENABLE=False"
- - "CSB_AUTH_USERNAME={{ AUTH_USERNAME }}"
- - "CSB_AUTH_PASSWORD={{ AUTH_PASSWORD }}"
- - "CSB_STAMEDIA_TSV_FILE=/app/stamedia.tsv"
- - "CSB_SENTRY_IS_ENABLE=true"
- - "CSB_SENTRY_DSN={{ SENTRY_DSN }}"
- - "CSB_JWT_SECRET_KEY={{ JWT_SECRET_KEY }}"
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl -u {{ AUTH_USERNAME }}:{{AUTH_PASSWORD }} -f -s http://localhost:8000/health/ || exit 1",
- ]
- interval: 10s
- timeout: 10s
- retries: 5
- # celery_worker:
- # image: "{{ CINEVOY_IMAGE }}"
- # deploy:
- # mode: replicated
- # replicas: 1
- # update_config:
- # parallelism: 1
- # order: stop-first
- # failure_action: rollback
- # delay: 10s
- # placement:
- # constraints:
- # - node.labels.fastapi == node
- # command: celery -A searchbox.worker.app worker -Q default --loglevel=INFO --concurrency=1
- # depends_on:
- # - redis
- # networks:
- # - network_1
- # environment:
- # - "CSB_REDIS_URL=redis://redis:6379/"
- # - "CSB_ELASTIC_HOST=http://cinevoy_elasticsearch:9200"
- # - "CSB_ELASTIC_USER=elastic"
- # - "CSB_ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}"
- # - "CSB_KP_DEV_API_KEY={{ ELASTICSEARCH_APP.KP_DEV_API_KEY }}"
- # - "CSB_OPENROUTER_API_KEY={{ ELASTICSEARCH_APP.OPENROUTER_API_KEY }}"
- # - "CSB_MYSQL_HOST={{ MYSQL_HOST }}"
- # - "CSB_MYSQL_DB={{ MYSQL_DB }}"
- # - "CSB_MYSQL_USER={{ MYSQL_USER }}"
- # - "CSB_MYSQL_PASSWORD={{ MYSQL_PASSWORD }}"
- # - "CSB_STAMEDIA_TSV_FILE=/app/stamedia.tsv"
- # - "CSB_SENTRY_IS_ENABLE=true"
- # - "CSB_SENTRY_DSN={{ SENTRY_DSN }}"
- # healthcheck:
- # test:
- # [
- # "CMD-SHELL",
- # "celery -A searchbox.worker.app inspect ping --destination celery@$$HOSTNAME",
- # ]
- # start_period: 10s
- # interval: 10s
- # timeout: 10s
- # retries: 20
- #
- # celery_worker_multithread:
- # image: "{{ CINEVOY_IMAGE }}"
- # deploy:
- # mode: replicated
- # replicas: 4
- # update_config:
- # parallelism: 2
- # order: start-first
- # failure_action: rollback
- # delay: 10s
- # placement:
- # constraints:
- # - node.labels.fastapi == node
- # command: celery -A searchbox.worker.app worker -Q multithread --loglevel=INFO --concurrency=1
- # depends_on:
- # - redis
- # networks:
- # - network_1
- # environment:
- # - "CSB_REDIS_URL=redis://redis:6379/"
- # - "CSB_ELASTIC_HOST=http://cinevoy_elasticsearch:9200"
- # - "CSB_ELASTIC_USER=elastic"
- # - "CSB_ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}"
- # - "CSB_KP_DEV_API_KEY={{ ELASTICSEARCH_APP.KP_DEV_API_KEY }}"
- # - "CSB_OPENROUTER_API_KEY={{ ELASTICSEARCH_APP.OPENROUTER_API_KEY }}"
- # - "CSB_MYSQL_HOST={{ MYSQL_HOST }}"
- # - "CSB_MYSQL_DB={{ MYSQL_DB }}"
- # - "CSB_MYSQL_USER={{ MYSQL_USER }}"
- # - "CSB_MYSQL_PASSWORD={{ MYSQL_PASSWORD }}"
- # - "CSB_STAMEDIA_TSV_FILE=/app/stamedia.tsv"
- # - "CSB_SENTRY_IS_ENABLE=true"
- # - "CSB_SENTRY_DSN={{ SENTRY_DSN }}"
- # healthcheck:
- # test:
- # [
- # "CMD-SHELL",
- # "celery -A searchbox.worker.app inspect ping --destination celery@$$HOSTNAME",
- # ]
- # start_period: 10s
- # interval: 10s
- # timeout: 10s
- # retries: 20
- celery_flower:
- image: "{{ CINEVOY_IMAGE }}"
- deploy:
- mode: replicated
- replicas: 1
- update_config:
- parallelism: 1
- order: start-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.fastapi == node
- command: celery -A searchbox.worker.app flower --loglevel=DEBUG
- depends_on:
- - redis
- - celery_worker
- networks:
- - network_1
- ports:
- - "5555:5555"
- environment:
- - "CSB_REDIS_URL=redis://redis:6379/"
- - "CSB_ELASTIC_HOST=http://cinevoy_elasticsearch:9200"
- - "CSB_ELASTIC_USER=elastic"
- - "CSB_ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}"
- - "CSB_STAMEDIA_TSV_FILE=/app/stamedia.tsv"
- - "CSB_SENTRY_IS_ENABLE=true"
- - "CSB_SENTRY_DSN={{ SENTRY_DSN }}"
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl -f -s http://localhost:5555/ || exit 1",
- ]
- interval: 10s
- timeout: 10s
- retries: 5
- # cron_scheduler:
- # image: "{{ CINEVOY_IMAGE }}"
- # deploy:
- # mode: replicated
- # replicas: 1
- # update_config:
- # parallelism: 1
- # order: stop-first
- # failure_action: pause
- # delay: 10s
- # placement:
- # constraints:
- # - node.labels.fastapi == node
- # command: python searchbox/cron_scheduler/main.py
- # depends_on:
- # - redis
- # networks:
- # - network_1
- # environment:
- # - "CSB_REDIS_URL=redis://redis:6379/"
- # - "CSB_ELASTIC_HOST=http://cinevoy_elasticsearch:9200"
- # - "CSB_ELASTIC_USER=elastic"
- # - "CSB_ELASTIC_PASSWORD={{ ELASTICSEARCH_APP.ELASTIC_PASSWORD }}"
- # - "CSB_KP_DEV_API_KEY={{ ELASTICSEARCH_APP.KP_DEV_API_KEY }}"
- # - "CSB_OPENROUTER_API_KEY={{ ELASTICSEARCH_APP.OPENROUTER_API_KEY }}"
- # - "CSB_MYSQL_HOST={{ MYSQL_HOST }}"
- # - "CSB_MYSQL_DB={{ MYSQL_DB }}"
- # - "CSB_MYSQL_USER={{ MYSQL_USER }}"
- # - "CSB_MYSQL_PASSWORD={{ MYSQL_PASSWORD }}"
- # - "CSB_STAMEDIA_TSV_FILE=/app/stamedia.tsv"
- # - "CSB_SENTRY_IS_ENABLE=true"
- # - "CSB_SENTRY_DSN={{ SENTRY_DSN }}"
- # healthcheck:
- # test:
- # [
- # "CMD-SHELL",
- # "sh searchbox/cron_scheduler/check_socket_health.sh",
- # ]
- # start_period: 10s
- # interval: 10s
- # timeout: 10s
- # retries: 20
- web:
- image: "{{ CINEVOY_WEB_IMAGE }}"
- deploy:
- mode: replicated
- replicas: 1
- update_config:
- parallelism: 1
- order: start-first
- failure_action: rollback
- delay: 10s
- placement:
- constraints:
- - node.labels.fastapi == node
- ports:
- - "8001:80"
- healthcheck:
- test:
- [
- "CMD-SHELL",
- "curl -f -s -u {{ DEMO_USER }}:{{ DEMO_PASSWORD }} http://localhost:80/ || exit 1",
- ]
- interval: 10s
- timeout: 10s
- retries: 5
- webplayer:
- image: "{{ CINEVOY_WEBPLAYER_IMAGE }}"
- deploy:
- mode: replicated
- replicas: 1
- # update_config:
- # parallelism: 1
- # order: start-first
- # failure_action: rollback
- # delay: 10s
- placement:
- constraints:
- - node.labels.fastapi == node
- ports:
- - "8002:3000"
- # healthcheck:
- # test:
- # [
- # "CMD-SHELL",
- # "curl -f -s http://localhost:3000/ || exit 1",
- # ]
- # interval: 10s
- # timeout: 10s
- # retries: 5
- networks:
- network_1:
- driver: overlay
- attachable: true
- volumes:
- es-data:
- driver: local
- kibana-data:
- driver: local
- redis-data:
- driver: local
- when: inventory_hostname in groups['eks'][0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement