diff --git a/ansible/beta-hosts/variables b/ansible/beta-hosts/variables index 46b0b6f7..cf60724c 100644 --- a/ansible/beta-hosts/variables +++ b/ansible/beta-hosts/variables @@ -47,7 +47,7 @@ shiva_rollbar_key=0526a90faec845d796e1ef5361a00526 [beta:vars] ansible_ssh_private_key_file=~/.ssh/oregon.pem -datadog_host=10.20.1.59 +datadog_host_address=10.20.1.59 datadog_tags=env:beta domain=runnable-beta.com new_relic_license_key=338516e0826451c297d44dc60aeaf0a0ca4bfead diff --git a/ansible/gamma-hosts/variables b/ansible/gamma-hosts/variables index 4342c46b..0c814388 100644 --- a/ansible/gamma-hosts/variables +++ b/ansible/gamma-hosts/variables @@ -47,7 +47,7 @@ shiva_rollbar_key=0526a90faec845d796e1ef5361a00526 [gamma:vars] ansible_ssh_private_key_file=~/.ssh/gamma.pem -datadog_host=10.4.6.251 +datadog_host_address=10.4.6.251 datadog_tags=env:gamma domain=runnable-gamma.com new_relic_license_key=338516e0826451c297d44dc60aeaf0a0ca4bfead diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 0e7cd690..bb53bebe 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -3,7 +3,7 @@ registry_env: "prod" # for docker stop old container -stop_time: 60 +stop_time: 5 # For docker built containers do_not_push: true @@ -27,8 +27,6 @@ loggly_token: f673760d-e0b3-4a93-a15e-2862ea074f91 loggly_password: TebejAcutHeH_Ch0tR9ru4anaT6CRu*3 loggly_username: ops -weave_path: "/usr/local/bin/weave" - ## ## shared application configs ## @@ -37,28 +35,71 @@ weave_path: "/usr/local/bin/weave" api_github_hook_secret: 3V3RYTHINGisAW3S0ME! api_neo4j_port: 7474 api_neo4j_protocol: http:// +api_hostname: api.{{ domain }} +api_port: 80 + +# astral +pg_database: astral + +# charon +charon_port: 53 # datadog -datadog_port: 8125 datadog_api_key: 6488896fe0c811965ef233b96809d70d +datadog_host_address: "{{ ansible_default_ipv4.address }}" +datadog_port: 8125 + +# detention +detention_host_address: "{{ hostvars[groups['detention'][0]]['ansible_default_ipv4']['address'] }}" +detention_port: 9123 +detention_hostname: "detention.{{ domain }}" # docker -docker_port: 4242 +docker_ca_path: /etc/ssl/docker/ca.pem docker_cert_path: /etc/ssl/docker/cert.pem docker_key_path: /etc/ssl/docker/key.pem -docker_ca_path: /etc/ssl/docker/ca.pem +docker_port: 4242 # eru -eru_api_host: api.{{ domain }} +eru_port: 57831 +eru_hostname: "admin.{{ domain }}" + +# mavis +mavis_hostname: "mavis.{{ domain }}" +mavis_port: 3000 + +# metis +metis_port: 3000 + +# mongo +mongo_hosts: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_default_ipv4']['address'] }}:27000{% if not loop.last %},{% endif %}{% endfor %}" + +# navi +navi_host_address: "{{ hostvars[groups['navi'][0]]['ansible_default_ipv4']['address'] }}" +navi_port: 3567 + +# neo4j +neo4j_host_address: "{{ hostvars[groups['neo4j'][0]]['ansible_default_ipv4']['address'] }}" + +# optimus +optimus_port: 80 +optimus_hostname: optimus.{{ domain }} # rabbit +rabbit_host_address: "{{ hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address'] }}" rabbit_port: 54321 -# astral -pg_database: astral +# redis +redis_host_address: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" +redis_port: 6379 + +# sauron +weave_path: "/usr/local/bin/weave" # shiva pg_user: shiva +shiva_port: 3000 # swarm swarm_master_port: 2375 + diff --git a/ansible/group_vars/alpha-api.yml b/ansible/group_vars/alpha-api.yml index a3c10a1b..cc50c9ef 100644 --- a/ansible/group_vars/alpha-api.yml +++ b/ansible/group_vars/alpha-api.yml @@ -6,59 +6,53 @@ rollbar_token: a90d9c262c7c48cfabbd32fd0a1bc61c container_image: registry.runnable.com/runnable/{{ name }} container_tag: "{{ git_branch }}" repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["80"] +hosted_ports: ["{{ api_port }}"] node_version: "0.10.38" npm_version: "2.8.3" # for redis -redis_key: "frontend:api.{{ domain }}" +redis_key: "frontend:{{ api_hostname }}" is_redis_update_required: 'yes' -datadog_host: "{{ ansible_default_ipv4.address }}" - -mongo_hosts: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_default_ipv4']['address'] }}:27000{% if not loop.last %},{% endif %}{% endfor %}" -neo4j_host: "{{ hostvars[groups['neo4j'][0]]['ansible_default_ipv4']['address'] }}" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" # for container settings container_envs: > - -h api -e AWS_ACCESS_KEY_ID={{ api_aws_access_key_id }} -e AWS_SECRET_ACCESS_KEY={{ api_aws_secret_access_key }} - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} -e DOMAIN={{ domain }} - -e GITHUB_CALLBACK_URL=https://api.{{ domain }}/auth/github/callback + -e GITHUB_CALLBACK_URL=https://{{ api_hostname }}/auth/github/callback -e GITHUB_CLIENT_ID={{ api_github_client_id }} -e GITHUB_CLIENT_SECRET={{ api_github_client_secret }} -e GITHUB_DEPLOY_KEYS_BUCKET={{ api_github_deploy_keys_bucket }} - -e GITHUB_HOOK_URL=https://api.{{ domain }}/actions/github + -e GITHUB_HOOK_URL=https://{{ api_hostname }}/actions/github -e HELLO_RUNNABLE_GITHUB_TOKEN={{ api_hello_runnable_github_token }} - -e MAVIS_HOST=http://mavis.{{ domain }}:80 + -e MAVIS_HOST=http://{{ mavis_hostname }}:80 -e MIXPANEL_APP_ID={{ api_mixpanel_app_id }} -e MONGO=mongodb://{{ api_mongo_auth }}@{{ mongo_hosts }}/{{ api_mongo_database }} -e MONGO_REPLSET_NAME={{ api_mongo_replset_name }} - -e NAVI_HOST=http://navi.{{ domain }} - -e NAVI_HOST=http://{{ hostvars[groups['navi'][0]]['ansible_default_ipv4']['address'] }}:3567 - -e NEO4J={{ api_neo4j_protocol }}{{ api_neo4j_auth }}@{{ neo4j_host }}:{{ api_neo4j_port }} + -e NAVI_HOST=http://{{ navi_host_addressname }}:{{ navi_port }} + -e NEO4J={{ api_neo4j_protocol }}{{ api_neo4j_auth }}@{{ neo4j_host_address }}:{{ api_neo4j_port }} -e NEW_RELIC_APP_NAME={{ api_new_relic_app_name }} -e NEW_RELIC_LICENSE_KEY={{ new_relic_license_key }} -e NEW_RELIC_LOG_LEVEL=fatal -e NEW_RELIC_NO_CONFIG_FILE=true -e NODE_ENV={{ node_env }} -e NUM_WORKERS=1 - -e OPTIMUS_HOST=http://optimus.{{ domain }} - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e OPTIMUS_HOST=http://{{ optimus_hostname }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} - -e REDIS_IPADDRESS={{ redis_host }} - -e REDIS_PORT=6379 + -e REDIS_IPADDRESS={{ redis_host_address }} + -e REDIS_PORT={{ redis_port }} -e ROLLBAR_KEY={{ api_rollbar_key }} -e S3_CONTEXT_RESOURCE_BUCKET={{ api_s3_context_bucket }} -e USER_CONTENT_DOMAIN={{ user_content_domain }} -e DOCKER_IMAGE_BUILDER_WEAVE_PATH={{ weave_path }} container_run_opts: > + -h {{ name }} -d -P -v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro diff --git a/ansible/group_vars/alpha-charon.yml b/ansible/group_vars/alpha-charon.yml index 0a320d89..a67e1716 100644 --- a/ansible/group_vars/alpha-charon.yml +++ b/ansible/group_vars/alpha-charon.yml @@ -1,17 +1,14 @@ name: "charon" -app_name: "charon" +app_name: "{{ name }}" app_repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["53"] - -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 +hosted_ports: ["{{ charon_port }}"] enviroment_vars: - API_HOST: "api.{{ domain }}" + API_HOST: "{{ api_hostname }}" API_TOKEN: "51c61b779f3de616a9639cfc44a22c79fbd8e328" - DATADOG_HOST: "{{ datadog_host }}" + DATADOG_HOST: "{{ datadog_host_address }}" DATADOG_PORT: "{{ datadog_port }}" DOMAIN_FILTER: "{{ user_content_domain }}" PORT: "{{ hosted_ports[0] }}" - REDIS_HOST: "{{ redis_host }}" + REDIS_HOST: "{{ redis_host_address }}" REDIS_PORT: "{{ redis_port }}" diff --git a/ansible/group_vars/alpha-detention.yml b/ansible/group_vars/alpha-detention.yml index 7adba58a..358e1ffe 100644 --- a/ansible/group_vars/alpha-detention.yml +++ b/ansible/group_vars/alpha-detention.yml @@ -3,13 +3,12 @@ name: "detention" container_image: "registry.runnable.com/runnable/{{ name }}" container_tag: "{{ git_branch }}" repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["9123"] +hosted_ports: ["{{ detention_port }}"] node_version: "0.12.0" npm_version: "2.1.18" # for redis -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_key: "frontend:{{ name }}.{{ domain }}" +redis_key: "frontend:{{ detention_hostname }}" is_redis_update_required: 'yes' dockerfile_post_install_commands: [ @@ -17,9 +16,12 @@ dockerfile_post_install_commands: [ ] container_envs: > - -h {{ name }} -e NODE_ENV={{ node_env }} - -e ABSOLUTE_URL=detention.{{ domain }} + -e ABSOLUTE_URL={{ detention_hostname }} -e PORT={{ hosted_ports[0] }} -container_run_opts: "-d -p {{ hosted_ports[0] }}:{{ hosted_ports[0] }} {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -p {{ hosted_ports[0] }}:{{ hosted_ports[0] }} + {{ container_envs }} diff --git a/ansible/group_vars/alpha-docker-listener.yml b/ansible/group_vars/alpha-docker-listener.yml index aa2360d8..f928839f 100644 --- a/ansible/group_vars/alpha-docker-listener.yml +++ b/ansible/group_vars/alpha-docker-listener.yml @@ -4,16 +4,11 @@ name: docker-listener app_name: "docker-listener" app_repo: "git@github.com:CodeNow/docker-listener.git" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 - enviroment_vars: - DOCKER_CERT_PATH: "/opt/ssl/docker/{{ name }}" - HOST_TAGS: "{{ host_tags | default('default') }}" LOGGLY_TOKEN: "{{ loggly_token }}" - RABBITMQ_HOSTNAME: "{% if rabbit_host is defined %}{{ rabbit_host }}{% else %}{{ hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address'] }}{% endif %}" + RABBITMQ_HOSTNAME: "{{ rabbit_host_address }}" RABBITMQ_PASSWORD: "{{ rabbit_password }}" RABBITMQ_PORT: "{{ rabbit_port }}" RABBITMQ_USERNAME: "{{ rabbit_username }}" - REDIS_IPADDRESS: "{{ redis_host }}" + REDIS_IPADDRESS: "{{ redis_host_address }}" REDIS_PORT: "{{ redis_port }}" diff --git a/ansible/group_vars/alpha-eru.yml b/ansible/group_vars/alpha-eru.yml index 5e34dad9..6f25b1ae 100644 --- a/ansible/group_vars/alpha-eru.yml +++ b/ansible/group_vars/alpha-eru.yml @@ -3,23 +3,24 @@ name: eru container_image: registry.runnable.com/runnable/{{ name }} container_tag: "{{ git_branch }}" repo: git@github.com:CodeNow/{{ name }}.git -hosted_ports: [57831] +hosted_ports: [{{ eru_port }}] node_version: "0.12.0" npm_version: "2.1.18" -stop_time: 5 # for redis -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_key: frontend:admin.{{ domain }} +redis_key: frontend:{{ eru_hostname }} is_redis_update_required: yes container_envs: > - -h {{ name }} - -e ADMIN_DOMAIN=admin.{{ domain }} + -e ADMIN_DOMAIN={{ eru_hostname }} -e ADMIN_GITHUB_ID={{ eru_github_id }} -e ADMIN_GITHUB_SECRET={{ eru_github_secret }} - -e API_HOST={{ eru_api_host }} + -e API_HOST={{ api_hostname }} -e RUNNABLE_HOST={{ domain }} -e PORT={{ hosted_ports[0] }} -container_run_opts: -d -p {{ hosted_ports[0] }}:{{ hosted_ports[0] }} {{ container_envs }} +container_run_opts: > + -h {{ name }} + -d + -p {{ hosted_ports[0] }}:{{ hosted_ports[0] }} + {{ container_envs }} diff --git a/ansible/group_vars/alpha-filibuster.yml b/ansible/group_vars/alpha-filibuster.yml index 8af133b5..6cf01417 100644 --- a/ansible/group_vars/alpha-filibuster.yml +++ b/ansible/group_vars/alpha-filibuster.yml @@ -6,3 +6,5 @@ name: filibuster app_name: "filibuster" app_repo: "git@github.com:Runnable/Filibuster.git" node_env: "{{ filibuster_env }}" + +enviroment_vars: {} \ No newline at end of file diff --git a/ansible/group_vars/alpha-hipache.yml b/ansible/group_vars/alpha-hipache.yml index 7b5989af..9b293020 100644 --- a/ansible/group_vars/alpha-hipache.yml +++ b/ansible/group_vars/alpha-hipache.yml @@ -1,10 +1,10 @@ # container_kill_start settings name: hipache -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 container_image: registry.runnable.com/runnable/hipache container_tag: latest +hosted_ports: [ 80, 443 ] + container_run_opts: > -d -p 80:80 @@ -12,8 +12,8 @@ container_run_opts: > -v /opt/hipache-conf:/host:rw -v /etc/ssl/certs/{{ domain }}:/etc/ssl/certs/{{ domain }} -v /etc/ssl/private/{{ domain }}.key:/etc/ssl/private/{{ domain }}.key + container_run_args: /usr/local/bin/hipache --config /host/config.json -hosted_ports: [ 80, 443 ] # hipache settings retry_on_error: 0 diff --git a/ansible/group_vars/alpha-khronos.yml b/ansible/group_vars/alpha-khronos.yml index c764fa46..fbb74664 100644 --- a/ansible/group_vars/alpha-khronos.yml +++ b/ansible/group_vars/alpha-khronos.yml @@ -6,33 +6,31 @@ repo: "git@github.com:CodeNow/{{ name }}.git" node_version: "0.12.7" npm_version: "2.1.18" -mongo_hosts: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_default_ipv4']['address'] }}:27000{% if not loop.last %},{% endif %}{% endfor %}" - # for cron job # this is the list of queues we want to enqueue a job into cron_queues: khronos:containers:image-builder:prune khronos:containers:orphan:prune khronos:context-versions:prune-expired khronos:images:prune khronos:weave:prune # a nice version of the rabbitmq host -cron_rabbit_host: "{{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }}:{{ rabbit_port }}" +cron_rabbit_host_address: "{{ rabbit_host_address }}:{{ rabbit_port }}" # a quick version of authentication for rabbit for cron cron_rabbit_auth: --username {{ rabbit_username }} --password {{ rabbit_password }} # this is the command we want to run in the container. -cron_command: "bash -c \"for QUEUE in {{ cron_queues }}; do /khronos/bin/cli.js --queue \\$QUEUE --job '{}' --host {{ cron_rabbit_host }} {{ cron_rabbit_auth }}; done\"" +cron_command: "bash -c \"for QUEUE in {{ cron_queues }}; do /khronos/bin/cli.js --queue \\$QUEUE --job '{}' --host {{ cron_rabbit_host_address }} {{ cron_rabbit_auth }}; done\"" # for container settings container_envs: > - -h khronos - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} -e KHRONOS_MONGO=mongodb://{{ khronos_mongo_auth }}@{{ mongo_hosts }}/{{ khronos_mongo_database }} -e LOG_LEVEL=info -e NODE_ENV={{ node_env }} - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} -e WORKER_MAX_RETRY_DELAY=3600000 container_run_opts: > + -h {{ name }} -d -v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro {{container_envs}} diff --git a/ansible/group_vars/alpha-krain.yml b/ansible/group_vars/alpha-krain.yml index 8017c285..d7510bbe 100644 --- a/ansible/group_vars/alpha-krain.yml +++ b/ansible/group_vars/alpha-krain.yml @@ -7,3 +7,5 @@ krain_env: default app_name: "krain" app_repo: "git@github.com:CodeNow/krain.git" node_env: "{{ krain_env }}" + +enviroment_vars: {} \ No newline at end of file diff --git a/ansible/group_vars/alpha-mavis.yml b/ansible/group_vars/alpha-mavis.yml index e351aeb8..7624f571 100644 --- a/ansible/group_vars/alpha-mavis.yml +++ b/ansible/group_vars/alpha-mavis.yml @@ -3,28 +3,30 @@ name: "mavis" container_image: "registry.runnable.com/runnable/{{ name }}" container_tag: "{{ git_branch }}" repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["3000"] +hosted_ports: ["{{ mavis_port }}"] node_version: "0.10.38" npm_version: "2.1.18" # for redis -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_key: "frontend:mavis.{{ domain }}" +redis_key: "frontend:{{ mavis_hostname }}" is_redis_update_required: 'yes' # container settings container_envs: > -e PORT={{ hosted_ports[0] }} - -e REDIS_PORT=6379 - -e REDIS_IPADDRESS={{ redis_host }} - -e DATADOG_HOST={{ datadog_host }} + -e REDIS_PORT={{ redis_port }} + -e REDIS_IPADDRESS={{ redis_host_address }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} -e CONTAINER_WEIGHT=0 - -e NEWRELIC_KEY=338516e0826451c297d44dc60aeaf0a0ca4bfead - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e NEWRELIC_KEY={{ new_relic_license_key }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} - --hostname={{ name }} -container_run_opts: "-d -P {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -P + {{container_envs}} diff --git a/ansible/group_vars/alpha-metis.yml b/ansible/group_vars/alpha-metis.yml index 9c73f799..0e9d4c7c 100644 --- a/ansible/group_vars/alpha-metis.yml +++ b/ansible/group_vars/alpha-metis.yml @@ -9,17 +9,13 @@ npm_version: "2.8.3" npm_start_command: "run metis-start" # Not actually needed, just allows container-kill-start to work -hosted_ports: ["3000"] - -# Needed for the UserData script in shiva -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 +hosted_ports: ["{{ metis_port }}"] # container settings container_envs: > - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} @@ -27,13 +23,16 @@ container_envs: > -e AWS_ACCESS_KEY_ID={{ aws_access_key_id }} -e AWS_SECRET_ACCESS_KEY={{ aws_secret_access_key }} -e NODE_ENV={{ node_env }} - -e REDIS_HOST={{ redis_host }} + -e REDIS_HOST={{ redis_host_address }} -e REDIS_PORT={{ redis_port }} - -e REDIS_IPADDRESS={{ redis_host }} + -e REDIS_IPADDRESS={{ redis_host_address }} -e REGISTRY_HOST={{ registry_host }} -e ROLLBAR_KEY={{ shiva_rollbar_key }} -e DOCKER_PORT={{ docker_port }} -e SWARM_TOKEN={{ swarm_token }} - --hostname={{ name }} -container_run_opts: "-d -P {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -P + {{ container_envs }} diff --git a/ansible/group_vars/alpha-navi.yml b/ansible/group_vars/alpha-navi.yml index 3011d91a..422e9c7d 100644 --- a/ansible/group_vars/alpha-navi.yml +++ b/ansible/group_vars/alpha-navi.yml @@ -3,24 +3,24 @@ name: "navi" container_image: "registry.runnable.com/runnable/{{ name }}" container_tag: "{{ git_branch }}" repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["3567"] +hosted_ports: ["{{ navi_port }}"] node_version: "4.1.0" npm_version: "2.8.3" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 - container_envs: > - -h navi - -e API_HOST=http://api.{{ domain }} - -e DATADOG_HOST={{ datadog_host }} + -e API_HOST=http://{{ api_hostname }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} - -e ERROR_URL=http://{{ hostvars[groups['detention'][0]]['ansible_default_ipv4']['address'] }}:9123 + -e ERROR_URL=http://{{ detention_host_address }}:{{ detention_port }} -e HELLO_RUNNABLE_GITHUB_TOKEN=5d8f7029d3d6941b0fc62a7eb8c605d8e0bc7c29 -e HTTP_PORT={{ hosted_ports[0] }} -e NODE_ENV={{ node_env }} - -e REDIS_IPADDRESS={{redis_host}} + -e REDIS_IPADDRESS={{ redis_host_address }} -e LOG_LEVEL_STDOUT=trace -e CLUSTER_WORKERS=20 -container_run_opts: "-d -p {{hosted_ports[0]}}:{{hosted_ports[0]}} {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -p {{ hosted_ports[0] }}:{{ hosted_ports[0] }} + {{ container_envs }} diff --git a/ansible/group_vars/alpha-optimus.yml b/ansible/group_vars/alpha-optimus.yml index 81972cd3..fb048230 100644 --- a/ansible/group_vars/alpha-optimus.yml +++ b/ansible/group_vars/alpha-optimus.yml @@ -3,23 +3,25 @@ name: "optimus" container_image: "registry.runnable.com/runnable/{{ name }}" container_tag: "{{ git_branch }}" repo: "git@github.com:CodeNow/{{ name }}.git" -hosted_ports: ["80"] +hosted_ports: ["{{ optimus_port }}"] node_version: "0.10.38" npm_version: "2.8.3" # for redis -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_key: "frontend:{{ name }}.{{ domain }}" +redis_key: "frontend:{{ optimus_hostname }}" is_redis_update_required: 'yes' container_envs: > - -h {{ name }} -e NODE_ENV={{ node_env }} - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} -e PORT={{ hosted_ports[0] }} -e AWS_ACCESS_KEY_ID={{ optimus_aws_access_id }} -e AWS_SECRET_ACCESS_KEY={{ optimus_aws_secret_id }} -e S3_DEPLOY_KEY_BUCKET={{ optimus_github_deploy_keys_bucket }} -container_run_opts: "-d -P {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -P + {{container_envs}} diff --git a/ansible/group_vars/alpha-palantiri.yml b/ansible/group_vars/alpha-palantiri.yml index 76705d3c..a5781886 100644 --- a/ansible/group_vars/alpha-palantiri.yml +++ b/ansible/group_vars/alpha-palantiri.yml @@ -6,24 +6,22 @@ repo: "git@github.com:CodeNow/{{ name }}.git" node_version: "0.10.38" npm_version: "2.1.18" -stop_time: "0" - # container settings container_envs: > -e NODE_ENV={{ node_env }} - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} - -e MAVIS_HOST=http://mavis.{{ domain }}:80 - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e MAVIS_HOST=http://{{ mavis_hostname }}:80 + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} -e ROLLBAR_KEY={{ palantiri_rollbar_key }} -e RSS_LIMIT=2000000 -e LOG_LEVEL_STDOUT=trace - --hostname={{ name }} container_run_opts: > + -h {{ name }} -d -v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro {{ container_envs }} diff --git a/ansible/group_vars/alpha-redis.yml b/ansible/group_vars/alpha-redis.yml index 070ecb04..807f32a1 100644 --- a/ansible/group_vars/alpha-redis.yml +++ b/ansible/group_vars/alpha-redis.yml @@ -1,11 +1,10 @@ # database vars name: redis db_path: "/opt/redis/db" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" # container_kill_start settings container_image: redis container_tag: "latest" -container_run_opts: "-d --name redis -v {{ db_path }}:/data -p 6379:6379" +container_run_opts: "-d --name redis -v {{ db_path }}:/data -p {{ redis_port }}:{{ redis_port }}" -hosted_ports: [ "6379" ] +hosted_ports: [ "{{ redis_port }}" ] diff --git a/ansible/group_vars/alpha-sauron.yml b/ansible/group_vars/alpha-sauron.yml index efdbe6d5..1194d700 100644 --- a/ansible/group_vars/alpha-sauron.yml +++ b/ansible/group_vars/alpha-sauron.yml @@ -4,15 +4,11 @@ name: sauron app_name: "{{ name }}" app_repo: "git@github.com:CodeNow/{{ name }}.git" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 - enviroment_vars: LOGGLY_TOKEN: "{{ loggly_token }}" - ORG_ID: "{{ org_id.stdout }}" - RABBITMQ_HOSTNAME: "{% if rabbit_host is defined %}{{ rabbit_host }}{% else %}{{ hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address'] }}{% endif %}" + RABBITMQ_HOSTNAME: "{{ rabbit_host_address }}" RABBITMQ_PASSWORD: "{{ rabbit_password }}" RABBITMQ_PORT: "{{ rabbit_port }}" RABBITMQ_USERNAME: "{{ rabbit_username }}" - REDIS_IPADDRESS: "{{ redis_host }}" + REDIS_IPADDRESS: "{{ redis_host_address }}" REDIS_PORT: "{{ redis_port }}" \ No newline at end of file diff --git a/ansible/group_vars/alpha-shiva.yml b/ansible/group_vars/alpha-shiva.yml index 37978dad..92b17f24 100644 --- a/ansible/group_vars/alpha-shiva.yml +++ b/ansible/group_vars/alpha-shiva.yml @@ -9,17 +9,13 @@ npm_version: "2.8.3" npm_start_command: "run shiva-start" # Not actually needed, just allows container-kill-start to work -hosted_ports: ["3000"] - -# Needed for the UserData script in shiva -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" -redis_port: 6379 +hosted_ports: ["{{ shiva_port }}"] # container settings container_envs: > - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} @@ -28,11 +24,14 @@ container_envs: > -e AWS_SECRET_ACCESS_KEY={{ aws_secret_access_key }} -e NODE_ENV={{ node_env }} -e REDIS_PORT={{ redis_port }} - -e REDIS_IPADDRESS={{ redis_host }} + -e REDIS_IPADDRESS={{ redis_host_address }} -e REGISTRY_HOST={{ registry_host }} -e ROLLBAR_KEY={{ shiva_rollbar_key }} -e DOCKER_PORT={{ docker_port }} -e SWARM_TOKEN={{ swarm_token }} - --hostname={{ name }} -container_run_opts: "-d -P {{container_envs}}" +container_run_opts: > + -h {{ name }} + -d + -P + {{container_envs}} diff --git a/ansible/group_vars/alpha-web.yml b/ansible/group_vars/alpha-web.yml index a8d75fda..39e92e95 100644 --- a/ansible/group_vars/alpha-web.yml +++ b/ansible/group_vars/alpha-web.yml @@ -7,7 +7,6 @@ hosted_ports: ["443", "3000"] node_version: "0.10.38" npm_version: "2.1.18" rollbar_token: "162a053bebd34e9eb6e2860543c7ae79" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" dockerfile_enviroment: [ "API_HOST //api.{{ domain }}", @@ -30,4 +29,9 @@ container_envs: > -e PORT={{ hosted_ports[1] }} -e HTTPS=true -e HTTPS_PORT={{ hosted_ports[0] }} -container_run_opts: "-d -P {{container_envs}}" + +container_run_opts: > + -h {{ name }} + -d + -P + {{ container_envs }}" diff --git a/ansible/group_vars/alpha-workers.yml b/ansible/group_vars/alpha-workers.yml index f3cc6eac..222dbd13 100644 --- a/ansible/group_vars/alpha-workers.yml +++ b/ansible/group_vars/alpha-workers.yml @@ -10,52 +10,45 @@ repo: "git@github.com:CodeNow/api.git" node_version: "0.10.38" npm_version: "2.8.3" -datadog_host: "{{ ansible_default_ipv4.address }}" - -mongo_hosts: "{% for host in groups['mongodb'] %}{{ hostvars[host]['ansible_default_ipv4']['address'] }}:27000{% if not loop.last %},{% endif %}{% endfor %}" -neo4j_host: "{{ hostvars[groups['neo4j'][0]]['ansible_default_ipv4']['address'] }}" -redis_host: "{{ hostvars[groups['redis'][0]]['ansible_default_ipv4']['address'] }}" - # for container settings container_envs: > - -h {{ name }} -e AWS_ACCESS_KEY_ID={{ api_aws_access_key_id }} -e AWS_SECRET_ACCESS_KEY={{ api_aws_secret_access_key }} - -e DATADOG_HOST={{ datadog_host }} + -e DATADOG_HOST={{ datadog_host_address }} -e DATADOG_PORT={{ datadog_port }} -e DOMAIN={{ domain }} - -e GITHUB_CALLBACK_URL=https://api.{{ domain }}/auth/github/callback + -e GITHUB_CALLBACK_URL=https://{{ api_hostname }}/auth/github/callback -e GITHUB_CLIENT_ID={{ api_github_client_id }} -e GITHUB_CLIENT_SECRET={{ api_github_client_secret }} -e GITHUB_DEPLOY_KEYS_BUCKET={{ api_github_deploy_keys_bucket }} - -e GITHUB_HOOK_URL=https://api.{{ domain }}/actions/github + -e GITHUB_HOOK_URL=https://{{ api_hostname }}/actions/github -e HELLO_RUNNABLE_GITHUB_TOKEN={{ api_hello_runnable_github_token }} -e IS_QUEUE_WORKER=true - -e MAVIS_HOST=http://mavis.{{ domain }}:80 + -e MAVIS_HOST=http://{{ mavis_hostname }}:80 -e MIXPANEL_APP_ID={{ api_mixpanel_app_id }} -e MONGO=mongodb://{{ api_mongo_auth }}@{{ mongo_hosts }}/{{ api_mongo_database }} -e MONGO_REPLSET_NAME={{ api_mongo_replset_name }} - -e NAVI_HOST=http://navi.{{ domain }} - -e NAVI_HOST=http://{{ hostvars[groups['navi'][0]]['ansible_default_ipv4']['address'] }}:3567 - -e NEO4J={{ api_neo4j_protocol }}{{ api_neo4j_auth }}@{{ neo4j_host }}:{{ api_neo4j_port }} + -e NAVI_HOST=http://{{ navi_host_addressname }}:{{ navi_port }} + -e NEO4J={{ api_neo4j_protocol }}{{ api_neo4j_auth }}@{{ neo4j_host_address }}:{{ api_neo4j_port }} -e NEW_RELIC_APP_NAME={{ api_new_relic_app_name }} -e NEW_RELIC_LICENSE_KEY={{ new_relic_license_key }} -e NEW_RELIC_LOG_LEVEL=fatal -e NEW_RELIC_NO_CONFIG_FILE=true -e NODE_ENV={{ node_env }} - -e OPTIMUS_HOST=http://optimus.{{ domain }} - -e RABBITMQ_HOSTNAME={{ rabbit_host | default(hostvars[groups['rabbitmq'][0]]['ansible_default_ipv4']['address']) }} + -e OPTIMUS_HOST=http://{{ optimus_hostname }} + -e RABBITMQ_HOSTNAME={{ rabbit_host_address }} -e RABBITMQ_PASSWORD={{ rabbit_password }} -e RABBITMQ_PORT={{ rabbit_port }} -e RABBITMQ_USERNAME={{ rabbit_username }} - -e REDIS_IPADDRESS={{ redis_host }} - -e REDIS_PORT=6379 + -e REDIS_IPADDRESS={{ redis_host_address }} + -e REDIS_PORT={{ redis_port }} -e ROLLBAR_KEY={{ api_rollbar_key }} -e S3_CONTEXT_RESOURCE_BUCKET={{ api_s3_context_bucket }} -e USER_CONTENT_DOMAIN={{ user_content_domain }} -e DOCKER_IMAGE_BUILDER_WEAVE_PATH={{ weave_path }} container_run_opts: > + -h {{ name }} -d -v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro {{ container_envs }} diff --git a/ansible/prod-hosts/variables b/ansible/prod-hosts/variables index dfabdb9b..39a25c14 100644 --- a/ansible/prod-hosts/variables +++ b/ansible/prod-hosts/variables @@ -47,7 +47,7 @@ shiva_rollbar_key=0526a90faec845d796e1ef5361a00526 [alpha:vars] ansible_ssh_private_key_file=~/.ssh/Test-runnable.pem -datadog_host=10.0.1.239 +datadog_host_address=10.0.1.239 datadog_tags=env:alpha domain=runnable.io new_relic_license_key=338516e0826451c297d44dc60aeaf0a0ca4bfead diff --git a/ansible/redis-slave.yml b/ansible/redis-slave.yml index e72faf6d..a27d6fa3 100644 --- a/ansible/redis-slave.yml +++ b/ansible/redis-slave.yml @@ -7,5 +7,5 @@ - { role: notify, tags: "notify" } - { role: database, tags: "deploy" } - { role: container_kill_start, - container_run_args: "redis-server --slaveof {{ redis_host }} 6379", + container_run_args: "redis-server --slaveof {{ redis_host_address }} 6379", tags: "deploy" } diff --git a/ansible/roles/container_kill_start/handlers/main.yml b/ansible/roles/container_kill_start/handlers/main.yml index 5232f991..44e9148f 100644 --- a/ansible/roles/container_kill_start/handlers/main.yml +++ b/ansible/roles/container_kill_start/handlers/main.yml @@ -7,5 +7,5 @@ # this assumes only one container is running, ever - name: update redis key when: container_ports is defined - command: sudo docker run --rm redis redis-cli -h {{redis_host}} lset {{redis_key}} 1 {{hosted_protocol | default('http') }}://{{ansible_default_ipv4.address}}:{{container_ports.stdout}} + command: sudo docker run --rm redis redis-cli -h {{redis_host_address}} lset {{redis_key}} 1 {{hosted_protocol | default('http') }}://{{ansible_default_ipv4.address}}:{{container_ports.stdout}} when: is_redis_update_required is defined diff --git a/ansible/roles/container_start/handlers/main.yml b/ansible/roles/container_start/handlers/main.yml index 9388ce3c..95de9719 100644 --- a/ansible/roles/container_start/handlers/main.yml +++ b/ansible/roles/container_start/handlers/main.yml @@ -6,7 +6,7 @@ # this assumes only one container is running, ever - name: update redis key - command: sudo docker run --rm redis redis-cli -h {{redis_host}} lset {{redis_key}} 1 {{hosted_protocol | default('http') }}://{{ansible_default_ipv4.address}}:{{container_ports.stdout}} + command: sudo docker run --rm redis redis-cli -h {{redis_host_address}} lset {{redis_key}} 1 {{hosted_protocol | default('http') }}://{{ansible_default_ipv4.address}}:{{container_ports.stdout}} when: is_redis_update_required is defined and container_ports is defined - name: stop old containers diff --git a/ansible/roles/git_node_service/tasks/main.yml b/ansible/roles/git_node_service/tasks/main.yml index 1fe8fa2a..32e7d8e5 100644 --- a/ansible/roles/git_node_service/tasks/main.yml +++ b/ansible/roles/git_node_service/tasks/main.yml @@ -30,6 +30,18 @@ state=latest production=yes +- name: add env to configs + tags: 'update_configs' + sudo: yes + when: enviroment_vars is defined + with_dict: "{{ enviroment_vars }}" + lineinfile: + dest=/etc/init/{{ app_name }}.conf + regexp="env {{ item.key }}" + insertafter="env NPM_BIN" + line="env {{ item.key }}={{ item.value }}" + state=present + - name: restart service {{ app_name }} sudo: yes service: diff --git a/ansible/roles/hipache/templates/config.json b/ansible/roles/hipache/templates/config.json index 5be9c208..4e74d305 100644 --- a/ansible/roles/hipache/templates/config.json +++ b/ansible/roles/hipache/templates/config.json @@ -26,5 +26,5 @@ "ciphers": "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA", "checkForBackend80": {{ httpsCheckForBackend80 | default("false") }} }, - "driver": ["redis://{{ redis_host }}:{{ redis_port }}"] + "driver": ["redis://{{ redis_host_address }}:{{ redis_port }}"] } diff --git a/ansible/roles/redis_key/tasks/main.yml b/ansible/roles/redis_key/tasks/main.yml index 3145197d..0c2628a4 100644 --- a/ansible/roles/redis_key/tasks/main.yml +++ b/ansible/roles/redis_key/tasks/main.yml @@ -1,9 +1,9 @@ --- - name: check keys - command: sudo docker run --rm redis redis-cli -h {{redis_host}} LLEN {{redis_key}} + command: sudo docker run --rm redis redis-cli -h {{redis_host_address}} LLEN {{redis_key}} register: key_length changed_when: key_length.stdout == "0" - name: create key if not exist - command: sudo docker run --rm redis redis-cli -h {{redis_host}} RPUSH {{redis_key}} {{name}} {{name}} + command: sudo docker run --rm redis redis-cli -h {{redis_host_address}} RPUSH {{redis_key}} {{name}} {{name}} when: key_length.changed diff --git a/ansible/stage-hosts b/ansible/stage-hosts index 243c98b9..8c6709f4 100644 --- a/ansible/stage-hosts +++ b/ansible/stage-hosts @@ -2,9 +2,8 @@ alpha-stage-userland-hipache domain=runnable2.net httpsCheckForBackend80=true prependIncomingPort=true subDomainDepth=3 [docks] -alpha-stage-dock1 -alpha-stage-dock2 host_tags=2335750,build -alpha-stage-runnable host_tags=2335750,run +10.0.1.120 +10.0.1.109 [charon] alpha-stage-hipache