Skip to content

Instantly share code, notes, and snippets.

@hackndoes
Created July 26, 2017 07:13
Show Gist options
  • Save hackndoes/925e461767d4b26a0e6d817d558070ed to your computer and use it in GitHub Desktop.
Save hackndoes/925e461767d4b26a0e6d817d558070ed to your computer and use it in GitHub Desktop.
TASK [aws-vpc : Create load-balancer] *************************************************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: </ErrorResponse>
failed: [localhost] (item={u'instance_port': 80, u'health_check': {u'response_timeout': 5, u'ping_port': 80, u'ping_protocol': u'http', u'interval': 10, u'unhealthy_threshold': 5, u'ping_path': u'/api/v1/heartbeat', u'healthy_threshold': 3}, u'name': u'admin_portal', u'lb_sec_group_names': [u'allow_vpc_ssh', u'web_lb'], u'instance_protocol': u'http', u'stickiness': {u'type': u'loadbalancer', u'enabled': True, u'expiration': u'0'}, u'ssl_certificate_arn': u'arn:aws:iam::375296840481:server-certificate/linnovate_cert'}) => {"failed": true, "item": {"health_check": {"healthy_threshold": 3, "interval": 10, "ping_path": "/api/v1/heartbeat", "ping_port": 80, "ping_protocol": "http", "response_timeout": 5, "unhealthy_threshold": 5}, "instance_port": 80, "instance_protocol": "http", "lb_sec_group_names": ["allow_vpc_ssh", "web_lb"], "name": "admin_portal", "ssl_certificate_arn": "arn:aws:iam::375296840481:server-certificate/linnovate_cert", "stickiness": {"enabled": true, "expiration": "0", "type": "loadbalancer"}}, "module_stderr": "Traceback (most recent call last):\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 1357, in <module>\n main()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 1344, in main\n elb_man.ensure_ok()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 418, in _do_op\n return op(*args, **kwargs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 507, in ensure_ok\n self.select_stickiness_policy()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 1054, in select_stickiness_policy\n self._set_stickiness_policy(elb_info, listeners_dict, policy, **policy_attrs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 1019, in _set_stickiness_policy\n self._create_policy(policy_attrs['param_value'], policy_attrs['method'], policy[0])\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_cZ7ExN/ansible_module_ec2_elb_lb.py\", line 996, in _create_policy\n getattr(self.elb_conn, policy_meth )(policy_param, self.elb.name, policy)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/ec2/elb/__init__.py\", line 636, in create_lb_cookie_stickiness_policy\n return self.get_status('CreateLBCookieStickinessPolicy', params)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py\", line 1227, in get_status\n raise self.ResponseError(response.status, response.reason, body)\nboto.exception.BotoServerError: BotoServerError: 400 Bad Request\n<ErrorResponse xmlns=\"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/\">\n <Error>\n <Type>Sender</Type>\n <Code>ValidationError</Code>\n <Message>Cookie expiration period should be a greater than 0.</Message>\n </Error>\n <RequestId>7bc66a9c-7151-11e7-a6ee-05363ac07599</RequestId>\n</ErrorResponse>\n\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: </ErrorResponse>
failed: [localhost] (item={u'instance_port': 8083, u'health_check': {u'response_timeout': 30, u'ping_port': 8083, u'ping_protocol': u'http', u'interval': 60, u'unhealthy_threshold': 5, u'ping_path': u'/heartbeat', u'healthy_threshold': 3}, u'name': u'application_server', u'lb_sec_group_names': [u'allow_vpc_ssh', u'web_lb'], u'instance_protocol': u'http', u'stickiness': {u'type': u'loadbalancer', u'enabled': True, u'expiration': u'0'}, u'ssl_certificate_arn': u'arn:aws:iam::375296840481:server-certificate/linnovate_cert'}) => {"failed": true, "item": {"health_check": {"healthy_threshold": 3, "interval": 60, "ping_path": "/heartbeat", "ping_port": 8083, "ping_protocol": "http", "response_timeout": 30, "unhealthy_threshold": 5}, "instance_port": 8083, "instance_protocol": "http", "lb_sec_group_names": ["allow_vpc_ssh","web_lb"], "name": "application_server", "ssl_certificate_arn": "arn:aws:iam::375296840481:server-certificate/linnovate_cert", "stickiness": {"enabled": true, "expiration": "0", "type": "loadbalancer"}}, "module_stderr": "Traceback (most recent call last):\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 1357, in <module>\n main()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 1344, in main\n elb_man.ensure_ok()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 418, in _do_op\n return op(*args, **kwargs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 507, in ensure_ok\n self.select_stickiness_policy()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 1054, in select_stickiness_policy\n self._set_stickiness_policy(elb_info, listeners_dict, policy, **policy_attrs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 1019, in _set_stickiness_policy\n self._create_policy(policy_attrs['param_value'], policy_attrs['method'], policy[0])\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_aPtYSQ/ansible_module_ec2_elb_lb.py\", line 996, in _create_policy\n getattr(self.elb_conn, policy_meth )(policy_param, self.elb.name, policy)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/ec2/elb/__init__.py\", line 636, in create_lb_cookie_stickiness_policy\n return self.get_status('CreateLBCookieStickinessPolicy', params)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py\", line 1227, in get_status\n raise self.ResponseError(response.status, response.reason, body)\nboto.exception.BotoServerError: BotoServerError: 400 Bad Request\n<ErrorResponse xmlns=\"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/\">\n <Error>\n <Type>Sender</Type>\n <Code>ValidationError</Code>\n <Message>Cookie expiration period should be a greater than 0.</Message>\n </Error>\n <RequestId>7eb6d3ba-7151-11e7-b640-05981e8270dd</RequestId>\n</ErrorResponse>\n\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: </ErrorResponse>
failed: [localhost] (item={u'instance_port': 8084, u'health_check': {u'response_timeout': 5, u'ping_port': 8084, u'ping_protocol': u'http', u'interval': 10, u'unhealthy_threshold': 5, u'ping_path': u'/', u'healthy_threshold': 3}, u'name': u'metadata_service', u'lb_sec_group_names': [u'allow_vpc_ssh', u'web_lb'], u'instance_protocol': u'http', u'scheme': u'internal', u'stickiness': {u'type': u'loadbalancer', u'enabled': True, u'expiration': u'0'}, u'ssl_certificate_arn': u'arn:aws:iam::375296840481:server-certificate/linnovate_cert'}) => {"failed": true, "item": {"health_check": {"healthy_threshold": 3, "interval": 10, "ping_path": "/", "ping_port": 8084, "ping_protocol": "http", "response_timeout": 5, "unhealthy_threshold": 5}, "instance_port": 8084, "instance_protocol": "http", "lb_sec_group_names": ["allow_vpc_ssh", "web_lb"], "name": "metadata_service", "scheme": "internal", "ssl_certificate_arn": "arn:aws:iam::375296840481:server-certificate/linnovate_cert", "stickiness": {"enabled": true, "expiration": "0", "type": "loadbalancer"}}, "module_stderr": "Traceback (most recent call last):\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 1357, in <module>\n main()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 1344, in main\n elb_man.ensure_ok()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 418, in _do_op\n return op(*args, **kwargs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 507, in ensure_ok\n self.select_stickiness_policy()\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 1054, in select_stickiness_policy\n self._set_stickiness_policy(elb_info, listeners_dict, policy, **policy_attrs)\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 1019, in_set_stickiness_policy\n self._create_policy(policy_attrs['param_value'], policy_attrs['method'], policy[0])\n File \"/var/folders/f9/r74mb5n9021byt22d8595d100000gn/T/ansible_TErtVO/ansible_module_ec2_elb_lb.py\", line 996, in _create_policy\n getattr(self.elb_conn, policy_meth )(policy_param, self.elb.name, policy)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/ec2/elb/__init__.py\", line 636, in create_lb_cookie_stickiness_policy\n return self.get_status('CreateLBCookieStickinessPolicy', params)\n File \"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/boto/connection.py\", line 1227, in get_status\n raise self.ResponseError(response.status, response.reason, body)\nboto.exception.BotoServerError: BotoServerError: 400 Bad Request\n<ErrorResponse xmlns=\"http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/\">\n <Error>\n <Type>Sender</Type>\n <Code>ValidationError</Code>\n <Message>Cookie expiration period should be a greater than 0.</Message>\n </Error>\n <RequestId>8187a715-7151-11e7-b4b3-dd8b0674e42b</RequestId>\n</ErrorResponse>\n\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 1}
PLAY RECAP ****************************************************************************************************************************************************************************************************
localhost : ok=39 changed=2 unreachable=0 failed=1
---
- name: "Create load-balancer"
with_items: '{{ load_balanced_roles }}'
register: roles_elbs
ec2_elb_lb:
name: "{{ envname }}-{{ item.name|replace('_', '-') }}"
region: '{{ region }}'
state: present
subnets: "{{ vpc_subnet.results|selectattr('subnet.tags.type', 'equalto', 'public')|selectattr('subnet.tags.category', 'equalto', 'application')|list|map(attribute='subnet.id')|list }}"
instance_ids: "{{ vars[item.name +'_instances'].strip().split(' ') }}"
security_group_names: "{{ item.lb_sec_group_names }}"
scheme: "{{ item.scheme | default('internet-facing') }}"
cross_az_load_balancing: yes
# changed to one below because of a bug in Ansible 2.1.x.
# security_group_ids:
# - '{{ (ec2_security_groups.results|selectattr("invocation.module_args.name", "equalto", "allow_vpc")|first).group_id }}'
# - '{{ (ec2_security_groups.results|selectattr("invocation.module_args.name", "equalto", "web_lb")|first).group_id }}'
wait: yes
tags:
Name: "{{ envname }}-{{ item.name|replace('_', '-') }}"
environment: '{{ envname }}'
stickiness:
type: "{{ item.stickiness.type }}"
enabled: "{{ item.stickiness.enabled }}"
expiration: "{{ item.stickiness.expiration }}"
health_check:
ping_protocol: "{{ item.health_check.ping_protocol }}"
ping_port: "{{ item.health_check.ping_port }}"
ping_path: "{{ item.health_check.ping_path }}"
response_timeout: "{{ item.health_check.response_timeout }}"
interval: "{{ item.health_check.interval }}"
unhealthy_threshold: "{{ item.health_check.unhealthy_threshold }}"
healthy_threshold: "{{ item.health_check.healthy_threshold }}"
listeners:
- protocol: https
load_balancer_port: 443
instance_protocol: "{{ item.instance_protocol }}"
instance_port: "{{ item.instance_port }}"
# proxy_protocol: True
ssl_certificate_id: "{{ item.ssl_certificate_arn }}"
---
# for LB/gstencoder configuration lb is not in awsdev group thus must be put in all under awsdev inventory
# gstencoder also references that port and not in a role so should use environmental configuration
load_balanced_roles:
- name: service_name_prefix
instance_protocol: http
instance_port: "{{ host_port }}"
ssl_certificate_arn: "{{ certificate_locator }}"
lb_sec_group_names: [sec_group_1, sec_group_2]
stickiness:
type: loadbalancer
enabled: yes
expiration: 0
health_check:
ping_protocol: http
ping_port: "{{ host_port }}"
ping_path: /api/v1/healthcheck
response_timeout: 5
interval: 10
unhealthy_threshold: 5
healthy_threshold: 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment