[chef] Re: Re: failing to feed run_list to first-boot.json from userdata


Chronological Thread 
  • From: AJ Christensen < >
  • To:
  • Subject: [chef] Re: Re: failing to feed run_list to first-boot.json from userdata
  • Date: Sat, 21 Jan 2012 12:40:43 +1300

It looks like you are telling chef to use /etc/chef/first-boot.json
and then showing us the output of a curl command.

Show us the contents of /etc/chef/first-boot.json -- it looks like
your crazy client.rb is generating it, based on the user data?

Seems awfully complex, maybe even unnecessarily so. What problem are
you solving for, here?

--AJ

On 21 January 2012 12:35,  
< >
 wrote:
>
> got a little farther. now i'm getting the run_list contents into a
> json file. but the first chef run fails. chef client is natty, 0.10.8.
> chef server is natty, 0.10.4. i'll show the end of the debug output
> at the bottom.
>
> any help?
>
> knife ec2 launch command is the same.
>
> client.firstboot.rb gist updated: https://gist.github.com/1648988
>
>
> the first chef run is run like so:
>
> /usr/bin/chef-client -c /etc/chef/client.firstboot.rb -j 
> /etc/chef/first-boot.json -l debug -L /var/log/chef/client.log
>
>
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Sending HTTP Request via GET to 
> chef.dev.spergatronic.com:443/nodes/cheftain03.dev.spergatronic.com
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Synchronizing cookbooks
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Signing the request as 
> cheftain03.dev.spergatronic.com
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: String to sign: 'Method:GET
> Hashed Path:ElB0/CXW2+Oojbo2+os6SdIsdWs=
> X-Ops-Content-Hash:2jmj7l5rSw0yVb/vlWAYkK/YBwk=
> X-Ops-Timestamp:2012-01-20T23:19:41Z
> X-Ops-UserId:cheftain03.dev.spergatronic.com'
> Header hash: {"X-Ops-Content-Hash"=>"2jmj7l5rSw0yVb/vlWAYkK/YBwk=", 
> "X-Ops-Authorization-1"=>"V2fmlwDSnSH5vEiQtPs86OhEsyV567RJ8W6z
> zPEdxEFVT0ZKs7VDGptwzo1T", 
> "X-Ops-Userid"=>"cheftain03.dev.spergatronic.com", 
> "X-Ops-Sign"=>"version=1.0", "X-Ops-Authorization-2"=>"O
> Nfrm3C9YxBbqHgeCJcVUemHQb2WLPIBlkUPIcJtqpTsH3gZVnxbK9uGfv4s", 
> "X-Ops-Authorization-3"=>"womX5+3X8tntwvnFaQ2KvdzbLIySbHoixWL9ObFGBp
> ZXd5sJ0h2zWyI8t0pW", 
> "X-Ops-Authorization-4"=>"aOsXzUKrM1CLsU0gOBSamwZgJxZoBn+WmFwehXPn3EalnZPzP9DIjob/8b+I",
>  "X-Ops-Authorization
> -5"=>"L7ZUj7rSRWfFSLxKNKSwAME/1y3lkJIlnifOKU1zyGQMPwYWXqa97Mb8LD8z", 
> "X-Ops-Authorization-6"=>"QtJyIcM6XuNy3CeZk3g6M7rsTAFY95oMcO4
> 8YHADSA==", "X-Ops-Timestamp"=>"2012-01-20T23:19:41Z"}
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Sending HTTP Request via GET to 
> 10.xx.xx.xx:443/nodes/cheftain03.dev.spergatronic.com/cookbo
> oks
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Cookbooks to load: {}
> [Fri, 20 Jan 2012 23:19:41 +0000] DEBUG: Compiling recipes for node 
> cheftain03.dev.spergatronic.com
> /usr/lib/ruby/1.8/chef/client.rb:313:in `converge': undefined method 
> `run_list' for nil:NilClass (NoMethodError)
>        from /usr/lib/ruby/1.8/chef/client.rb:87:in `run'
>        from /usr/lib/ruby/1.8/chef/application/client.rb:215:in 
> `run_application'
>        from /usr/lib/ruby/1.8/chef/application/client.rb:207:in `loop'
>        from /usr/lib/ruby/1.8/chef/application/client.rb:207:in 
> `run_application'
>        from /usr/lib/ruby/1.8/chef/application.rb:62:in `run'
>        from /usr/bin/chef-client:25
>
>
>
>  :/etc/chef#
>  curl -s http://169.254.169.254/latest/user-data
> {
>    "validation_key": "-----BEGIN RSA PRIVATE KEY-----\nMIxx_snip\n",
>    "attributes": {
>      "role": "chefsrv",
>      "node_name": "cheftain03.dev.spergatronic.com",
>      "environment": "dev",
>      "cluster": "dev",
>      "vol_list": [
>        "vol-f1xxxxxx",
>        "vol-q2xxxxxx"
>      ]
>    },
>    "chef_server": "https://10.xx.xx.xx";,
>    "validation_client_name": "chef-validator",
>    "run_list": [
>      "role[base]",
>      "role[postfix-client]",
>      "role[syslog-ng-client]"
>    ]
> }
>
>
>
> On Fri, 20 Jan 2012, 
> 
>  wrote:
>
>>
>> hai. i'm failing to feed a run_list present in ec2 userdata to a
>> first-boot.json file. what am i doing wrong? maybe run_list shouldn't
>> be within attributes? (see userdata below).
>>
>> i'm using a client.rb based on jtimberman's gist. my modification
>> is here: https://gist.github.com/1648988
>>
>> my knife ec2 launch command:
>>
>> knife ec2 server create -N "testme" -S sshkey -f m1.large -I \
>> ami-xxx -G sg-xxx,sg-xxx --user-data /tmp/userdata --distro distroX
>>
>> # distroX
>> bash -c '
>> S3CFG="--config=/root/.s3cfg-w-https"
>> S3CMDOPT="--force $S3CFG"
>> X_ENV=dev
>> X_AV_REGION=us-east-1
>> S3_BUCKET="x-ops-$X_ENV-$X_AV_REGION"
>> s3cmd get $S3CMDOPT s3://$S3_BUCKET/chef/client.frak.rb /etc/chef/client.rb
>> /usr/bin/chef-client -j /etc/chef/first-boot.json -l debug -L 
>> /var/log/chef/client.log
>> '
>



Archive powered by MHonArc 2.6.16.

§