[openstack][heat-cfn] CFN Signaling with heat
Zane Bitter
zbitter at redhat.com
Wed Oct 9 01:29:27 UTC 2019
I'm not an expert on stuff that happens on the guest, but it looks like
this is the problem:
> [2019-10-05 17:32:47,724] (heat-config) [ERROR] Skipping group
> Heat::Ungrouped with no hook script None
You're using the default group that has no handler for it configured. It
looks like 55_heat_config bails out before attempting to signal a
response in this case. (That seems crazy to me, but here we are.)
Try configuring a group (like 'script') that actually does something.
Also why not use HEAT_SIGNAL as the transport? It's 2019 ;)
cheers,
Zane.
On 5/10/19 1:34 PM, Ajay Kalambur (akalambu) wrote:
> Hi
>
> I was trying the Software Deployment/Structured deployment of heat.
>
> I somehow can never get the signaling to work I see that authentication
> is happening but I don’t see a POST from the VM as a result stack is
> stuck in CREATE_IN_PROGRESS
>
> I see this message in my heat api cfn log which seems to suggest
> authentication is successful but it does not seem to POST. Have included
> debug output from VM and also the sample heat template I used. Don’t
> know if the template is correct as I referred some online examples to
> build it
>
> 2019-10-05 10:30:00.908 7 INFO heat.api.aws.ec2token [-] Checking AWS
> credentials..
>
> 2019-10-05 10:30:00.909 7 INFO heat.api.aws.ec2token [-] AWS credentials
> found, checking against keystone.
>
> 2019-10-05 10:30:00.910 7 INFO heat.api.aws.ec2token [-] Authenticating
> with http://10.10.173.9:5000/v3/ec2tokens
>
> 2019-10-05 10:30:01.315 7 INFO heat.api.aws.ec2token [-] AWS
> authentication successful.
>
> 2019-10-05 10:30:02.326 7 INFO eventlet.wsgi.server
> [req-506f22c6-4062-4a84-8e85-40317a4099ed -
> adccd09df89e4b71b0a42f462679e75a-b1c6eb69-3877-466b-b00d-03dc051 -
> 0ecadd4762a34de1ac08508db4d3caa9 0ecadd4762a34de1ac08508db4d3caa9]
> 10.11.59.36,10.10.173.9 - - [05/Oct/2019 10:30:02] "GET
> /v1/?SignatureVersion=2&AWSAccessKeyId=f7874ac9898248edaae53511230534a4&StackName=test_stack&SignatureMethod=HmacSHA256&Signature=c03Q7Hb35q9tPPuYOv6YByn5YekF96p2s5zx36sX7x4%3D&Action=DescribeStackResource&LogicalResourceId=sig-vm-1
> HTTP/1.1" 200 4669 1.418045
>
> Some debugging output from my VM:
>
> [root at sig-vm-1 fedora]# sudo os-collect-config --force --one-time --debug
>
> /var/lib/os-collect-config/local-data not found. Skipping
>
> [2019-10-05 17:32:47,058] (os-refresh-config) [INFO] Starting phase
> pre-configure
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 -----------------------
> PROFILING -----------------------
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Target: pre-configure.d
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> Script Seconds
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> --------------------------------------- ----------
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 --------------------- END
> PROFILING ---------------------
>
> [2019-10-05 17:32:47,091] (os-refresh-config) [INFO] Completed phase
> pre-configure
>
> [2019-10-05 17:32:47,092] (os-refresh-config) [INFO] Starting phase
> configure
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Running
> /usr/libexec/os-refresh-config/configure.d/20-os-apply-config
>
> [2019/10/05 05:32:47 PM] [INFO] writing /var/run/heat-config/heat-config
>
> [2019/10/05 05:32:47 PM] [INFO] writing /etc/os-collect-config.conf
>
> [2019/10/05 05:32:47 PM] [INFO] success
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 20-os-apply-config completed
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Running
> /usr/libexec/os-refresh-config/configure.d/50-heat-config-docker-compose
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 50-heat-config-docker-compose
> completed
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Running
> /usr/libexec/os-refresh-config/configure.d/50-heat-config-kubelet
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 50-heat-config-kubelet completed
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Running
> /usr/libexec/os-refresh-config/configure.d/55-heat-config
>
> [2019-10-05 17:32:47,724] (heat-config) [ERROR] Skipping group
> Heat::Ungrouped with no hook script None
>
> [2019-10-05 17:32:47,724] (heat-config) [ERROR] Skipping group
> Heat::Ungrouped with no hook script None
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 55-heat-config completed
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 -----------------------
> PROFILING -----------------------
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Target: configure.d
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Script
> Seconds
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> --------------------------------------- ----------
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> 20-os-apply-config 0.345
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> 50-heat-config-docker-compose 0.064
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> 50-heat-config-kubelet 0.134
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
> 55-heat-config 0.065
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 --------------------- END
> PROFILING ---------------------
>
> [2019-10-05 17:32:47,787] (os-refresh-config) [INFO] Completed phase
> configure
>
> [2019-10-05 17:32:47,787] (os-refresh-config) [INFO] Starting phase
> post-configure
>
> dib-run-parts Sat Oct 5 17:32:47 UTC 2019 Running
> /usr/libexec/os-refresh-config/post-configure.d/99-refresh-completed
>
> ++ os-apply-config --key completion-handle --type raw --key-default ''
>
> + HANDLE=
>
> ++ os-apply-config --key completion-signal --type raw --key-default ''
>
> + SIGNAL=
>
> ++ os-apply-config --key instance-id --type raw --key-default ''
>
> + ID=i-0000000d
>
> + '[' -n i-0000000d ']'
>
> + '[' -n '' ']'
>
> + '[' -n '' ']'
>
> ++ os-apply-config --key deployments --type raw --key-default ''
>
> ++ jq -r 'map(select(.group == "os-apply-config") |
>
> select(.inputs[].name == "deploy_signal_id") |
>
> .id + (.inputs | map(select(.name == "deploy_signal_id"))
> | .[].value)) |
>
> .[]'
>
> + DEPLOYMENTS=
>
> + DEPLOYED_DIR=/var/lib/os-apply-config-deployments/deployed
>
> + '[' '!' -d /var/lib/os-apply-config-deployments/deployed ']'
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 99-refresh-completed completed
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 -----------------------
> PROFILING -----------------------
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 Target: post-configure.d
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
> Script Seconds
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
> --------------------------------------- ----------
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
> 99-refresh-completed 1.206
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 --------------------- END
> PROFILING ---------------------
>
> [2019-10-05 17:32:49,041] (os-refresh-config) [INFO] Completed phase
> post-configure
>
> [2019-10-05 17:32:49,042] (os-refresh-config) [INFO] Starting phase
> migration
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 -----------------------
> PROFILING -----------------------
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 Target: migration.d
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
> Script Seconds
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
> --------------------------------------- ----------
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019
>
> dib-run-parts Sat Oct 5 17:32:49 UTC 2019 --------------------- END
> PROFILING ---------------------
>
> [2019-10-05 17:32:49,073] (os-refresh-config) [INFO] Completed phase
> migration
>
> onfig]# cat /var/run/heat-config/heat-config
>
> [{"inputs": [{"type": "String", "name": "foo", "value": "fu"}, {"type":
> "String", "name": "bar", "value": "barmy"}, {"type": "String", "name":
> "deploy_server_id", "value": "226ed96d-2335-436e-9707-95af73041e5f",
> "description": "ID of the server being deployed to"}, {"type": "String",
> "name": "deploy_action", "value": "CREATE", "description": "Name of the
> current action being deployed"}, {"type": "String", "name":
> "deploy_stack_id", "value":
> "test_stack/b1c6eb69-3877-466b-b00d-03dc051d1893", "description": "ID of
> the stack this deployment belongs to"}, {"type": "String", "name":
> "deploy_resource_name", "value": "other_deployment", "description":
> "Name of this deployment resource in the stack"}, {"type": "String",
> "name": "deploy_signal_transport", "value": "CFN_SIGNAL", "description":
> "How the server should signal to heat with the deployment output
> values."}, {"type": "String", "name": "deploy_signal_id", "value":
> "http://172.29.85.87:8000/v1/signal/arn%3Aopenstack%3Aheat%3A%3Aadccd09df89e4b71b0a42f462679e75a%3Astacks/test_stack/b1c6eb69-3877-466b-b00d-03dc051d1893/resources/other_deployment?Timestamp=2019-10-05T01%3A11%3A46Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=28a09f5d996240b8b4a117ecb0e0142b&SignatureVersion=2&Signature=IqXbRf9MzJ%2FnzqM7CLNAsR3BiwmaaHyWQspegxYc3D8%3D",
> "description": "ID of signal to use for signaling output values"},
> {"type": "String", "name": "deploy_signal_verb", "value": "POST",
> "description": "HTTP verb to use for signaling outputvalues"}], "group":
> "Heat::Ungrouped", "name": "test_stack-config-bmekpj67pq6p", "outputs":
> [], "creation_time": "2019-10-05T01:14:31Z", "options": {}, "config":
> {"config_value_foo": "fu", "config_value_bar": "barmy"}, "id":
> "5c404619-ce79-48cd-b001-00ac6ff4f4e8"}, {"inputs": [{"type": "String",
> "name": "foo", "value": "fooooo"}, {"type": "String", "name": "bar",
> "value": "baaaaa"}, {"type": "String", "name": "deploy_server_id",
> "value": "226ed96d-2335-436e-9707-95af73041e5f", "description": "ID of
> the server being deployed to"}, {"type": "String", "name":
> "deploy_action", "value": "CREATE", "description": "Name of the current
> action being deployed"}, {"type": "String", "name": "deploy_stack_id",
> "value": "test_stack/b1c6eb69-3877-466b-b00d-03dc051d1893",
> "description": "ID of the stack this deployment belongs to"}, {"type":
> "String", "name": "deploy_resource_name", "value": "deployment",
> "description": "Name of this deployment resource in the stack"},
> {"type": "String", "name": "deploy_signal_transport", "value":
> "CFN_SIGNAL", "description": "How the server should signal to heat with
> the deployment output values."}, {"type": "String", "name":
> "deploy_signal_id", "value":
> "http://172.29.85.87:8000/v1/signal/arn%3Aopenstack%3Aheat%3A%3Aadccd09df89e4b71b0a42f462679e75a%3Astacks/test_stack/b1c6eb69-3877-466b-b00d-03dc051d1893/resources/deployment?Timestamp=2019-10-05T01%3A11%3A46Z&SignatureMethod=HmacSHA256&AWSAccessKeyId=4c3d718796e0452ea94f2ce8dc6973ef&SignatureVersion=2&Signature=rxtSBNUSF%2FEXn9wvVK4XMU%2F1RzXVDGILtZr1hmkl7gg%3D",
> "description": "ID of signal to use for signaling output values"},
> {"type": "String", "name": "deploy_signal_verb", "value": "POST",
> "description": "HTTP verb to use for signaling outputvalues"}], "group":
> "Heat::Ungrouped", "name": "test_stack-config-bmekpj67pq6p", "outputs":
> [], "creation_time": "2019-10-05T01:14:31Z", "options": {}, "config":
> {"config_value_foo": "fooooo", "config_value_bar": "baaaaa"}, "id":
> "f4dea0c1-73c9-4ce4-aa04-c76ef9b08859"}][root at sig-vm-1 heat-config]#
>
> [root at sig-vm-1 heat-config]# cat /etc/os-collect-config.conf
>
> [DEFAULT]
>
> command = os-refresh-config
>
> collectors = ec2
>
> collectors = cfn
>
> collectors = local
>
> [cfn]
>
> metadata_url = http://172.29.85.87:8000/v1/
>
> stack_name = test_stack
>
> secret_access_key = npa^GWsPtbRL7D*MYObOI*kV0i1yqKOG
>
> access_key_id = f7874ac9898248edaae53511230534a4
>
> path = sig-vm-1.Metadata
>
> *Here is my basic sample temple*
>
> heat_template_version: 2013-05-23
>
> description: >
>
> This template demonstrates how to use OS::Heat::StructuredDeployment
>
> to override substitute get_input placeholders defined in
>
> OS::Heat::StructuredConfig config.
>
> As there is no hook on the server to act on the configuration data,
>
> these deployment resource will perform no actual configuration.
>
> parameters:
>
> flavor:
>
> type: string
>
> default: 'a061cb6c-99e7-4bdb-93e4-f0037ee3e947'
>
> image:
>
> type: string
>
> default: 3be29d9f-2ce6-4b95-b80c-0dbca7acfdfe
>
> public_net_id:
>
> type: string
>
> default: 67ae0e17-6258-4fb6-8b9b-0f29f6adb9db
>
> private_net_id:
>
> type: string
>
> description: Private network id
>
> default: 995fc046-1c58-468a-b81c-e42c06fc8966
>
> private_subnet_id:
>
> type: string
>
> description: Private subnet id
>
> default: 7598c805-3a9b-4c27-be5b-dca4d89f058c
>
> password:
>
> type: string
>
> description: SSH password
>
> default: lab123
>
> resources:
>
> the_sg:
>
> type: OS::Neutron::SecurityGroup
>
> properties:
>
> name: the_sg
>
> description: Ping and SSH
>
> rules:
>
> - protocol: icmp
>
> - protocol: tcp
>
> port_range_min: 22
>
> port_range_max: 22
>
> config:
>
> type: OS::Heat::StructuredConfig
>
> properties:
>
> config:
>
> config_value_foo: {get_input: foo}
>
> config_value_bar: {get_input: bar}
>
> deployment:
>
> type: OS::Heat::StructuredDeployment
>
> properties:
>
> signal_transport: CFN_SIGNAL
>
> config:
>
> get_resource: config
>
> server:
>
> get_resource: sig-vm-1
>
> input_values:
>
> foo: fooooo
>
> bar: baaaaa
>
> other_deployment:
>
> type: OS::Heat::StructuredDeployment
>
> properties:
>
> signal_transport: CFN_SIGNAL
>
> config:
>
> get_resource: config
>
> server:
>
> get_resource: sig-vm-1
>
> input_values:
>
> foo: fu
>
> bar: barmy
>
> server1_port0:
>
> type: OS::Neutron::Port
>
> properties:
>
> network_id: { get_param: private_net_id }
>
> security_groups:
>
> - default
>
> fixed_ips:
>
> - subnet_id: { get_param: private_subnet_id }
>
> server1_public:
>
> type: OS::Neutron::FloatingIP
>
> properties:
>
> floating_network_id: { get_param: public_net_id }
>
> port_id: { get_resource: server1_port0 }
>
> sig-vm-1:
>
> type: OS::Nova::Server
>
> properties:
>
> name: sig-vm-1
>
> image: { get_param: image }
>
> flavor: { get_param: flavor }
>
> networks:
>
> - port: { get_resource: server1_port0 }
>
> user_data_format: SOFTWARE_CONFIG
>
> user_data:
>
> get_resource: cloud_config
>
> cloud_config:
>
> type: OS::Heat::CloudConfig
>
> properties:
>
> cloud_config:
>
> password: { get_param: password }
>
> chpasswd: { expire: False }
>
> ssh_pwauth: True
>
More information about the openstack-discuss
mailing list