- From: Three Tee <
>
- To: chef <
>
- Subject: [chef] HOWTO: list EC2 availability zone placement with knife
- Date: Fri, 20 Jan 2012 06:04:32 -0800
Hi all,
I just wrote a blog post about how to retrieve and summarize AZ info for your chef nodes. Here's the content of the post, in case it comes in handy for anyone:
----------
With Chef's knife utility, it's easy to get information about your EC2 environment's node distribution across availability zones:
For example, to list nodes and their AZ placement:
$ knife exec -E 'nodes.transform("*:*") {|n| puts "#{
n.name}: #{n.ec2.placement_availability_zone}"}' | sort
node1: us-east-1b
node2: us-east-1c
node3: us-east-1b
node4: us-east-1a
Or to count AZ placements:
$ knife exec -E 'nodes.transform("*:*") {|n| puts "#{n.ec2.placement_availability_zone}"}' | awk ' { for (i=1;i<=NF;i++) count[$i]++ } END { for (i in count) print count[i], i }' $* | sort -r
2 us-east-1b
1 us-east-1a
1 us-east-1c
Gathering and summarizing AZ data in this fashion can help you verify that your application is properly distributed across AZs. It also can come in handy when purchasing reserved instances. You can of course modify the search query from *:* to something more targeted. And since there's always more than one way to do it, please feel free to share any alternative methods in the comments.
Here's a gist for the above; I'll update it with any future tweaks or additional commands:
https://gist.github.com/1647365----------
- [chef] HOWTO: list EC2 availability zone placement with knife, Three Tee, 01/20/2012
Archive powered by MHonArc 2.6.16.